A new release can be created by one of the main DOMjudge developers.
The following steps should be taken (local directories refer to those
on the account domjudge@vm-domjudge
):
- Test everything. (duh...)
- Commit the correct version number in the
ChangeLog
andREADME
files. - Discuss if the current second to last minor version will now be EOL.
- Update https://github.com/DOMjudge/domjudge/security/policy to support 2 minor versions, including the one now being released.
- Change the constants
webapp/src/Controller/API/GeneralInfoController.php
to point to the correct CCS API version. export TAG=x.y.z
- Create a release version
$TAG
in Git with$TAG
the version number x.y.z:Seegit tag -s -m "Tag release version $TAG." $TAG
git tag --help
for more details on how to tag with(out) a GPG signature. - Don't forget to push everything to the central Git repository
(especially the release tags, since these are not pushed by default),
e.g. with
git push origin ${TAG%.?} refs/tags/$TAG
- If releasing from the main branch, create a new version branch:
git checkout -b x.y git push --set-upstream origin x.y git checkout main
- Update files above to
{version+1}DEV
and commit. - On the server the tarball will be built, signed and published.
- Update the DOMjudge homepage: commit changes in the
domjudge-scripts
repository underwebsite/
and runmake install
as domjudge@domjudge - Remove unsupported versions from the
versions.json
in the next step. - If this is a new major or minor version, update the release documentation
under
/srv/http/domjudge/docs/manual
by adding a new version to the fileversions.json
and updating the redirect destination inindex.html
andteam.html
. The documentation is regenerated once every hour. - Bump the Docker images by starting a new pipeline
here and
setting
DOMJUDGE_VERSION
to the version to release. SetDOMJUDGE_LATEST
to true if this is the latest version orfalse
if it is not. After clickingRun pipeline
, make sure to click the play button next torelease-DOMjudge
to actually build and push the Docker images. You can view the progress by clicking on the job. - Update https://gitlab.com/DOMjudge/domjudge-packaging/-/pipeline\_schedules to the latest version.
- Build Debian packages (or make someone do this).
- Put debian packages in
/srv/http/domjudge/debian/mini-dinstall/incoming
and run as domjudge@domjudge:mini-dinstall -b
- Send an email to
[email protected]
, announcing the new version and state which versions are supported. - Add the released branch to the dependabot.yml (https://github.com/DOMjudge/domjudge/blob/main/.github/dependabot.yml)