-
Notifications
You must be signed in to change notification settings - Fork 4
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
feat: versioning modules #208
Comments
In the recipe we could have a top level property where you can specify the version of the modules image you want. We could default it to the current major version or to latest and let the user decide to override that |
Versioning for individual modules would be better, though. Not sure how that would work, but I have some ideas I'll post later. |
Turns out I didn't get to posting my ideas earlier... Anyway, here's some I can think of now. A: Unified module repository versioning
B: Naive directory versioning
C: Directory versioning and multiple imagesSame as option B, but
D: The no breaking changes strategy
That's all I can think of for now. I'm inclided to just go all in with option C, or go the lazy route with D. Please comment your thoughts below. |
C sound the best imo. Everything else has some cons in some way. |
Aight, I wont make a branch or PR for it now, but I'll outline the implementation details I have in mind more clearly. Github Action with two jobs:
GitHub Action with one job:
CLI would use the individual containers by default, and allow specifying the version manually. Unsure what to do with |
I'm liking this idea so far. If we can keep the classic I could add some logic to check for the presence of a certain module image like by using |
Here's the module stage we have currently: # Copy modules
# The default modules are inside blue-build/modules
# Custom modules overwrite defaults
FROM scratch AS stage-modules
COPY --from=ghcr.io/blue-build/modules:latest /modules /modules
{%- if self::modules_exists() %}
COPY ./modules /modules
{% endif %} And here's a portion of the module run that I could edit to handle pulling the particular module image {%- if let Some(source) = module.source %}
--mount=type=bind,from={{ source }},src=/modules,dst=/tmp/modules,rw \
{%- else %}
--mount=type=bind,from=stage-modules,src=/modules,dst=/tmp/modules,rw \
{%- endif %} |
Just realized that if we publish modules with |
With #240 done, here's the next steps:
|
We should discuss the approach to use for versioning modules. Of course using the module repository image hash or something like that could work, but it would be best IMO if it was possible to use SemVer for the modules, and pin each module to a major version such that non-breaking changes are automatically updated to.
The text was updated successfully, but these errors were encountered: