# Developer's guide ## Release management To do a public release you need to... - Get the git directory ready for the release - Tag the repo e.g. ``` git tag -a v1.2.3 -m '' git push --tags ``` - Generate the deploy templates, don't add the `v` to the version number. ``` templates/generate-all deploy.zip 1.2.3 ``` - Release - Go to github, on Code tab, select tags, and find the right version - Select create release - Select the right previous version and generate release notes - At the bottom of the form, find the upload pad, click that and add the deploy.zip created earlier - Create Python packages. You need a PyPi token with access to our repos - make packages - make pypi-upload - Create containers. You need a docker hub token with acccess to our repos - make - make push ## Local build To do a local build, you need to... - Consider what version you want to build at, and change this in Makefile. It doesn't really matter so long as there isn't a clash with what's in the public repos. You could stick with the version that's there, or change to 0.0.0 if you're paranoid about pushing something accidentally. - If you changed the version to generate templates with your version, or changed deployment templates, you need to recreate launch assets to a deploy.zip file: ``` templates/generate-all deploy.zip V.V.V ``` - Build containers ``` make ``` - If you changed anything which affects command line stuff (which maybe you could do if you changed schemas), then ``` make packages ``` That puts Python packages in dist/ You then need to install some or all of those packages. Typically you only need -base and -cli to an appropriate environment e.g. use Python `venv` to create a virtual environment and install them there.