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
.pro
file 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
base
folder to the temp dir. Ensure that the timestamps are consistent.- Ignore this step if creating a client-only release.
- Copy the repository's
base
folder to the temp dir. - Append
.sample
to the names of all.ini
files, includingserverlist.txt
. - Copy the game executable to the temp dir.
- Copy
bass.dll
,discord-rpc.dll
, andqapng.dll
if applicable. - Copy
README.md
asREADME.md.txt
with CRLF line endings. - Copy
LICENSE
asLICENSE.txt
with 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.json
manifest 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!