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

Lifecycle Prepare Phase #555

Open
jkutner opened this issue Mar 26, 2021 · 8 comments
Open

Lifecycle Prepare Phase #555

jkutner opened this issue Mar 26, 2021 · 8 comments
Labels

Comments

@jkutner
Copy link
Member

jkutner commented Mar 26, 2021

Overview

This is a proposal for a Lifecycle prepare phase

Goals

  1. Parity with Pack: A Lifecycle Prepare phase should make it easier for Platform Implementers to achieve parity with features of Pack. Today, features like project.toml are only supported by Pack, and a new platform would need to write it’s own parser.

Specifications

A new Lifecycle phase and associated binary should be available to Platform Implementers, and should be executed by Pack.

Milestones

  1. RFC - The new phase must be proposed as an RFC, and must describe concerns beyond Inline Buildpacks. The RFC should justify the existence of the new phase
  2. Specification - After the RFC is approved, the required specification changes will need to be made to the Platform Spec.
  3. Implementation - Finally, the specification must be implemented in the Lifecycle.
  4. Update Pack - The Pack CLI should be updated such that it invokes the new Lifecycle phase.

Prior Art

@shatoboar
Copy link

Hi, I would like to work on this project! Do you have any tips or starting points for a newcomer? Thanks in advance

@natalieparellano
Copy link
Member

Hi @shatoboar - apologies for the slow reply. I am sure @jkutner will have more to add, but here are some thoughts that come to mind for now:

Let us know how that sounds. We're happy to provide any further guidance as needed. For more real-time support, you could also reach out in Slack: https://slack.buildpacks.io/

@haliliceylan
Copy link
Contributor

Hi, I am using pack-cli and buildpacks on my daily development projects. This feature is sounds very good to me. I would like to work on this issue, I will read your tips. Is there any channel on slack or should i send direct message you ?

@uqix
Copy link

uqix commented Jan 13, 2022

Is there any way to specify buildpacks like pack build ... -b bp1 -b bp2 till now?

@natalieparellano
Copy link
Member

Hi @uqix you can currently specify buildpacks in project.toml: https://github.com/buildpacks/spec/blob/main/extensions/project-descriptor.md#buildbuildpacks which is supported by pack.

With respect to the lifecycle "prepare" phase and how that might interact with project.toml - lately there has been much discussion within the project about this topic, with various competing and/or complementary RFCs. I believe @jromero has a forthcoming RFC that will try to tie various ideas together. In the meantime, here are the ones that are out there:

@jromero
Copy link
Member

jromero commented Jan 20, 2022

Is there any way to specify buildpacks like pack build ... -b bp1 -b bp2 till now?

If I'm not mistaken, providing buildpacks to the lifecycle would take the form of providing an order.toml which is already part of the API.

RE: project.toml

Latest rendition of a proposal (still very much WIP) is here: https://hackmd.io/4LGBHOZAQ6GMOTeDf2U3_w#Platform-Configuration

@uqix
Copy link

uqix commented Jan 21, 2022

@jromero thanks, problem solved by order.toml.

FYI, we use this order.toml to build frontend image with yarn and nginx:

[[order]]
  [[order.group]]
    id = "paketo-buildpacks/nodejs"
    version = "0.12.0"

  [[order.group]]
    id = "paketo-buildpacks/nginx"
    version = "0.5.2"

@natalieparellano
Copy link
Member

Blocking this on buildpacks/rfcs#202

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

No branches or pull requests

6 participants