Let's assume for a moment that I have a completed addon, ready to upload for others to download from Curse's client...
I've read the FAQ section of CurseForge and WowAce.com for some clue as to what to do next, and while I get clues, nothing is really easy to understand. I mean, I've read stuff about a repository, which I know nothing about. I've read about Subversion, Git, and Mercurial; again, never heard of such things until now. I've read about a .pkmeta and such, but I still don't understand its purpose. All the documentation I have read thus far takes a random-bits-and-pieces approach and all of which assume the reader already has some knowledge about the topic being discussed.
Could someone please explain in a bit more A to Z type of approach (for someone who has never uploaded a file to Curse) of how to get a completed addon uploaded from my hard drive to Curse?
Nearly all of those instructions assume that you are also using WowAce/Curseforge for your development in addition to using it for distribution. If what you have is simply a .zip file containing the finished addon, then most of those instructions don't apply. (You may also be missing out on most of the wowace/curseforge features, but it's up to you.)
First step: Have you gone to the curseforge.com site and created a project for your addon?
Thanks for the links. However, I think you're not understanding. I have read those pages at least a half-dozen times each. I have also read all the other pages in the Knowledge Base section, both at CurseForge and WowAce (just in case there was a difference). No offense to the authors, but the way they are written, they leave some information out, sort of assuming you already know about the stuff they left out. For example: If I wrote an article about autopilot systems for aircraft, you'd know what the topic is about and what it relates to, but you'd understand nothing about how to operate one or why things are done the way they are because you've never flown an airplane. You have to learn about flying before using an autopilot. I could talk to you about what a Automatic-Direction-Finder is, and you might understand some of what I'm saying, but you wouldn't understand why it's important and how it fits into the bigger picture of how to fly an airplane.
The documentation I've read gives information about repositories and why they are important. But it doesn't address HOW to use it. The documentation gives information about .pkgmeta, but doesn't seem to explain how to use it in your project.
In all fairness, maybe my request of a tutorial or walkthrough is a bit too broad. So, let's see if I can think of some specific things I don't understand or I missed in the documentation.
How do I package my addon? In a zip file?
Where does the .pkgmeta and such go? Why is it important?
How should I write my .toc file to be compatible with Curse? Do I put a hard-coded version in it or use some expression that Curse understands? (I've seen both used by different addons, and thus my confusion.)
If I'm using Ace3, do I have to include it in my addon's folder? Or can Ace3 being installed in the user's /Addons/ folder suffice?
When using a repository, when/why would I need to access it via the special URL ("svn:...")? Is that another way to upload a file?
These are a few questions that reading all the documentation I have hasn't yet answered.
Basically, there is a packager process running on the wowace/curseforge servers. Both sites are technologically identical (though zip uploads are not allowed on wowace). This packager will create a new package and publish it to curse.com whenever you commit a new version. If a .pkgmeta file is present at the project root, it should contain directives for the packager.
On top of that, there are some project-specific options to change the packager behavior.
Concerning how to use Subversion, Git or Mercurial, this is off-topic. Each tool has its own tutorials. The wowace knowledge base only gives you the keys to use them on wowace. It assumes you already know how to use them (or will learn how to) the same way it assumes you know how to code addons.
The "package" is a zip file generated by the packager from information in the .pkgmeta file. If you are simply making your own zip files and don't care about version control, you need not concern yourself with Subversion, git, Mercurial, or the .pkgmeta file.
I do care about version control, so I do want to use a respository.
Quote from "Adirelle" »
Assuming you'd prefer using Wowace...
Which do you prefer (Curseforge or WowAce)? Why? People keep saying they're "technologically" the same, but some still use one and some use the other. Why? What's the purpose of having two sites instead of one consolidated location? Since Curseforge allows for multiple games, including WoW, and WowAce is for WoW only, wouldn't that make Curseforge a more logical choice?
Are there any pros/cons to using one site over the other?
Adirelle, assuming I wanted to use CurseForge, would the same procedure apply?
If you wanted to use the version control, I think so.
The question is philosophical: Wowace.com is the tool used by the addon author community wowace. Curseforge.com is an addon publishing tool provided by Curse.com. AFAIK, both sites run on the same servers with the same software, using two different skins. But rules and moderations are not quite the same on both sites.
Okay. I've setup the repository for my project. I've downloaded CollabNet's Subversion. I've read the first 100+ pages of the damned 385 page book.
Where do I go from here to get Subversion to start managing my versioning?
I keep my my projects for various things in a main folder on my hard drive. In this case, my addon's project folder which holds the lua code and .toc file is:
C:\Projects\World of Warcraft Addons\MyAddon
Okay...update. I got curious. I ran cmd from the Windows' Start->Run menu. From there, I brought myself to the C:\Projects\World of Warcraft Addons\MyAddon folder (using the old DOS cd command). From there, I guessed what I needed to do next. Based on what I read, I did:
If you're not a fan of the command line, I highly recommend the TortoiseSVN client. It's integrated with the Windows shell. You get icon overlays showing you the status of each file, and all actions (checkout, commit, update, tag, etc) are performed via the context (right-click) menu.
I'll check out that TortiseSVN client...thanks for the tip.
Now, since I don't have any files on Curse as of yet, how do I checkout my files? There shouldn't be anything to checkout. (I am assuming I'm supposed to check them out from my Curseforge project repository instead of checking them out on my own hard drive based on Orion's most recent post showing <url> in the command line. If I'm supposed to check them out on my own hard drive, please tell me.)
You first checkout the empty project from the curse repository onto your own hard drive. Yes, this is slightly confusing at first. But this allows you to add files from your own hard drive to the empty project and commit the changes back.
You then have to either tag the revision as a release (or beta). Or change the revision from the project manage pages to a release. This triggers the package manager to create a package from the revision.
I went ahead and tried checking out my files including the "mainline/trunk" in the URL. It seems to have worked. I now have in my /Interface/Addons/MyAddon folder on my hard drive, a "mainline" and "trunk MyAddon" folder.
Now to get the files into the repository...I tried using Tortise's repository browser and then used "Add Folder" to add the entire contents of my MyAddon folder; not sure if this is right. It's asking me for a username and password. I tried my creditentials for Curseforge, but it keeps coming back asking for the username and password again as if I didn't type them correctly.
Also try looking at other addons. For example in TortoiseSVN open the Repo-Browser and point it to:
And then to
And then to
(Instead of ora3, take any other addon you're familiar with)
Look at the contents of the different directories. Also try right clicking the trunk directory and select Revision Graph. Try the same with different files and directories. Also try the Show Log option. Or the Blame option.
Please try the options, as long as you don't log in but the use the anonymous url's there is nothing you can do wrong.