Photo from Astro default blog template

24 Aug 2023

How outdated are software repositories?


Skip to the results

Intro

Do you ever wonder just *how* outdated your favorite rolling release distro's repositories are? Because that question came to my mind some time ago, after seeing too many "new version availiable" popups while playing Xonotic.

Measuring it

Now, how do you measure how up-to-date a repository is automatically? Because with Nixpkgs having more than 80k packages, and Gentoo having over 18k, checking how up-to-date they are manually will be no easy task. My plan for measuring it is:
  1. Grab all the Python packages in the repo and their versions
  2. Check with PyPI to see if that is the most recently uploaded version
  3. For a extra sanity check in case someone put in a weird version number, don't count it if there hasn't also been a release with that version.
While I'd love to do this for every possible distro, I've only done it for Nixpkgs and Gentoo as they are pretty easy to automate finding package versions, and both have categories for Python packages. I'd also love to expand this to checking github releases aswell, as I don't know how representative Python packages is for the repository.

The results

The code used to measure the data below can be found in the assets for this post The code is awful. Feel free to use it to replicate my results/track how the change is over time but please don't actually use this.

Nixpkgs

Up to date 4908
Outdated 1146
Missing nix version 98
Missing nix pname 17
Wrong nix version 199
Package not found 110

Gentoo

Up to date 1017
Outdated 69
Missing gentoo version 0
Wrong gentoo version 495
Package not found 58

Terms

Up to date exact same version as the one on PyPI
Outdated a newer version is available on PyPI
Missing nix/gentoo version Could not parse the current version from the source file
Wrong nix/gentoo version The version in the repository doesn't exist on PyPI
Package not found The package does not exist on PyPI