View Single Post
11-24-13, 08:29 PM   #12
Rainrider
A Firelord
AddOn Author - Click to view addons
Join Date: Nov 2008
Posts: 454
I'll just post my way of doing this with some minor explanation on why I chose that way. I hope it could be of any help to you. I'll go through my workflow using git on Windows and publishing the code to github.com and wowace.com. I'll also list the tools I use.

The reason:
The main feature I miss on sites like WoWI/WowAce/Curse is the ability to browse addon code online. I like the way things are on github and that's why I did choose git as the VCS to use. I also found the github tutorials easy to follow and it was fast enough for me to achieve what I wanted without any prior knowledge about VCS at all.

The workflow:
  1. Create folder MyAddon in Interface\AddOns
  2. Code up to an alpha state
  3. Create a repo on github called MyAddon
  4. Set up a git repo on wowace called MyAddon
    then on the command-line
  5. cd Path\to\WoW\Interface\AddOns\MyAddon
  6. git init
  7. git remote add origin [email protected]:Rainrider/MyAddon.git
  8. git remote add wowace [email protected]:wow/MyAddon/mainline.git
  9. git add *
  10. git commit -m "some witty comment"
  11. git push -u origin master
  12. git push wowace master

Wowace/Curse packager will automatically create a downloadable zip for every commit you push. Every untagged commit counts as alpha. Tagged commits are either beta or release based on the tag message. From your MyAddon folder on the command line:
  1. git tag -a v1.0 -m "Version 1.0"
  2. git push origin v1.0
  3. git push wowace v1.0
This will create a release on both github and wowace.

I don't know how exactly things are on WoWI, but as they support git, I suppose the same pretty much applies to it too.

Issue tracking:
I like and use github's as you can close tickets directly from a commit and when you browse the commit there is a link to the ticket it closes and vice versa. On WoWI you could disable file comments and post a link to whatever you want to use. On wowace/curse you can link directly to whatever you want to use (when people click on "Tickets" they get redirected).

A small note:
The name and email you set up with git are publicly available once you push to a public remote as everyone can pull them. Once you tag a beta or a release on wowace, your email and name appear in the change log (for alphas it's just your name). Git does not care whether you enter a valid email address or not and so do github and wowace (again, I have no experience with WoWI). You could set both your name and email globally and per repo where the per repo setting will always precede the global one. Use
Code:
git config user.name "Your name"
git config user.email [email protected]
on the command line from within the MyAddon folder to set those locally. Remember to set up those in advance if you are uncomfortable with making your real name and email public as wowace won't let you rewrite your repo's history (you could still change the change log manually from the site though, but the commit info is still there)

Tools used:
MSysGit - has a basic GUI and command line support (through the command prompt). It also adds 2 entries to the windows explorer context menu ("Git Bash Here" - opens command prompt at the selected folder, and "Git GUI Here" - opens the GUI). That it what I prefer to use.
GitHub for Windows - sleek GUI (but github.com restricted) and command line (through PowerShell)

Git Guide:
http://git-scm.com/book/
  Reply With Quote