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.
Python — Version
~3.14Web Stuff
Django — Version
~6.0Django Ninja — Version
~1.6Procrastinate — Version
~3.7Wagtail — Version
~7.3Channels — Version
~4.3Django Postgres Extra — Version
~2.0Wailer — Version
~1.0
Annoying compiled stuff
JavaScript¶
Databases¶
PostgreSQL — Version
^15Redis — Version
^7
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
Dockerfileunder bothapiandfrontUpdate the
modelw-preset-*packages insideapi/pyproject.tomland insidefront/package.jsonRun
poetry updateas well asnpm updateto update all dependencies to their latest versionsTest the project locally
git pushCheck the security tab in GitHub to make sure it’s zero
Test the deployment