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

RFC for exporting images in parallel #291

Merged
merged 4 commits into from
Oct 23, 2023
Merged

Conversation

ESWZY
Copy link
Contributor

@ESWZY ESWZY commented Aug 29, 2023

We already have some discussion here: lifecycle#1167.

Readable

@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)

Signed-off-by: Woa <me@wuzy.cn>
@jjbustamante
Copy link
Member

jjbustamante commented Aug 29, 2023

Hi @ESWZY!

Thank you so much for working on this proposal and the RFC it is really awesome!

My suggestions:

  • Add to the what is this section the propose flag to the exporter that will enable the feature. Usually we just add a table, similar to the one in the spec, with the new flag we want to incorporate.
  • Once you have the flag, in the how it works section, you can just add a few examples of invocations of the exporter with the new flag and you can explain the expected outcome and behavior.

The new flags, at the end, will require a new API spec, so you can also put them under the Spec. Changes section, but that is something can be done later once you get consensus from the community around the feature.

Signed-off-by: Woa <me@wuzy.cn>
@ESWZY
Copy link
Contributor Author

ESWZY commented Sep 21, 2023

Hi @ESWZY!

Thank you so much for working on this proposal and the RFC it is really awesome!

My suggestions:

  • Add to the what is this section the propose flag to the exporter that will enable the feature. Usually we just add a table, similar to the one in the spec, with the new flag we want to incorporate.
  • Once you have the flag, in the how it works section, you can just add a few examples of invocations of the exporter with the new flag and you can explain the expected outcome and behavior.

The new flags, at the end, will require a new API spec, so you can also put them under the Spec. Changes section, but that is something can be done later once you get consensus from the community around the feature.

Thanks for your suggestion!

I added a proposal flag to this PRC and made a preliminary attempt in lifecycle#1167.

# OR

> /cnb/lifecycle/exporter -app cr1.example.com/foo:app -parallel

Copy link
Member

Choose a reason for hiding this comment

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

I would suggest adding a WARN message to the end-user to indicate that using the parallel flag without exporting a cache image has no effect.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This makes sense, I agree with you.

- How to allow users to choose the export method? environment variable? Or a parameter of the creator?
- Does it also need to be specified in the pack tool?
- Should this feature be enabled by default?

Copy link
Member

Choose a reason for hiding this comment

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

From my point of view:

  • How to allow users to choose the export method? environment variable? Or a parameter of the creator?
    I like how you are proposing it, with the flag the env variable

  • Does it also need to be specified in the pack tool?
    Probably, once we get the RFC approved, we can create the issue on pack to expose the behavior for end-users

  • Should this feature be enabled by default?
    I'd say no to avoid unexpected behaviors to people consuming the lifecycle.

@jjbustamante
Copy link
Member

Awesome work @ESWZY! I really like this RFC

[-layout] \ # sets <layout>
[-layout-dir] \ # sets <layout-dir>
[-log-level <log-level>] \
[-parallel] \ # sets <parallel>
Copy link
Member

@natalieparellano natalieparellano Oct 11, 2023

Choose a reason for hiding this comment

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

Suggestion from working group - when these flags are combined in the creator, -parallel-export might make more sense. However -parallel-export might look funny as a flag to the exporter.

Perhaps -parallel-export as a flag to the creator and -parallel as a flag to the exporter? I don't have a strong opinion either way, but thought I'd surface this idea.

Copy link
Member

Choose a reason for hiding this comment

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

@ESWZY @jabrown85 perhaps you could opine here? Then I'll move this one back into voting. We already have enough approvals.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

At first I wanted to use this name, but I saw that the other flags were very short, so I chose a similar format.

But I think an informative name is very helpful for those who are new to this field.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think both are OK, as long as one can understand the meaning of this field by reading help messages.

@natalieparellano
Copy link
Member

Moved to voting, as this is a sub-team RFC and has approvals from both implementation maintainers I think we can merge it early cc @jabrown85

natalieparellano added a commit that referenced this pull request Oct 23, 2023
[#291]

Signed-off-by: Natalie Arellano <narellano@vmware.com>
@natalieparellano natalieparellano merged commit 42c82d6 into buildpacks:main Oct 23, 2023
7 checks passed
jjbustamante pushed a commit that referenced this pull request Nov 10, 2023
[#291]

Signed-off-by: Natalie Arellano <narellano@vmware.com>
Signed-off-by: Juan Bustamante <jbustamante@vmware.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scope/team RFC scoped to a sub-team as opposed to the entire project. spec/platform status/voting team/implementation type/rfc
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants