Skip to content

Feature: exclude architectures #240

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

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

cap10morgan
Copy link
Collaborator

#238 revealed a blind spot in the exclusion code: architectures. This PR refactors & reorganizes some code and fixes that. It replaces the config/distro-architectures subsystem with the more generalized exclusion mechanism.

The only slightly tricky part is that for our variant generation & exclusion code, it makes sense to have a separate variant for each architecture. However, when we generate the manifest file (that tells the Docker Official Image folks what images to build from which dirs in this repo), we need to combine variants that only vary by architecture. So that's what this PR does.

Fixes #238

Copy link
Owner

@Quantisan Quantisan left a comment

Choose a reason for hiding this comment

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

LGTM!

Just a quick note: Have you thought about adding a test for merge-architecture? If it isn’t already covered.

Also, while exclude? is tested in core, it might be useful to create a unit test for variant/exclude? as well. This can serve as a practical example in addition to the docstring.

These are critical fns, so I'm a bit more nit picky.

@cap10morgan
Copy link
Collaborator Author

I'm still working on this. I dove into spec-based generative testing, but I think I'm going to crawl back out of that rabbit hole for one of the fns I started implementing it for. I will have some generative testing coming up though. :)

@cap10morgan
Copy link
Collaborator Author

I'm going to try to wrap this up soon. Sorry it has lingered so long!

@cap10morgan
Copy link
Collaborator Author

I'm making progress on this again. It required getting the test.chuck library running under Babashka, which required changes to Babashka itself, the instaparse pod, and test.chuck (😅) but I now have it generating test inputs from regexes. Getting these generators right was really giving me trouble, but test.chuck's string-from-regex generator is awesome.

Additional commits coming soon!

@cap10morgan cap10morgan force-pushed the feature/exclude-architectures branch from 5621a2f to 7773c83 Compare April 23, 2025 19:11
@cap10morgan
Copy link
Collaborator Author

OK @Quantisan at long last this should be good to re-review 🎉

@cap10morgan
Copy link
Collaborator Author

Once this lands we'll start publishing arm64 alpine variants for Java 21+!

@Quantisan
Copy link
Owner

Quantisan commented Apr 23, 2025 via email

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

Successfully merging this pull request may close these issues.

arm64 support for alpine
2 participants