Replies: 4 comments 5 replies
-
A backport policy would increase release / branch management complexity, or at least require some additional upfront automation cost. Are Paketo users requesting backports right now? Do we think that some potential users opt not to use Paketo buildpacks because we don't do backports? I'd want answers to those questions before we decide to invest in the additional complexity of backporting. |
Beta Was this translation helpful? Give feedback.
-
I think what the RFC is asking seems reasonable. My read of it is that the request is to change how we tag images, making it similar to what you see with most docker images. For example, I can ask for My main concern with this RFC is that it goes against one of the goals of buildpacks, which is to push folks to update. If we start tagging images to I think a reasonable compromise would be to tag images only with the major branch. That gives you all the benefits of security updates, but would isolate you from large and breaking changes (like removing dependencies). I didn't get the impression the RFC is asking to manage and backport changes to branches. I could see where, once we tag images as requested in the RFC, the conversation could turn to backports. If you have those branches, then why not? But tagging images in this way is drastically different from managing code branches & having support lifetime policies people can count on. I would be strongly -1 for anything regarding backports. I think with the rate at which buildpacks move, that would be nearly impossible to manage at the code level. I feel like it would also be complicated for users to understand. What is supported? What isn't? What we have now is much easier to follow. Updates & bug fixes always go out in a new release, and the latest release always has the latest updates. I would be curious to understand more about possible use cases for both the RFC & backports though. Is it the buildpack that people want to hold back (i.e. changes to the actual buildpack code) or is it the dependencies that buildpacks install people want to hold back? Right now we have a very tight coupling between the two. Updating buildpacks will get you updated dependencies. It's not easy to hold back a dependency, besides holding back the buildpack. If users need more control over dependencies, perhaps we can solve that by decoupling the two and, in the process, avoid a complicated branching/backporting strategy. |
Beta Was this translation helpful? Give feedback.
-
Sorry for getting at this a little later than I hoped for. Let me first of all strongly point out that the recent RFC indeed is limited to additional tagging and doesn't request actual backporting. I also agree however, that the RFC might trigger a discussion on backporting. Actually, I triggered this discussion in a short conversation with @ryanmoran over Slack. Looking at semver.org as a consumer, I would like to have some lead time to adapt to major version bumps, so I can plan for the efforts involved. Similarly, but to a lesser extent, I would like to have some lead time to adapt to minor version bumps, so that I can plan for potential efforts involved. This expectation doesn't seem to be met by how the Paketo project uses semver though. If I rephrase the above, removing semver from the picture, I'd state the following points:
Is there a way to achieve that with the Paketo buildpacks versioning scheme? I suppose a part of the problem is that not all breaking changes affect everyone, but I cannot know easily if a breaking change will affect me. E.g. by the time the removal of a JRE major version, that has reached end of life, triggers a major update, I have hopefully migrated to a newer one. I definitely agree that the buildpack cannot do anything about it regardless. But the same major version bump or other major version bumps might affect me through an incompatible change in a dependency or the buildpack itself.
Concluding my statements I'd say it is neither. It is about holding back risk (in terms of incompatible changes) while embracing fixes (which also reduces risk). |
Beta Was this translation helpful? Give feedback.
-
Thanks @dmikusa-pivotal. I am getting a little confused. You say
What I thought I had understood from the discussion around backports so far is that with a major version bump to lets' say 6.0.0 there would no longer be any releases of 5.x or 5.16.x. While I could prevent features or breaking changes by pinning 5 or 5.15, I would not get any fixes, including security fixes for buildpacks or dependencies.
While I don't understand the details of delivering patch level updates of dependencies (like JRE 16.0.1 -> 16.0.2) as minor level updates of the buildpacks - I don't see this as a huge problem, as minor versions are still supposed to be compatible. Hence an update seems a comparably low risk. Regarding the major version bumps, I guess I would prefer to see the bump some time before the end-of-life. Seeing the bump as kind of a clear warning signal that it's time to use a newer JRE. This way we could still deliver fixes for the old major version, including for the JRE that approaches end-of-life. I agree with @fg-j, that there will be at least some upfront investment into automation necessary, if we wanted to deliver e.g. Java Buildpack 5.x with security fixes, after 6.0 has been released. Without having looked into the details much, I'd guess that a huge part of the additional effort can be solved with automation. |
Beta Was this translation helpful? Give feedback.
-
A recent RFC has sparked a renewed conversation about the expectations users might have about keeping their buildpacks up-to-date while limiting risk of consuming updates that break their build.
To start the discussion, I'd like to hear what some of those expectations are.
I think it might also make sense to take the time to review what types of changes were included in what types of releases.
Beta Was this translation helpful? Give feedback.
All reactions