Delivery
Delivery is how a version leaves your machine and reaches production. Features and products are released separately, and a server can follow a product’s releases on its own.
How a change reaches production
- A feature release (
feature:release) publishes a version of the feature to PyPI and tags it on the forge. - The products that use it get a pull request with the upgrade from their weekly CI job. Merging it is a person’s decision.
- A product release (
product:release) bumps the product’s version, commits its deploy bundle and publishes its image to the registries, as<version>and asstable. - A server with the autodeploy feature follows
stable. It backs up the database, swaps the container, and goes back when a release does not start.
If a release stops halfway, release:resume finishes it without bumping the version again.
How it relates to the other layers
- Features and product. Both are released, each with its own version.
- Infrastructure. The image a product release publishes is the one its deploy bundle runs.
- Ecosystem. The forge, PyPI and the image registries are where releases go.