How does curse and the twitch client plan to handle addon versions for Classic vs retail ?
I'd like to know how to maintain my addons and also what others plan to do to have both a live and a classic version ? (branching in git seems the way to go but... how to push more than 1 version to curse...)
am doing a live and a classic version to much to try and keep one updated for both i as well feel classic going to be set in stone for a good few years so might not need as many updates as live and if classic stays on 8.1?? will i have problems with 9.x+ etc
I would like to know how curse will deal with it though the problem i can see if users getting very confused and downloading live addons that might/unliky will work on classic and having some big problems for us!
There is now an option to set compatibility for both Classic and Retail in the file upload.
However, its currently broken. It generates an internal server error if you don't choose that it is compatible with BOTH. (ie, you must pick a version in each, and not just one or the other)
There is now an option to set compatibility for both Classic and Retail in the file upload.
However, its currently broken. It generates an internal server error if you don't choose that it is compatible with BOTH. (ie, you must pick a version in each, and not just one or the other)
Thanks - do you have a link to that doc/attribute ? (ie how to do that with the automatic git tag->build system vs that manual file upload)
Ping. I need a way to switch interface version and release the same add on for both with the only difference being the ## Interface line, unless someone can convince blizzard they need wow.exe to understand multiple interface lines or coma separated one
I hope your idea gets traction because I do the same thing as you (conditionals to check game version) and would love to automate the game version in a TOC file.
I think an even better solution would be if Blizzard modified the TOC file so you could explicitly state compatibility with multiple game editions.
Any update on this topic ? Any official documentation ? I have seen different approaches, i like the option of two pkgmetas: pkgmeta-retail and pkgmeta-classic like in:
Because with this approach you can use the same code/branch but at the same time it's possible to package different libraries/files.
But i have no idea how Stanzilla is really forcing the wowace-packager to use different pkgmetas to create retail and classic versions (there are not different branches /tags in his repository). Is he using any undocumented packager behavior ? Or i have been overlooked some important info ?
Any update on this topic ? Any official documentation ? I have seen different approaches, i like the option of two pkgmetas: pkgmeta-retail and pkgmeta-classic like in:
Because with this approach you can use the same code/branch but at the same time it's possible to package different libraries/files.
But i have no idea how Stanzilla is really forcing the wowace-packager to use different pkgmetas to create retail and classic versions (there are not different branches /tags in his repository). Is he using any undocumented packager behavior ? Or i have been overlooked some important info ?
Thanks for the help, I therefore assume that you are packaging locally and then uploading the two zip files to wowace ?
But unlike curseforge, wowace does not allow to upload zips, or maybe i have not found the option.
Can i create a project in wowace only to make tests, would this kind of test project be approved ?, maybe creating an experimental project ?
travis is a cloud CI, so the package gets created on their server automatically every commit and then uploaded as a zip to wowace. wowace only allows zip uploads via their API, which we use.
But my projects are in subversion repositories and it seems Travis CI only works with Git, so i tested the packager with a minor project and it's working well locally. It's specially useful the posibility to ignore files, because usually the classic version requires additional libraries and code, so this libraries and extra files can be removed from the retail zip file.
Some extra useful info and possible issues:
- At least with subversion repositories, the packager does not work well in a non-english language (fails getting svn information), so the OS language must be changed to english before running "release.sh", executing in bash the commands:
export LANG=C export LC_MESSAGES=C
- The packager works in Windows through Cygwin (https://www.cygwin.com/), but some additional cygwin packages must be installed:
curl zip jq git subversion
- Maybe this was obvious to everyone else but I just realized that now CurseForge and WowAce repositories are fully merged, they are the same, so ZIP files can be uploaded to CurseForge to update WowAce projects. But It seems this was not possible time ago (One year ago CurseForge api key could no be used to upload to WoWace and the WowAce upload api was disabled). So now simply assign the WowAce API TOKEN to the"CF_API_KEY" enviroment variable and the packager will upload the ZIP files to WowAce.
To add to your suggestion, not only should there be @classic/retail flags, the packager should also check for a classic-specific pkgmeta, eg, classic.pkgmeta, which would allow authors to have settings for the classic package that are separate from the retail package. Most notably, the inclusion/exclusion of some libraries that are only relevant to retail.
So I take it that the CurseForge builder is useless then?
I tried making a Classic branch, made modifications, then tagged the Classic branch. It ended up building and packaging the Trunk branch for some reason, even though the tag is clearly from the Classic branch.
Hi there,
How does curse and the twitch client plan to handle addon versions for Classic vs retail ?
I'd like to know how to maintain my addons and also what others plan to do to have both a live and a classic version ? (branching in git seems the way to go but... how to push more than 1 version to curse...)
Thanks
am doing a live and a classic version to much to try and keep one updated for both i as well feel classic going to be set in stone for a good few years so might not need as many updates as live and if classic stays on 8.1?? will i have problems with 9.x+ etc
I would like to know how curse will deal with it though the problem i can see if users getting very confused and downloading live addons that might/unliky will work on classic and having some big problems for us!
Hope they will make a classic portal. I'd like to know this as well.
There is now an option to set compatibility for both Classic and Retail in the file upload.
However, its currently broken. It generates an internal server error if you don't choose that it is compatible with BOTH. (ie, you must pick a version in each, and not just one or the other)
Quote from DahkCeles >>
Thanks - do you have a link to that doc/attribute ? (ie how to do that with the automatic git tag->build system vs that manual file upload)
Ping. I need a way to switch interface version and release the same add on for both with the only difference being the ## Interface line, unless someone can convince blizzard they need wow.exe to understand multiple interface lines or coma separated one
or not?
concrete proposal... https://authors.curseforge.com/forums/world-of-warcraft/general-chat/updaters/240327-classic-vs-bfa-interface-toc-versions
it'd be nice those forums would get some kind of answers from CF ?
I hope your idea gets traction because I do the same thing as you (conditionals to check game version) and would love to automate the game version in a TOC file.
I think an even better solution would be if Blizzard modified the TOC file so you could explicitly state compatibility with multiple game editions.
yes I agree blizzard supporting multiple lines or multiple versions on the one line would be the easiest/best for everyone
Any update on this topic ? Any official documentation ? I have seen different approaches, i like the option of two pkgmetas: pkgmeta-retail and pkgmeta-classic like in:
https://github.com/WeakAuras/WeakAuras2
Because with this approach you can use the same code/branch but at the same time it's possible to package different libraries/files.
But i have no idea how Stanzilla is really forcing the wowace-packager to use different pkgmetas to create retail and classic versions (there are not different branches /tags in his repository). Is he using any undocumented packager behavior ? Or i have been overlooked some important info ?
Hey there, we are using the BigWigs packager, not the Wowace one, it's way better https://github.com/BigWigsMods/packager
and see our travis file on how we use it https://github.com/WeakAuras/WeakAuras2/blob/master/.travis.yml
In reply to Stanzilla:
Thanks for the help, I therefore assume that you are packaging locally and then uploading the two zip files to wowace ?
But unlike curseforge, wowace does not allow to upload zips, or maybe i have not found the option.
Can i create a project in wowace only to make tests, would this kind of test project be approved ?, maybe creating an experimental project ?
travis is a cloud CI, so the package gets created on their server automatically every commit and then uploaded as a zip to wowace. wowace only allows zip uploads via their API, which we use.
Thank you very much for the information. I have found a detailed guide to configure Travis CI:
https://www.wowinterface.com/forums/showthread.php?t=55801
But my projects are in subversion repositories and it seems Travis CI only works with Git, so i tested the packager with a minor project and it's working well locally. It's specially useful the posibility to ignore files, because usually the classic version requires additional libraries and code, so this libraries and extra files can be removed from the retail zip file.
Some extra useful info and possible issues:
- At least with subversion repositories, the packager does not work well in a non-english language (fails getting svn information), so the OS language must be changed to english before running "release.sh", executing in bash the commands:
export LANG=C
export LC_MESSAGES=C
- The packager works in Windows through Cygwin (https://www.cygwin.com/), but some additional cygwin packages must be installed:
curl zip jq git subversion
- Maybe this was obvious to everyone else but I just realized that now CurseForge and WowAce repositories are fully merged, they are the same, so ZIP files can be uploaded to CurseForge to update WowAce projects. But It seems this was not possible time ago (One year ago CurseForge api key could no be used to upload to WoWace and the WowAce upload api was disabled). So now simply assign the WowAce API TOKEN to the"CF_API_KEY" enviroment variable and the packager will upload the ZIP files to WowAce.
If I were you I'd import my subversion repo into GitHub and move away from klunky wowace cf (sort of) supported infra.
Discover a modern UI, good workflow etc... and go with GitHub - the import preserve all the history and there is no looking back
To add to your suggestion, not only should there be @classic/retail flags, the packager should also check for a classic-specific pkgmeta, eg, classic.pkgmeta, which would allow authors to have settings for the classic package that are separate from the retail package. Most notably, the inclusion/exclusion of some libraries that are only relevant to retail.
So I take it that the CurseForge builder is useless then?
I tried making a Classic branch, made modifications, then tagged the Classic branch. It ended up building and packaging the Trunk branch for some reason, even though the tag is clearly from the Classic branch.
branches will mess up the curse builder yes (you may even not be able to build anything new, after you make one, from my experience)
what I do now is:
https://github.com/mooreatv/AuctionDB/blob/master/classictag.sh
but it's quite ugly (and would be even more ugly if you needed 2 branches)
the BigWigs packager has a way to do a better job
Meh, I'm using branches currently, via GitHub, and it's working fine. Maybe CF's repos just don't like them. :p