buildpacks / pack

CLI for building apps using Cloud Native Buildpacks
https://buildpacks.io
Apache License 2.0
2.6k stars 290 forks source link

Update builder implementation to 0.1 Builder Spec #945

Open jromero opened 4 years ago

jromero commented 4 years ago

Description

The builder has recently been spec'd via RFC (official spec upcoming).

Proposed solution

dfreilich commented 3 years ago

In order to be compliant with the specification, we need to make the following changes:

Env

New Labels

The io.buildpacks.lifecycle.apis data should look like:

{
  "buildpack": {
    "deprecated": ["<list of versions>"],
    "supported": ["<list of versions>"]
  },
  "platform": {
    "deprecated": ["<list of versions>"],
    "supported": ["<list of versions>"]
  }
}

Changes to Existing Labels

Additional Requirements

We should follow all of the spec recommendations for what a build image should look like, which would require us also setting:

jromero commented 3 years ago

Waiting for spec PR https://github.com/buildpacks/spec/pull/193 to be approved.

jimil749 commented 3 years ago

Hello @jromero! I am relatively new to buildpacks project, but would love to get involved and potentially contribute. Any pointers to get started?

jromero commented 3 years ago

Here are a few resources I think would help (in some reasonable order):

Places to get help:

jimil749 commented 3 years ago

Thanks for the elaborated response @jromero! Excited to get started! :)

jromero commented 3 years ago

Update from ongoing conversation:

During our discussion today @ecasey and I came to the realization that maybe we’ve been thinking about the builder spec wrong.

We’d like to propose that the builder is just one of the components that may be produced and distributed as part of the distribution spec.

Envision the distribution spec not only detailing how buildpacks are distributed but also how other components are distributed. ie. “If you want to distribute an image of the run image, it must be done as such.” Same for build image, buildpacks (already in place), lifecycle, etc. Last but not least, distributing a builder would simply refer to the other components it must include plus any additional considerations.

jjbustamante commented 1 year ago

After a bunch of discussion, we ended up creating a PR to add the builder spec to the distribution spec. Once that's done, we can come back to this issue and check what else is required next

jjbustamante commented 1 year ago

Block by spec PR 363