Note, some of these steps are different if this is a backport to an older version of KSP instead of the most recent version. Please note where it says "(backport)" below if you are doing a backport.
- Assign the new kOS version number to
AssemblyVersion
andAssemblyFileVersion
in these C# files:- In
src/kOS/Properties/AssemblyInfo.cs
- In
src/kOS.Safe/Properties/AssemblyInfo.cs
- In
src/kOS.Safe.Test/Properties/AssemblyInfo.cs
- In
- Update
Resources\GameData\kOS\kOS.version
- Update `CHANGELOG.MD``
- If this is a normal release for the most recent KSP version supported:
- Update
doc\source\conf.py
- Update
doc\source\changes.rst
- Above changes merged into
develop
branch on repo.
- Update
- Else if this for a backport to an older KSP release than the most recent version supported:
- Above changes merged into
backport-for-KSPversion.number.here
branch on repo instead of intodevelop
branch.
- Above changes merged into
- Configure build for "Release" mode not Debug
- Fully rebuild kOS solution (clean, then build) in release mode
- Run all unit tests
- Ensure that all required resources are in place (module manager) (backport : Note if this is a backport you may need to use an older modulemanager DLL here.)
- Create a ZIP file that has only the
GameData
folder of the\Resources\
directory in it. Make sure the ZIP's folder structure starts withGameData
.- In other words, filenames like this:
GameData\kOS\kOS.version
, NOT this\kOS\kOS.version
.)
- In other words, filenames like this:
- Name the zip file with the following pattern
kOS-v<major>.<minor>.<patch>.<build>.zip
(eg kOS-v1.1.3.0.zip ) - Build the documentation (unless this is a backport) with:
- (if Linux or Mac:
cd docs ; make clean ; make html
)
- (if Linux or Mac:
- Push the contents of
docs\gh-pages
to the gh-pages branch of KSP-KOS/KOS and verify correct rendering (unless this is a backport)
- If this is a normal release for the most recent KSP version suported:
- Update master branch from develop branch.
- Else if this is a backport then do NOT update the master branch. Keep it in the
backport-for-KSPversion.number.here
branch. - Build Github release with changelog and title, using the ZIP made above in Build step.
- CurseForge: Copy Github release text, and ZIP to Curseforge, as follows:
- If this is a normal release for the most recent KSP version suported, mark the file as "release".
- If this is a backport, mark the file as "alpha". (So Curse won't present this as the default version).
- Copy Github release to Spacedock
- If this is a normal release for the most recent KSP version supported, Make sure it is set as the default (using the "changelog" link on the Spacedock page).
- If this is a backport, make sure it did NOT become the default, and set the default back to the most recent non-backport version (using the "changelog" link on Spacedock).
- Update Forum thread with new change log, release date and version
- Post update in the forum thread
- Post update on reddit board
- Push the gh-pages branch to KSP-KOS/KOS_DOC (unless this is a backport). Note, if the previous push of gh-pages to KOS_DOC was done in a sloppy fashion, the attempt to do this push may result in a ridiculously large number of merge conflicts that are too much to handle. It may be necessecary to force this push with
git push -f
. (The merge conflicts can happen because Sphinx re-numbers the HTML ID tags across all the HTML elements in all the files when you insert one thing. Thus git thinks you've changed everything on each new commit of gh-pages.)
- If this is a backport it will be important to check up on CKAN's database over the next day to ensure you didn't confuse it. If all the version numbers were entered correctly in kOS.version in the branch from which you made the ZIP, it should be okay, but if not, there is potential to really mess it up. Double check that the CKAN database is giving correct information. (That is, that the backport is NOT being offered on new KSP installations, and is only being offered on older ones.)