Skip to content

Latest commit

 

History

History
127 lines (89 loc) · 3.85 KB

release.rst

File metadata and controls

127 lines (89 loc) · 3.85 KB

Release process

Preparation

Run these steps when you begin to create a new release:

Pin requirements

Create a file with pinned requirements, so that users can reliably reproduce a setup:

$ ./dev.py pin-requirements

docker-compose

Test current state

Test demo

Make sure that the demo works and test the commands from the output (manage.py runserver should obviously be run in a separate shell):

$ ./dev.py clean
$ ./dev.py init-demo
$ python ca/manage.py runserver
$ openssl verify -CAfile...

Test update

Checkout the previous version and create a test data:

$ git checkout $PREVIOUS_VERSION
$ rm -rf ca/db.sqlite3 ca/files
$ python ca/manage.py migrate
$ devscripts/standalone/create-testdata.py

Then checkout the current main branch, run migrations and validate the test data:

$ git checkout main
$ python ca/manage.py migrate
$ python ca/manage.py makemigrations --check
$ devscripts/standalone/validate-testdata.py

Finally, also make sure that devscripts/standalone/create-testdata.py also works for the current version:

$ rm -rf ca/db.sqlite3 ca/files
$ python ca/manage.py migrate
$ devscripts/standalone/create-testdata.py
$ devscripts/standalone/validate-testdata.py

Test admin interface

  • Check if the output of CAs and certs look okay: http://localhost:8000/admin
  • Check if the profile selection when creating a certificate works.
  • Check if pasting a CSR shows values from the CSR next to the "Subject" field.

Create a release

Create a release with:

$ ./dev.py release $version

The release script will:

  • Validate the current state in your repository.
  • Create a new signed git tag.
  • Build and validate the Python Wheel.
  • Build and test the Docker image.
  • Test the various tutorials.
  • Upload Python Wheel and Docker image.

Create release on GitHub

Create a release on GitHub.

After a release