Skip to content

Making a new release

Richard Braakman edited this page Sep 27, 2024 · 15 revisions

It's possible that some of these steps can only be done by the main author, but at least they're now documented.

Choose a new version number

Look at the current latest release and either increase the third number, or increase the second number and set the third number to zero. Which one you do depends on how large the changes are. New features generally mean the second number has to go up.

Update your local repo to latest main

Edit the new version number into the Cargo.toml files

There's the Cargo.toml file in the main directory, and there's one in each of the ck3-tiger, vic3-tiger, imperator-tiger, tiger-bin-shared, and utils subdirectories. We keep all of the version numbers in sync, even if the specific subpackage didn't change.

Note that ck3-tiger, vic3-tiger, imperator-tiger, tiger-bin-shared have the version number twice in their Cargo.toml, once as the package version and once as the version of tiger-lib (the main package) to import. Update both numbers.

Build tiger once to update the version numbers in Cargo.lock

cargo build --release

Look at the commit log of all the commits since the previous version

git log vX.Y.Z..main (with X.Y.Z being the previous version) will show exactly the commits that went in.

Make a commit for the new version

  • Include all the Cargo.toml and Cargo.lock changes
  • Start the commit message with Version followed by the new version
  • Blank line, then the patchlevels of CK3, Vic3, and Imperator this version supports
  • Then go through the git log back to the previous patch and list every change that users will want to know about. Feel free to brag a bit. Start each entry with * and separate the entries into sections like "Fix false positives", "Bugfixes", "Features", "Performance", "Other", and whatever else seems appropriate. Don't worry too much about what goes where; in particular, bugfixes can be hard to tell apart from false positive fixes.
  • Try to add ck3: or vic3: or imperator: before each entry where relevant, so that users who only care about one of the games can pick those out.

Tag the new commit with v followed by the version number

git tag vX.Y.Z

Push the new commit to main and then push the tag

This will automatically start a github action that builds and publishes a new release. The new release will have your latest commit message (the one you made above) as its release notes.

Wait for the release publication on github to succeed

This takes about 5 minutes.

Publish the new versions to crates.io

  • cargo publish
  • cargo publish -p tiger-bin-shared
  • cargo publish -p ck3-tiger
  • cargo publish -p vic3-tiger
  • cargo publish -p imperator-tiger

Publish the new version on discord

Put a link to the new github release in the announcements channel on the tiger server. Copy the commit message into the announcement message.

If it looks good, select the "publish" option on the message. This will send it to servers that follow tiger's announcements, such as the Ck3 mod co-op.

Relax