View Single Post
07-22-16, 01:42 PM   #4
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,710
I'm going to assume you're building a automatic packager, and in which case you don't really need Github, you've got your own repository system.

I'm going to pull most of, if not all of these ideas from the packager logic that CurseForge uses to allow uniformity between the two websites, making it even less of a pain to release on multiple sites (which was the whole reason I made the proxy tool).

CurseForge only has two options on it's website for the packager (per project), one to set the packaging/release schedule (on every commit or on tag creation).
For every commit, use the last tag and append the commitref. For tags, well, use the tag.
This is the only option exclusive to the website, and should default to tags.

The other option they have is creating a root directory for the addon. This should default to the name of the toc file (void the .toc extension).
IMO, if you default it like that, you don't even need this option present on the website, it can be set with a metadata file instead.

All of the other options they have are supplied in the form of a metadata file they call ".pkgmeta", a YAML-like markup file, more information on this here:
http://www.wowace.com/wiki/projects/pkgmeta-file/

Most notably, this file contains the following (incomplete) list of options:
  • "package-as" - same as the root directory option present on the website
  • "externals" - any embedded addons such as libraries, specified as a table (see the wiki page on wowace)
  • "manual-changelog" - specifies a manual changelog, options being path and markup language for parsing (you could default to a 'git shortlog' or something)
  • "ignore" - files/paths to ignore for the packager
  • "move-folders" - for moving files around
  • "required-dependencies" - this is used for the curse client, you could probably do the same for minion
  • "optional-dependencies" - same as the above

Also, the CurseForge packager has substitutions for the packager, information here: http://www.wowace.com/wiki/repositor...substitutions/

Basically, it scans through all the files and replaces those keyboards with actual values, most notably @project-version@, used to replace the Version field in the .toc file.

As for the changelog markup support, markdown, bbcode and plaintext should suffice.


But keep in mind, unless you do this all-in it won't be a good option for us authors, solutions like my proxy tool would still be a superior alternative once set up.
Good to see some traction on this matter tho!

Last edited by p3lim : 07-22-16 at 01:51 PM.
  Reply With Quote