[Pulp-dev] plugin API versioning for RC

Austin Macdonald austin at redhat.com
Thu Feb 28 16:27:20 UTC 2019


An issue has come up for plugins when declaring their dependence on
pulpcore-plugin.

Background:
The plugin API is semantically versioned at 0.1.0b20, which is separate
from pulpcore. The plan has always been that pulpcore would GA while the
plugin API is released as "0.1", indicating that even after GA, the plugin
API may change.

Problems:
If plugins are released to PyPI with `pulpcore-plugin >= 0.1.0`, then they
can break with future backwards incompatible changes of pulpcore-plugin.
This has occurred frequently recently, leading many plugins to pin the
pulpcore-plugin version explicitly. Pinning the version does guarantee that
the plugin will always work if it can be installed, but has led to a new
problem-- plugins that pin to different versions of pulpcore-plugin cannot
be installed together.

One solution:
We could  start bumping the "y" version of pulpcore-plugin with each
backwards incompatible change to the plugin API, and bump the z version for
bugfixes only. This will allow plugins to "pin" to the y version, but still
>= for the z version using `pulpcore-plugin ~= 0.1.0` synax. This will
allow us to guarantee that a plugin will work if it is installable *and*
allow some flexibility to improve the odds that plugins will work together.

https://semver.org/#spec-item-4
https://semver.org/#how-should-i-deal-with-revisions-in-the-0yz-initial-development-phase
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20190228/c343ff76/attachment.htm>


More information about the Pulp-dev mailing list