Pulpcore/3.25 is On The Horizon, and upcoming changes in release-cadence

Hello folks!

The next release of pulpcore is going to be 3.25, and will be happening Soon(ish) - as in, possibly before the end of the month. The reason it’s important to know this, is that all our plugins are currently declared-compatible up to core/3.24. With 3.25, we are moving to Django4.2, and there may be other incompatible changes at the plugin-level; this will require plugins to release new versions declaring themselves to be compatible with core/3.25, after making any changes they need to adapt to the New World.

Another change that will be happening post-3.25 involves pulpcore’s release-cadence. We have had requests from folk who live in the Services world, to release new features more frequently - specifically, “as soon as a new feature is merged, we’d like to see a new version released.” We’ve been discussing this for a while now - you can see our thinking from the beginning of March here

As a result, starting with core/3.25, the decision-making around “should we cut a new pulpcore release” at the Tuesday Core-Team meeting is going to go something like this:

  • Has anything been backported to previous release-branches? If so - release new z-streams.
  • Is there a new feature, or something that requires a migration, available in main? If so - create a new Y-branch and release 3.Y.0

That could possibly result in a new y-release every week. Our current velocity suggests it won’t be quite that fast - but it will definitely be more often than the current “few months” between Y releases.

Among other things, this means we need to lengthen the number of releases we promise to not-break the plugin API. Starting with 3.25, we’re going to declare 15 compatible releases for pulpcore. That means that the next opportunity to make incompatible changes will be core/3.40. The absolute minimum amount of time plugins can trust staying compatible with pulpcore, post-3.25, is therefore 15 weeks. And given our observed velocity over the last year, it’s likely to be on the order of twice that or more.

This is a lot of words of explanation, that can be summed up as:

  • core/3.25 is coming soon
  • core will be releasing much more frequently
  • plugins will need to be released with an expanded upper-bounds-compatibility to be used with it
  • the next compatibility-barrier for core will be pulpcore/3.40 - plugins will be able to declare “pulpcore<3.40” as their upperbounds
  • bugfixes will continue to be backported into z-releases as needed
  • features will become available much faster than they are currently

(One note - as always, every solid declaration above comes with an implied “…unless we discover an egregious bug”.)

Questions or comments, please ask them here. We’re working our way through exactly what this is going to look like, so the more we think about now, the fewer surprises later.

Thanks for staying for my whole TED Talk :slight_smile:
Grant

Some Links:

8 Likes

It has been a while since the last breaking release, so I am trying to refresh my memory:

What is the best way to check if a given plugin is currently spitting out deprecation warnings?
Is there a dedicated test case for this?

The easiest thing is to check the logs in the deprecations step in the CI, e.g., Fix structured copy · pulp/pulp_deb@9dec275 · GitHub. As far as I know, we do not have any other dedicated tests for deprecations.

2 Likes

Here is it how it looks like for an old branch of pulp_container: Update CI files from 2.14 branch · pulp/pulp_container@2ee1d34 · GitHub

2 Likes