I am moving along in setting up subversion for my project but I have run into difficulty in figuring out how to provide a Name for the file and a name for the zip.
I would like these to be listed:
Name------------------------------------------- File
Sell Grey (20 Jan 2015) ----------- Sellgrey_20_jan_2015.zip
Is this possible? I mistook 'package-as' for the directive but figured out that changed the folder in which my addon is located.
Also, once I get all of this working, how to tell TortiseSVN it is commit a "Release" instead of "Alpha"
Any help is greatly appreciated! Thank you.
---
(EDIT)
Additionally, I would like to exclude the changelog.txt file from the package. Those notes are available on the site and including them in the directory that will be installed into a player's AddOn's folder is superfluous. I doubt anyone even opens the folder normally anyway.
I am using a custom changelog.txt so that the change log on the site does not include weird details like which files were modified but instead can contain my own notes.
You cannot specify a ZIP file name directly. The format will always be "PackageName-Version.zip", where "PackageName" is the "package-as" name of your addon (defaults to your project URL slug, but you can and should change it to match the name of your TOC file) and "Version" is the version string. For release and beta versions, the version string is whatever you named the tag; for alpha versions, the version string is "r" followed by the SVN revision number.
SVN commits are always alpha versions. To tell CurseForge to package a release or beta version, you must tag your repository. There are details about what types of tag names will be considered "release" versions and which "beta" in the repository FAQ. If you only want release and beta versions to be available to users (not alpha versions packaged for every commit) you can turn off alpha packaging in your repository settings on CurseForge. I'd recommend looking through the knowledge base articles. There's a lot of duplication and overly verbose introductory text for people new to programming and version control, but there's also useful information in there.
You can use the "exclude-files" directive in your .pkgmeta file to exclude the changelog. However, in order to do this, there must be a changelog file in your repository already, and it must be listed under the "manual-changelog" directive. If there's no manual changelog, then the packager will create one, and since the name of the created file is dynamic, you can't (easily) exclude it with "exclude-files".
Edit: Also, I'm pretty sure a version string like "20 Jan 2015" would be considered a beta tag name, and isn't really a good versioning string anyway. If you really want to use the date instead of an actual version number of some kind, you should at least use a more standardized format like "2014.01.20" that (a) isn't confusing to the half your users who have probably never seen a DD MM YY date in their life, because the US is a Special Snowflake and uses MM DD YY along with our nonsensical Imperial mesurements and (b) is machine-readable and (c) lists in the correct order when using a basic alphabetical sort.
Edit:(c) lists in the correct order when using a basic alphabetical sort.
That had never occurred to me. It seems brilliant in hindsight. Thanks for the pointer.
I lived outside the US for ten years and was familiar with the non-US format. I used the abbreviation to avoid the confusion.
I was hoping for SVN to be a push-button-publish, but it is beginning to look like overkill for my small project and entering the details on the single upload file page less tedious than entering them in the various files.
Another option you have is to simply change the status on alpha files to beta or release instead of using tags, though in that case, the svn log will not represent your releases unless you note them in the commit notes.
I was hoping for SVN to be a push-button-publish, but it is beginning to look like overkill for my small project and entering the details on the single upload file page less tedious than entering them in the various files.
Hardly. I'm using Git for my projects now, but other than that it's exactly the same. You just need to do 2 minutes of one-time setup, and then you're good to go. For example, here is the .pkgmeta file for one of my simple addons:
The "package-as" directive makes sure the addon gets put into a folder whose name and capitalization match the addon's .toc file.
The "manual-changelog" directive means I have a "CHANGELOG.md" file in the addon directory where I write the changelog as I want it to appear on the website, and its contents are automatically published there.
The "ignore" directive means that neither the "CHANGELOG.md" nor "README.md" files appear in the ZIP files produced by the packager.
I have alpha packaging turned off (the "Package Type" option is set to "Beta and Release") so users aren't downloading every commit I make.
When I'm ready to make a release, I do this:
1. Update the "CHANGELOG.md" file
2. Commit the updated changelog
3. Make a tag named "6.0.3.4"
Then, Curse automatically makes a ZIP file for my addon with the version number 6.0.3.4 and publishes it. Much less work than making a ZIP and uploading it by hand.
I would like these to be listed:
Name------------------------------------------- File
Sell Grey (20 Jan 2015) ----------- Sellgrey_20_jan_2015.zip
Instead of:
r13 ---------------------------------- sellgrey-r13.zip
Is this possible? I mistook 'package-as' for the directive but figured out that changed the folder in which my addon is located.
Also, once I get all of this working, how to tell TortiseSVN it is commit a "Release" instead of "Alpha"
Any help is greatly appreciated! Thank you.
---
(EDIT)
Additionally, I would like to exclude the changelog.txt file from the package. Those notes are available on the site and including them in the directory that will be installed into a player's AddOn's folder is superfluous. I doubt anyone even opens the folder normally anyway.
I am using a custom changelog.txt so that the change log on the site does not include weird details like which files were modified but instead can contain my own notes.
SVN commits are always alpha versions. To tell CurseForge to package a release or beta version, you must tag your repository. There are details about what types of tag names will be considered "release" versions and which "beta" in the repository FAQ. If you only want release and beta versions to be available to users (not alpha versions packaged for every commit) you can turn off alpha packaging in your repository settings on CurseForge. I'd recommend looking through the knowledge base articles. There's a lot of duplication and overly verbose introductory text for people new to programming and version control, but there's also useful information in there.
You can use the "exclude-files" directive in your .pkgmeta file to exclude the changelog. However, in order to do this, there must be a changelog file in your repository already, and it must be listed under the "manual-changelog" directive. If there's no manual changelog, then the packager will create one, and since the name of the created file is dynamic, you can't (easily) exclude it with "exclude-files".
Edit: Also, I'm pretty sure a version string like "20 Jan 2015" would be considered a beta tag name, and isn't really a good versioning string anyway. If you really want to use the date instead of an actual version number of some kind, you should at least use a more standardized format like "2014.01.20" that (a) isn't confusing to the half your users who have probably never seen a DD MM YY date in their life, because the US is a Special Snowflake and uses MM DD YY along with our nonsensical Imperial mesurements and (b) is machine-readable and (c) lists in the correct order when using a basic alphabetical sort.
That had never occurred to me. It seems brilliant in hindsight. Thanks for the pointer.
I lived outside the US for ten years and was familiar with the non-US format. I used the abbreviation to avoid the confusion.
I was hoping for SVN to be a push-button-publish, but it is beginning to look like overkill for my small project and entering the details on the single upload file page less tedious than entering them in the various files.
Hardly. I'm using Git for my projects now, but other than that it's exactly the same. You just need to do 2 minutes of one-time setup, and then you're good to go. For example, here is the .pkgmeta file for one of my simple addons:
The "package-as" directive makes sure the addon gets put into a folder whose name and capitalization match the addon's .toc file.
The "manual-changelog" directive means I have a "CHANGELOG.md" file in the addon directory where I write the changelog as I want it to appear on the website, and its contents are automatically published there.
The "ignore" directive means that neither the "CHANGELOG.md" nor "README.md" files appear in the ZIP files produced by the packager.
I have alpha packaging turned off (the "Package Type" option is set to "Beta and Release") so users aren't downloading every commit I make.
When I'm ready to make a release, I do this:
1. Update the "CHANGELOG.md" file
2. Commit the updated changelog
3. Make a tag named "6.0.3.4"
Then, Curse automatically makes a ZIP file for my addon with the version number 6.0.3.4 and publishes it. Much less work than making a ZIP and uploading it by hand.