trustgraph/DEVELOPER_GUIDE.md
Cyber MacGeddon 582cdd9dce Headings
2024-10-03 17:46:09 +01:00

78 lines
1.8 KiB
Markdown

# 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.