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 more utilities to handle common layer creation scenarios #51

Open
sambhav opened this issue Apr 14, 2021 · 2 comments
Open

Add more utilities to handle common layer creation scenarios #51

sambhav opened this issue Apr 14, 2021 · 2 comments
Labels
type:enhancement A general enhancement

Comments

@sambhav
Copy link
Member

sambhav commented Apr 14, 2021

It would be useful to have some handy utilities to compare layer metadata and "reset" layers when they don't match.

For eg. something like this is implemented in libpak via a new layer contributor. Maybe we should consider adding something similar to libcnb as it feels like a fairly common and generic use case.

FWIW the python version of libcnb which heavily borrows ideas and Apis from this go version has some similar utilities for layer metadata comparison, loading the metadata and resetting the layer https://samj1912.github.io/python-libcnb/api/#libcnb._layers.Layer for an idea of what this could look like in libcnb

@sambhav sambhav added this to the 2.0 milestone Jun 3, 2022
@dmikusa dmikusa added the type:enhancement A general enhancement label Oct 3, 2023
@loewenstein
Copy link

@samj1912 is this in the 2.0 milestone because it cannot be done in 1.x or because it is a requirement to release 2.0?

cc @dmikusa

@dmikusa dmikusa removed this from the 2.0 milestone Oct 25, 2024
@dmikusa
Copy link
Contributor

dmikusa commented Oct 25, 2024

Historically we've kept libcnb to be just a thin layer over the spec. Adding some higher-level primitives would be a change from that. We also removed layer contributors in v2, so we've moved even more in that direction.

I'm not against adding some higher-level primitives, but I think we'd want to have a plan laid out on what those are and get some agreement in that direction (not sure a full RFC is needed, but something close to that).

Side note, because we use layer contributors at Paketo, I've implemented them in libpak. If someone is missing those, you can use libpak as an easy way to migrate to v2.

I wouldn't mind moving some of what we have in libpak into libcnb either. I think there are some genuinely useful primitives in libpak that we could share. I think there are also probably more high-level patterns that we could institute that would allow folks to more quickly and more easily author buildpacks, but not layer contributors. I have mixed feelings about layer contributors.

Anyway, I'm going to leave this open, but unless we get some feedback on this issue with things folks want to see, I'm not sure this is going to go anywhere.

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

No branches or pull requests

3 participants