1 NightlyBuild
Itms edited this page 2024-03-28 20:41:11 +01:00

The nightly-build SVN repository

Our CI/CD systems generate a nightly build of the game. Players, translators, and artists can use it to test the latest version of the game without any technical knowledge. It can also be used as basis for occasional contributions, if you do not wish to setup a full development environment on your machine.

The nightly builds also contain translation files; and SPIR-V shaders for the Vulkan graphics backend.

The nightly build can be found at https://svn.itms.ovh/nightly-build/trunk

Download

To download the nightly build, Windows users can use TortoiseSVN. In the Windows Explorer context menu (right-click in the folder where you wish to download the build), select TortoiseSVN > Checkout, and paste the address above in "URL of repository". Click OK to confirm.

Linux/BSD/macOS users can simply run in a terminal

svn checkout https://svn.itms.ovh/nightly-build/trunk

Update

You do not need to download everything from scratch every day. You can use the Update feature of SVN.

On Windows, inside the nightly-build folder, open the context menu (right-click anywhere), select TortoiseSVN > Update.

On Linux/BSD/macOS, open a terminal inside the nightly-build folder and run

svn update

Cleanup

If you made some changes by mistake or when creating a small contribution, you can reset the nightly build to a clean state.

The Windows TortoiseSVN client has a built-in feature for this: in the context menu, select TortoiseSVN > Clean up… and check all the boxes, especially the last three (Delete unversioned/ignored files + Revert all changes). Click OK to confirm.

On Linux/BSD/macOS, run the following commands:

svn revert -R .
svn status --no-ignore | cut -c 9- | xargs rm -rf
svn cleanup

I receive an error message about the repo being reset

TODO: Document this.

Why SVN?

You may be surprised to hear we use SVN for distributing those builds. This has historical reasons, as we have been using SVN for development of the game for decades, and our active community is used to watching our SVN repository for the latest changes. SVN is also suited for serving binary files (game assets, built binaries of the game) without too much hassle.

I have checked out the nightly-build SVN repository, what now?

Now that the nightly build is checked out, you want to play and test the game.

Windows

On Windows, you don't have anything more to do. The game is ready to play by just running the engine located at binaries\system\pyrogenesis.exe.

Linux, BSD, macOS

Under Unix systems, you still have to build the game. You must follow the BuildInstructions, skipping the section "Getting the code".

What if I want to contribute?

If you want to contribute to the development, that happens using git, not SVN, as a version control system. git is significantly more complex but also more powerful and it makes developing the game easier. Please head over to GettingStartedDevelopers.

You should get familiar with git if you want to contribute to the game internals. Becoming proficient at using git is a requirement in software development nowadays anyway.

However, if you are familiar with SVN and do not wish to be blocked by git's learning curve, you can keep using the nightly build and SVN as your development environment. This has several upsides:

  • being able to use, test and fix translations
  • being able to contribute art without the hassle of building the game

To follow that path, clone the git repository in a different folder (see BuildInstructionsGettingTheCode). If you just want to touch the code, you can save space and not pull LFS files.

Make your modifications in SVN, list them and export them (with TortoiseSVN, use "Check for modifications" and/or "Create patch" in the context menu), without forgetting to copy modified art assets if any.

In the git clone, create a branch and apply your modifications as a new commit on that branch:

git checkout -b work-branch # choose a custom name for your branch
patch -p0 -i patch.diff # apply your patch from SVN
# if applicable, copy modified binary files
git add . # add your changes to the staging area
git commit # create a commit

Then, you can follow the steps at SubmittingPatches to get your changes included in the game.

You will quickly improve at using git and, if you start contributing in the programming department, you will soon understand the limitations of using SVN.