<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">An issue has come up for plugins when declaring their dependence on pulpcore-plugin. <br></div><div dir="ltr"><br></div><div dir="ltr">Background:</div><div dir="ltr">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.</div><div dir="ltr"><br></div><div>Problems:</div><div>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.</div><div><br></div><div>One solution:</div><div>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.</div><div><br></div><div><a href="https://semver.org/#spec-item-4">https://semver.org/#spec-item-4</a></div><div><a href="https://semver.org/#how-should-i-deal-with-revisions-in-the-0yz-initial-development-phase">https://semver.org/#how-should-i-deal-with-revisions-in-the-0yz-initial-development-phase</a><br></div></div></div></div>