Funding for CI for integrating development versions of packages and interpreter in package set

The Python ecosystem moves fast. It’s not uncommon that new releases of the interpreter or core packages break other packages. PEP 608 proposes that certain packages need to be compatible before releasing a version of the interpreter. That means first finding out whether packages are compatible.

Some of us in the Nixpkgs community have been thinking about setting up a CI to track the integration of development versions of core packages and the interpreter. In Nixpkgs we package thousands of Python packages, for multiple interpreter versions, and for both Linux and OSX. Given the dependency graph we obtain by using Nix, and that we run the test suites of most packages during build-time, this allows us to very quickly verify the impact of a new release of one or more packages or interpreters. In fact, a demo of this was once made for scientific computing packages (cc @costrouc).

Would it be possible to receive funding for setting up and maintaining such a CI? We would have to decide on what packages to track, and what packages to test. The packages listed in PEP 608 are I think good candidates for tracking. Depending on the desired resolution (every commit / houry/ daily / …) the monthyl costs of such a machine could be between 50 and 200 euros I estimate. Note that estimation only includes Linux. It would be just as easy for us to test on OSX as well, but that of course requires extra resources. Windows is not possible.


Is this because Nix isn’t available for Windows? So this is specifically a request to fund nixpkgs CI for Python packages and not a proposal to fund CI for Python packages in general, correct? If that’s true then the title is a bit misleading.

I’m not saying that makes the proposal is bad if my assessment is correct, but it does change what the actual target of this proposal is.

Nix is indeed not available for Windows. There have been attempts at it, but its not generally supported.

For Nixpkgs we have a CI already. Integration of dev packages and interpreters is however a separate project.