Release cycle

We’ll discuss here how releases are made and what is the current choice of software that is included in the distribution.

Schedule

The release of Model W happens quarterly:

  • 1st Monday of January (January 5, 2026)

  • 1st Monday of April (April 13, 2026)

  • 1st Monday of July (July 6, 2026)

  • 1st Monday of October (October 5, 2026)

The cycle for each release will be like this:

  • Development (4 weeks) — In this phase the new release will be developed. Ideal versions of each software will be decided and all Model W packages and documentation will be updated and tested to reach this target.

  • Pilot (4 weeks) — A pilot project will be selected to test the upcoming release

  • Roll-out (3 months) — All projects must migrate to the new Model W release

  • Support (3 months) — After 3 month, when a new version comes out, the three previous versions stays supported for 3 more months to give time to projects to make their roll-out.

At any given point in time, there will be 4 releases supported. The latest release and the three previous ones.

This repo

This repo contains the documentation. The develop branch matches the development cycle of the release. Each release will then receive a PEP-440 version number in the format <year>.<month> which will be tagged.

Versions

The latest release is 2026.04.

The versions detailed below are the one for this release.

Model W packages

All Model W packages follow the same release logic. For example, the January 2023 release will be versioned 2023.01. The version number is used in all the packages, and they all are guaranteed to work together.

Which means that in order to switch from one version of Model W to another, you mainly need to change the version number of those packages in your requirements. Then you’ll run into updating issues and so forth.

Python

Versions are decided by checking at the time of entering development phase which are the highest mutually compatible versions of Django, Numpy, SciPy, Pandas and Python.

Note

We don’t use Numpy and friends so much but since they are often picky about the Python version it has been decided to include them.

JavaScript

Databases

Adopting a new release

Switching to a new version of Model W is simple:

  • Update poetry and npm to their latest versions

  • Update the first line of the Dockerfile under both api and front

  • Update the modelw-preset-* packages inside api/pyproject.toml and inside front/package.json

  • Run poetry update as well as npm update to update all dependencies to their latest versions

  • Test the project locally

  • git push

  • Check the security tab in GitHub to make sure it’s zero

  • Test the deployment