docker-stacks
docker-stacks copied to clipboard
Verify contributed recipes
Contributed recipes are not checked in CI, were mostly added a long time ago and so they might be out-of-date. It would be nice if someone checked them, updated packages versions used there and verified that they still work.
Perhaps we should include a date for when they were added to the list, and allow that date to be updated whenever it is known to "be functional" (vague, but it's fine I think).
Yes, something like Last verified
near each recipe should be fine.
An example: https://github.com/jupyter/docker-stacks/pull/1617
One more example: https://github.com/jupyter/docker-stacks/issues/1951
I had an idea on how to fix this:
- Express all recipes as Dockerfiles - done in several commits today.
- Create a separate file for each Dockerfile in the docs.
They will be called
feature.dockerfile
MyST: https://myst-parser.readthedocs.io/en/latest/syntax/code_and_apis.html#including-code-from-files Sphinx: https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#directive-literalinclude - Enable pre-commit hooks on these Dockerfile - default hadolint doesn't work well with
.dockerfile
s. - The most interesting part - create a separate GitHub Workflow, which will build these recipes. So, our recipes will always be buildable.
- Mark outdated recipes as outdated. If someone want to fix them, they will easily use my workflow to verify the recipe is working fine.
After these steps I will consider this issue closed and even to be future-proof (because we'll have automatic tests).
@consideRatio I think you're going to like this 🙂
Done. We currently have 8 working (and automatically tested) Dockerfiles. And 13 untested and possibly broken ones. They are marked as warnings in documentation, so people will be aware there might be some problems. I will be happy to merge fixes for these recipes.
@consideRatio I think you're going to like this 🙂
Yes I love it!!! Amazing work as always @mathbunnyru!!!
@consideRatio a bit more improvements here:
GitHub allows to generate a matrix for execution, that's why I don't need to hardcode list of docker images to build and just build them all: https://github.com/jupyter/docker-stacks/pull/1973
Using this generation script it's easy to disable recipes which do not work under aarch64
(or x86_64
if there will be such recipes): https://github.com/jupyter/docker-stacks/pull/1974