Sozu has a lot of moving pieces and some dependent projects, so
In cases of changes to:
- the configuration file format: update
bin/config.toml
anddoc/how_to_use.md
- the configuration state: update
lib/src/lib.rs
documentation, and examples inlib/examples
- the command messages: update
command/README.md
andlib/src/lib.rs
Launch sozu with worker_automatic_restart
on, test a request, kill a worker, test a request
- 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 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.
Verify that the Docker container was built correctly.
Update related projects to use the latest version of sozu-command-lib
and sozu-command-futures
: