This project contains some fake data and a test script to confirm the behaviour of local version identifiers.
The intention is to provide guidance on the use of local version identifiers when forking / patching upstream packages and to understand how these are handled transitively.
This was originally discussed in a thread on Python Packaging.
- “foo-pkg 2.0.0” requires “bar-pkg >= 1.0”
- There is a desire to patch “bar-pkg 1.0.0” and publish to a private index
- The patched “bar-pkg” is published as “bar-pkg 1.0.0+custom” to the private index
- The “bar-pkg 1.0.0+custom” identifier makes it easy to understand and manage the original package and version that was patched
Contents of requirements.in
bar-pkg==1.0.0+custom
foo-pkg
This works as desired. The custom patched version of “bar-pkg 1.0.0+custom” is selected to satisfy the transitive dependency from “foo-pkg 2.0.0 -> bar-pkg >= 1.0”