2024-10-09 | 142 words | 1 min read

Version Update Day#

Updating versions of software systems almost always requires manual intervention.

That’s why we implemented the Version Update Day. This means that we update all versions of all libraries of a project and assert that there are still no warnings. If there are, we fix them.

Example: This Page#

On 2021-02-15 we updated Sphinx to 3.5.0 and got the following:

WARNING: cannot copy static file FileNotFoundError(2, 'No such file or directory')

Searching for the error message revealed this Sphinx issue which was promptly fixed, but is not yet released. First of all: „Great job, jfbu, fixing this so quickly!“. We look forward to the next release.

Automation#

As always, first do things manually many times before automating them!

There are a few simple ways to automate this. Let’s look at a Python project example:

  • requirements.txt contains untagged versions

    • dev via pip install --upgrade -r requirements.txt

    • CI step „latest-versions“ with the same

  • frozen.requirements.txt contains frozen versions

    • production builds