jsonnet cache invalidation misses selectively generated files
I just ran into a not totally obvious behavior of the jsonnet caching, a reproducer is below. It took me a little while to figure this out today, but I don't know how relevant this is overall.
This essentially led to the behavior seen here: https://gitlab.com/gitlab-com/runbooks/-/jobs/6097742000
diff --git a/mimir-rules/gitlab-gprd/gprd/autogenerated-gitlab-gprd-gprd-stage-group-ignored-components.yml b/mimir-rules/gitlab-gprd/gprd/autogenerated-gitlab-gprd-gprd-stage-group-ignored-components.yml
index 57ee560ff..3fdec735f 100644
--- a/mimir-rules/gitlab-gprd/gprd/autogenerated-gitlab-gprd-gprd-stage-group-ignored-components.yml
+++ b/mimir-rules/gitlab-gprd/gprd/autogenerated-gitlab-gprd-gprd-stage-group-ignored-components.yml
@@ -1,4 +1,4 @@
-# WARNING. DO NOT EDIT THIS FILE BY HAND. USE mimir-rules-jsonnet/stage-group-ignored-components.jsonnet TO GENERATE IT
+# WARNING. DO NOT EDIT THIS FILE BY HAND. USE ./mimir-rules-jsonnet/stage-group-ignored-components.jsonnet TO GENERATE IT
The surprising issue for me was that make generate
locally didn't produce a difference.
Steps to reproduce
- Clean runbooks state
- Clean jsonnet cache, e.g.
rm -r .cache/mimir*
- Selectively generate a jsonnet file:
./scripts/generate-jsonnet-rules.sh mimir-rules-jsonnet/stage-group-ignored-components.jsonnet
- Commit those changes, including the autogenerated files
- Run
make generate
and verify there are no local changesgit diff
- Clean jsonnet cache, e.g.
rm -r .cache/mimir*
- Run
make generate
and we can see the above diff (multiple occurrences of it)
Edited by Andreas Brandl