sozu/RELEASE.md

1.8 KiB

Release process

Sozu has a lot of moving pieces and some dependent projects, so

Checklist

Documentation

In cases of changes to:

  • the configuration file format: update bin/config.toml and doc/how_to_use.md
  • the configuration state: update lib/src/lib.rs documentation, and examples in lib/examples
  • the command messages: update command/README.md and lib/src/lib.rs

Testing

Worker liveness

Launch sozu with worker_automatic_restart on, test a request, kill a worker, test a request

Upgrades

  • compile a sozu and sozuctl of the previous published version, store the binaries somewhere
  • compile a sozu of the latest version
  • start the old sozu version
  • query its configuration state
  • replace the old sozu file with the new one
  • launch an upgrade with sozuctl
  • check that the new sozu runs properly (listens for new connections, handles requests, etc)
  • check the new sozu's state, compared to the previous one
  • verify that the old workers quit correctly (if they were handling WebSocket connections, check that the master detetcs when you kill them)

For minor and patch releases, the upgrade process must always pass correctly.

Update the changelog

Publish the new version

update the version number in Cargo.toml files in:

  • command/
  • lib/
  • bin/

Run cargo build at the root of the project to update the Cargo.lock file.

Commit the Cargo.toml and Cargo.lock changes.

Wait for the Travis CI build to pass.

Following checks

Verify that the Docker container was built correctly.

Update related projects to use the latest version of sozu-command-lib and sozu-command-futures: