Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions text/0000-ubuntu-lts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Following the bienial Ubuntu LTS release cycle

## Summary
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this RFC is good time to shape it, as we have the noble builder as an example.


Every other year, Ubuntu releases a new Long Term Support (LTS) version. This proposal is to ensure that Paketo continues to provide the latest Ubuntu-based stackroot file system for our users by producing a new set of builders based on the latest LTS release.
This comprises to provide build and run images, making sure the relevant buildpacks support the new LTS and providing the corresponding builders.

In particular, since April 2024, Ubuntu released 24.04 Ubuntu Noble Numbat as the successor of 22.04 Ubuntu Jammy Jellyfish. Work has begun to provide build and run images for the Noble Numbat release. However, not all buildpacks have confirmed support and no builders have been released yet.

## Motivation

Users of Paketo rely on us to provide an up-to-date root file system for their applications. This includes the latest security patches and software updates. While Ubuntu LTS releases are supported for 5 years, it is important to provide the latest LTS release to our users as soon as possible to ensure they can benefit from the latest features and security updates. This also provides a longer period of time for users to transition from one release to the next.

## Detailed Explanation

In late April of every even year, Ubuntu releases a new LTS version. Once the new LTS version is released, the Stacks team will begin work on providing the new build and run images. Once build and run images are available, the Builders team will begin work on providing the corresponding builders. Once the buildpackless builders are available, the individual buildpack teams will begin to evaluate and test their buildpacks on the new builders and work on fixes or mitigations should they be needed. Once all buildpacks have been confirmed to work on the new builders, the Builders team releases the buildpackfull builders.
Copy link
Copy Markdown
Contributor

@dmikusa dmikusa Dec 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want to wait until every last buildpack has been verified before we release the builders with buildpacks? If one buildpack team is not responsive, this can delay the whole process with no limit.

I could see some other possibilities like:

  • Buildpack teams have three months to verify and apply any fixes required to make their buildpack compatible. After three months, we release the builders with all the buildpacks that have been verified, omitting any that have not been marked as verified. As buildpack teams confirm compatibility the builder will be updated to include those buildpacks as well.

  • The builder team will release the builders with buildpacks in beta mode when we have confirmed that 50% of the buildpacks are compatible. After that, as buildpack teams confirm compatibility the builder will be updated to include those buildpacks as well. The builder will exit beta when 100% of the buildpacks have been verified.

Thoughts?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The builder team will release the builders with buildpacks in beta mode when we have confirmed that 50% of the buildpacks are compatible.

50% of the buildpacks from what is included on the previous builder, or 50% of the buildpacks from all the buildpacks under the paketo org?

The builder will exit beta when 100% of the buildpacks have been verified.

I think it will never exit. Can we omit the beta concept and just publish the builder once we have reach the 50% ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After going through Noble, my vote would be to release the builder as soon as we have a single composite that is ready to go. It's frustrating working on a composite buildpack, and having it done, but it can't go into the builder because other buildpack teams haven't verified yet.

You can introspect a builder to see what's in it. We document what's in it (README). It should be fairly clear what users should get when they use a builder. I would vote for just releasing what we have when we have it.


## Rationale and Alternatives

We could opt to adopt LTS's less frequently or additionally adopt the releases in between LTS releases. However, the former would result in users not having access to the latest features and security updates, while the latter would result in a significant increase in the number of builders we need to maintain.

## Implementation

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First is necessary to open an RFC about the new stack

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is also necessary for an RFC about the builder repo

1. Beginning of April of every even year, the Steering team will create the necessary repositories for stacks and builders.
2. During the Ubuntu LTS Release Candidate phase or latest once an official release is available, the Stacks team will begin work on providing the new build and run images.
3. Once the build and run images are available, the Builders team will begin work on providing the corresponding builders.
4. Once the buildpackless builders are available, the individual buildpack teams will begin to evaluate and test their buildpacks on the new builders.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
4. Once the buildpackless builders are available, the individual buildpack teams will begin to evaluate and test their buildpacks on the new builders.
4. Once the buildpackless builders are available, the individual buildpack teams will begin to evaluate and test their buildpacks on the new buildpackless builder.

5. Once all buildpacks have been confirmed to work on the new builders, the Builders team releases the buildpackfull builders.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
5. Once all buildpacks have been confirmed to work on the new builders, the Builders team releases the buildpackfull builders.
5. Once all buildpacks have been confirmed to work on the new buildpackless builder, the Builders team releases the buildpackfull builders.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The builder also needs to be added on the samples repo for each composite buildpack that the builder works with, example P.R. paketo-buildpacks/samples#1165

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then the builder needs to be added to the reference page https://paketo.io/docs/reference/builders-reference/

example PR paketo-buildpacks/paketo-website#907

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Final step is the builder needs to be added on the pack CLI on the suggested builders https://github.com/buildpacks/pack/blob/main/internal/builder/trusted_builder.go

Examle PR https://github.com/buildpacks/pack/pull/2383/files

6. We'll announce the availability of the new builders to the community.

## Prior Art

* [RFC 0004: Jammy Jellyfish](./stacks/0004-jammy-jellyfish.md)

## Unresolved Questions and Bikeshedding

* What if not all buildpack teams have the capacity to test their buildpacks on the new builders before the release of the buildpackfull builders?