Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add prepare operation RFC #202

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft

Add prepare operation RFC #202

wants to merge 4 commits into from

Conversation

jromero
Copy link
Member

@jromero jromero commented Feb 7, 2022

Readable

Change Log

2022-02-22 (94e3180, d02754f)

2022-02-10 (8fc7a70)

  • Add a detailed summary
  • Give the io.buildpacks namespace an independent schema version

2022-02-07 (99fc145)

  • Initial RFC

Signed-off-by: Javier Romero <rjavier@vmware.com>
@jromero jromero requested a review from a team as a code owner February 7, 2022 16:40
@buildpack-bot
Copy link
Member

Maintainers,

As you review this RFC please queue up issues to be created using the following commands:

/queue-issue <repo> "<title>" [labels]...
/unqueue-issue <uid>

Issues

(none)

Copy link
Contributor

@loewenstein loewenstein left a comment

Choose a reason for hiding this comment

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

FYI We have implementations for some of those preparer functionality in the Piper cnbBuild step and utility package.

E.g. include/exclude handling, buildpack downloads (from url or via buildpack registry), etc.

I guess we could provide those if this RFC was accepted.

text/0000-prepare-operation.md Outdated Show resolved Hide resolved
Signed-off-by: Javier Romero <rjavier@vmware.com>
Signed-off-by: Javier Romero <rjavier@vmware.com>
Signed-off-by: Javier Romero <rjavier@vmware.com>
@jromero
Copy link
Member Author

jromero commented Mar 1, 2022

Based on further conversations of additional "operations" such as prepare (this RFC), publish, and cosign we are considering moving forward with an "implement first and standardize later" strategy. This approach was decided because it heavily relies on the willingness of individual platforms to incorporate such operations. As a project, we think that by providing the utilities and "example" implementation through platforms we maintain, such as Pack and Tekon Tasks, can prove the value of such individual reusable components and operations. The hope is that, with due, time truly desired functionality is naturally promoted from an example, to convention, to specification.

@jjbustamante + @samj1912 please correct me if my understanding is incorrect.

@jromero jromero marked this pull request as draft March 1, 2022 21:54

#### Remove `io.buildpacks` namespace

We'll want to remove the `io.buildpacks` namespace since it will be versioned seperate from the project descriptor.
Copy link
Member

Choose a reason for hiding this comment

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

I guess I understand the need for this but I also find the idea of another spec somewhat confusing. Unfortunately I don't have any constructive suggestions to offer.


> This would be useful for builder providers or platform implementers to not have to develop standard functionality.

The default implementation COULD take care of applying the following configuration:
Copy link
Member

Choose a reason for hiding this comment

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

To link up some discussion re: https://github.com/buildpacks/spec/pull/288, it could also download a run-image sbom if provided as a label pointing to a layer or a cosign-attached image manifest.

@jromero
Copy link
Member Author

jromero commented Mar 29, 2022

Update: a new repository with this work has been started here: https://github.com/jromero/cnb-prepare

1 similar comment
@jromero
Copy link
Member Author

jromero commented Mar 29, 2022

Update: a new repository with this work has been started here: https://github.com/jromero/cnb-prepare

@SaschaSchwarze0
Copy link

Hi @jromero, in Shipwright, we are using the lifecycle methods and therefore bypass pack, similar as the Tekton catalog task. Your prepare operation is quite interesting. Is this something you are still looking at?

@jkutner
Copy link
Member

jkutner commented Nov 30, 2022

I'd love to see this move forward

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants