Exploring the cross platform dependency management situation in Python - Part 2: piptools internals

This is a continuation of [my previous post about pip-tools]({{< ref “python_dep_management.md” >}}), and the unsatisfying conclusion that it doesn’t handle generating cross platform requirements particularly elegantly. I started this investigation with the premise that it should be possible to generate a cross-platform environment specification from a single computer. This post determines the validity of that premise, by taking a peek at the internals of the pip-tools and its dependency solver.

Exploring the cross platform dependency management situation in Python: piptools

I’ve chosen to split this post into at least two parts, as the preamble to give context became a blog post in itself. So this first piece focuses the context around introducing stricter dependency management, and outlining the cracks that appear when trying to come up with a solution that works on multiple platforms. Recently, I’ve been looking into transitioning a project (in this case, a large transport model dev codebase) from a heavy development cycle into a production like state.

Getting into blogging

Generally, I’m not one for cliches. I’m a full-time cynic, part-time pesimist and view New Years resolutions with a generous dose of skepticism, thinking most likely these are happy lies we tell ourselves to sleep better at night, before the fade into obscurity a few weeks later. Yet here I find myself, on the second day of 2023 finally acting on a blogging idea I’ve been mulling over for a fair while now.