The traditional route is by undergoing the AO2 Rite of Passage.
However, these days it is easy to get away with using the default Qt toolchain on any platform, which creates a dynamic executable. (Don't forget to invoke windeployqt when creating a release.)
- BASS (optional; may use Qt Multimedia instead)
- Discord Rich Presence (optional)
Follow these steps to make a new full release:
- Set a new AO version in the
.profile and inaoapplication.h. - Compile the project.
- Commit the version bump and and create a tag for the commit.
- Rename the executable to
Attorney_Online. - Create a temp directory.
- Copy a fresh
basefolder to the temp dir. Ensure that the timestamps are consistent.- Ignore this step if creating a client-only release.
- Copy the repository's
basefolder to the temp dir. - Append
.sampleto the names of all.inifiles, includingserverlist.txt. - Copy the game executable to the temp dir.
- Copy
bass.dll,discord-rpc.dll, andqapng.dllif applicable. - Copy
README.mdasREADME.md.txtwith CRLF line endings. - Copy
LICENSEasLICENSE.txtwith CRLF line endings. - Compress the contents of the temp dir to an archive with maximum compression, but be sure that the contents are placed inside the root directory of the archive and not within a subdirectory.
- Compute the SHA-1 hash of the archive.
- Upload the archive to the Wasabi bucket and an additional mirror (e.g. MEGA or OneDrive) (if this is a full release).
- Publish a GitHub release and upload the archive there (if this is a client-only release).
- Add the new version to the
program.jsonmanifest for the respective platform (if this is a client-only release). - Update the following on the website for the respective platform:
- Full download links (Wasabi and mirror)
- Client download link
- Full download hash
- Client download hash
Repeat for each platform (currently 32-bit Windows and 64-bit Linux). Once you're done, don't forget to announce your release!