From 0e2acd993f239b81cdbeb95bca6ce750c873fdf4 Mon Sep 17 00:00:00 2001 From: Pete Bachant Date: Sun, 20 Sep 2026 20:58:48 -0700 Subject: [PATCH 1/5] Use Calkit TinyTeX image --- calkit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/calkit.yaml b/calkit.yaml index 24db101..85205cf 100644 --- a/calkit.yaml +++ b/calkit.yaml @@ -28,7 +28,7 @@ environments: description: A Python virtual environment managed with uv tex: kind: docker - image: texlive/texlive:latest-full + image: ghcr.io/calkit/latex:0.1.0 description: TeX Live via Docker. pipeline: From 33490c45ee7223f4518baca3436c3501eb075a07 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 21 Sep 2026 04:01:31 +0000 Subject: [PATCH 2/5] Run pipeline --- .calkit/env-locks/tex/amd64.json | 7 +------ .calkit/env-locks/tex/arm64.json | 20 ++++++++------------ .gitattributes | 3 +++ dvc.lock | 10 +++++----- dvc.yaml | 22 ++++++++++------------ 5 files changed, 27 insertions(+), 35 deletions(-) create mode 100644 .gitattributes diff --git a/.calkit/env-locks/tex/amd64.json b/.calkit/env-locks/tex/amd64.json index 3bf36d6..df4066a 100644 --- a/.calkit/env-locks/tex/amd64.json +++ b/.calkit/env-locks/tex/amd64.json @@ -1,10 +1,5 @@ { - "RepoTags": [ - "texlive/texlive:latest-full" - ], - "RepoDigests": [ - "texlive/texlive@sha256:e45f6b51d756d7519fafd3a94f51db2190504e0d222eb960888a77cc6942fdd0" - ], + "RepoDigests": [], "Architecture": "amd64", "Os": "linux", "RootFS": { diff --git a/.calkit/env-locks/tex/arm64.json b/.calkit/env-locks/tex/arm64.json index 1e66aeb..37b87c3 100644 --- a/.calkit/env-locks/tex/arm64.json +++ b/.calkit/env-locks/tex/arm64.json @@ -1,24 +1,20 @@ { - "RepoTags": [ - "texlive/texlive:latest-full" - ], "RepoDigests": [ - "texlive/texlive@sha256:e45f6b51d756d7519fafd3a94f51db2190504e0d222eb960888a77cc6942fdd0" + "sha256:90e1fee2ab237f01c718e528db97a29753e99cbd43f33f5cb8d4c5efa6c9610d" ], "Architecture": "arm64", "Os": "linux", "RootFS": { "Type": "layers", "Layers": [ - "sha256:47d21236eed2810c99a4120640b957ce5b4d992408cd8f1c5af4d751c9f9f3c3", - "sha256:a5443f392f694d014044d76b76cb853a45606fc8c27eb49b8248404873237a3e", - "sha256:99b47e5ea502b54a7b25702eae5f4d6554c7a263edb397af71eabe13178b3c98", + "sha256:8edaba05454265cd17270d38ec146446c640d1d25637413c3da64a3eff296c36", "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef", - "sha256:b754a94f61ee25699b4f6e9c8f4a85d7cbeb0814973cd16cead6fbfe94e822a4", - "sha256:4253f7276d1c859434b72cf61c4c3e31bc92141049754f1fbb2febeec0a32aa4", - "sha256:fa4d57b96d77bbedf46895dccef2c37c35cd4b90e60028a4f7bed8d26f095216", - "sha256:8c5f1f4d86faffad0d4a4f84b3485b9312fdf0917de2326b1462a8ebc5c8ab53", - "sha256:d31f0001fca0ba1ee95ae5657dfcd8f4e203d29c216bdd938c30cfde5da91aa5" + "sha256:239f3be14b3a1ea86e11c369a4dd50da127746cb220827561213d81c61ed465a", + "sha256:25176dc8873137e661c1545aafbdf8521dd3b950a9f0bb7e36326f1ec6a5e874", + "sha256:0d56c5721c5dfd098f7f2156dbd2e05bbf73e675be7a069729ee3c623382005f", + "sha256:a5a0411851b1fb37939e1b4f36fdfd063b963c1d3aed7371e116fc648e54bd65", + "sha256:fe072b1680406cac435a783d09ceca2d5501980f9b50ba213f614d0b73e35e3d", + "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef" ] }, "DockerfileMD5": null, diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..0a44bb7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# >>> calkit generated files (managed by calkit) >>> +/.calkit/** text eol=lf +# <<< calkit generated files <<< diff --git a/dvc.lock b/dvc.lock index e772ad0..dc284c4 100644 --- a/dvc.lock +++ b/dvc.lock @@ -47,8 +47,8 @@ stages: deps: - path: .calkit/env-locks/tex hash: md5 - md5: 6e6fd137d3e11267da50d89f781b0552.dir - size: 2294 + md5: 33dd5f613310fdf25337f6839ffc4109.dir + size: 1962 nfiles: 2 - path: paper/figures hash: md5 @@ -70,8 +70,8 @@ stages: outs: - path: paper/main.pdf hash: md5 - md5: 470d3514ddd9d74a5d65b6a1927b14c2 - size: 128672 + md5: cfb98d7bfb11a4acc83541dffad9b332 + size: 128820 _check_env_py: cmd: calkit check conda-env --file environment.yml --output .calkit/env-locks/py.yml @@ -115,7 +115,7 @@ stages: size: 2342 nfiles: 2 figs-to-paper: - cmd: calkit map-paths --dir-to-dir-replace 'figures->paper/figures' + cmd: calkit map-paths --dir-to-dir-replace "figures->paper/figures" deps: - path: figures hash: md5 diff --git a/dvc.yaml b/dvc.yaml index 5717879..bd23429 100644 --- a/dvc.yaml +++ b/dvc.yaml @@ -1,14 +1,13 @@ stages: collect-data: - cmd: calkit xenv -n py --no-check -- python - scripts/collect-data.py + cmd: calkit xenv -n py --no-check -- python scripts/collect-data.py deps: - scripts/collect-data.py - .calkit/env-locks/py outs: - data/raw/data.csv - desc: Automatically generated from the 'collect-data' stage in - calkit.yaml. Changes made here will be overwritten. + desc: Automatically generated from the 'collect-data' stage in calkit.yaml. + Changes made here will be overwritten. analyze: cmd: calkit xenv -n py --no-check -- python scripts/analyze.py deps: @@ -20,19 +19,18 @@ stages: - results/summary.json: cache: false persist: false - desc: Automatically generated from the 'analyze' stage in - calkit.yaml. Changes made here will be overwritten. + desc: Automatically generated from the 'analyze' stage in calkit.yaml. + Changes made here will be overwritten. figs-to-paper: - cmd: calkit map-paths --dir-to-dir-replace - 'figures->paper/figures' + cmd: calkit map-paths --dir-to-dir-replace "figures->paper/figures" deps: - figures outs: - paper/figures: cache: false persist: true - desc: Automatically generated from the 'figs-to-paper' stage in - calkit.yaml. Changes made here will be overwritten. + desc: Automatically generated from the 'figs-to-paper' stage in calkit.yaml. + Changes made here will be overwritten. results-to-tex: cmd: calkit latex from-json 'results/summary.json' --output 'paper/results.tex' @@ -54,5 +52,5 @@ stages: - paper/results.tex outs: - paper/main.pdf - desc: Automatically generated from the 'build-paper' stage in - calkit.yaml. Changes made here will be overwritten. + desc: Automatically generated from the 'build-paper' stage in calkit.yaml. + Changes made here will be overwritten. From b05460e7273b63adb05e1a045593f10286b477d2 Mon Sep 17 00:00:00 2001 From: Pete Bachant Date: Mon, 21 Sep 2026 04:34:30 -0700 Subject: [PATCH 3/5] Use the 0.1.1 image and drop stale environment locks --- .calkit/env-locks/tex/amd64.json | 21 --------------------- .calkit/env-locks/tex/arm64.json | 22 ---------------------- calkit.yaml | 2 +- 3 files changed, 1 insertion(+), 44 deletions(-) delete mode 100644 .calkit/env-locks/tex/amd64.json delete mode 100644 .calkit/env-locks/tex/arm64.json diff --git a/.calkit/env-locks/tex/amd64.json b/.calkit/env-locks/tex/amd64.json deleted file mode 100644 index df4066a..0000000 --- a/.calkit/env-locks/tex/amd64.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "RepoDigests": [], - "Architecture": "amd64", - "Os": "linux", - "RootFS": { - "Type": "layers", - "Layers": [ - "sha256:b9f4f71ae755f9248e2687e6a423ca7419a150748a6d3360adacb13daf683ad9", - "sha256:0cc6f5ed69e4a948391449e0a1ba6fe0b15146183db3397e6283c3a3bdfdadd9", - "sha256:b8b870d9cf70eabd4262868eedace16a70070399629ca624e3c511d56d1e5607", - "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef", - "sha256:d0f5df9e47b9f29f13f1d9ecbdd803d24bf2de8e6d61ffdfd6f71f989cedc680", - "sha256:e1d971b42eff7eaf1e929efcd296236a5111816837a6aa72f0401688965331e5", - "sha256:96bd540ad112be71847230ec13da112a2e354bce67c188ffb580aa0ddf8e90a6", - "sha256:17331da551fd81773f95a7c44d03512258fce9ef8b6c8562a58c478224cb650e", - "sha256:558896e672597f6be2ca87e26aa62c7a50c4985145e14593bb9fb364c7b571f1" - ] - }, - "DockerfileMD5": null, - "DepsMD5s": {} -} \ No newline at end of file diff --git a/.calkit/env-locks/tex/arm64.json b/.calkit/env-locks/tex/arm64.json deleted file mode 100644 index 37b87c3..0000000 --- a/.calkit/env-locks/tex/arm64.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "RepoDigests": [ - "sha256:90e1fee2ab237f01c718e528db97a29753e99cbd43f33f5cb8d4c5efa6c9610d" - ], - "Architecture": "arm64", - "Os": "linux", - "RootFS": { - "Type": "layers", - "Layers": [ - "sha256:8edaba05454265cd17270d38ec146446c640d1d25637413c3da64a3eff296c36", - "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef", - "sha256:239f3be14b3a1ea86e11c369a4dd50da127746cb220827561213d81c61ed465a", - "sha256:25176dc8873137e661c1545aafbdf8521dd3b950a9f0bb7e36326f1ec6a5e874", - "sha256:0d56c5721c5dfd098f7f2156dbd2e05bbf73e675be7a069729ee3c623382005f", - "sha256:a5a0411851b1fb37939e1b4f36fdfd063b963c1d3aed7371e116fc648e54bd65", - "sha256:fe072b1680406cac435a783d09ceca2d5501980f9b50ba213f614d0b73e35e3d", - "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef" - ] - }, - "DockerfileMD5": null, - "DepsMD5s": {} -} \ No newline at end of file diff --git a/calkit.yaml b/calkit.yaml index 85205cf..9d0b067 100644 --- a/calkit.yaml +++ b/calkit.yaml @@ -28,7 +28,7 @@ environments: description: A Python virtual environment managed with uv tex: kind: docker - image: ghcr.io/calkit/latex:0.1.0 + image: ghcr.io/calkit/latex:0.1.1 description: TeX Live via Docker. pipeline: From b9245fc00736c19e9159999bf467c1794f47b42a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 21 Sep 2026 11:35:32 +0000 Subject: [PATCH 4/5] Run pipeline --- .calkit/env-locks/tex/amd64.json | 23 +++++++++++++++++++++++ .calkit/env-locks/tex/arm64.json | 23 +++++++++++++++++++++++ dvc.lock | 8 ++++---- 3 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 .calkit/env-locks/tex/amd64.json create mode 100644 .calkit/env-locks/tex/arm64.json diff --git a/.calkit/env-locks/tex/amd64.json b/.calkit/env-locks/tex/amd64.json new file mode 100644 index 0000000..5b5be37 --- /dev/null +++ b/.calkit/env-locks/tex/amd64.json @@ -0,0 +1,23 @@ +{ + "RepoDigests": [ + "sha256:fc4a4a892bc9b081b878b06c75f8c580e8d0faf38298e00c94bdb2acd2936820" + ], + "Architecture": "amd64", + "Os": "linux", + "RootFS": { + "Type": "layers", + "Layers": [ + "sha256:65e5d715ea720349e6475f91651a0956279fc295a45fd73aa04f1cec046281a1", + "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef", + "sha256:6d062499e80adae006efb7f62f5411765ce8ddd529d89a120ed291fb573ad84e", + "sha256:a120b381383b67247712f403c5373be4d030eeb011f0ebfe792a34badb2422b3", + "sha256:d811d001ca6fc06e715d74c0a53c6d8093a01eee62caf9bf58fbc86242623fb3", + "sha256:3922bfbd9cca954f88789cccfe51ee8f295ac9fbd5f3c4dc739ac328111010ca", + "sha256:e4410bf41c474a72e7a64dfffb72d2c70ff7396f1ad6b602d3c21bdbeb61a844", + "sha256:44290c585df3d4005df98dc3abcc7a2f4d9f1fb8d6ad473bbede4a536f2fd63c", + "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef" + ] + }, + "DockerfileMD5": null, + "DepsMD5s": {} +} \ No newline at end of file diff --git a/.calkit/env-locks/tex/arm64.json b/.calkit/env-locks/tex/arm64.json new file mode 100644 index 0000000..c3b3379 --- /dev/null +++ b/.calkit/env-locks/tex/arm64.json @@ -0,0 +1,23 @@ +{ + "RepoDigests": [ + "sha256:fc4a4a892bc9b081b878b06c75f8c580e8d0faf38298e00c94bdb2acd2936820" + ], + "Architecture": "arm64", + "Os": "linux", + "RootFS": { + "Type": "layers", + "Layers": [ + "sha256:8edaba05454265cd17270d38ec146446c640d1d25637413c3da64a3eff296c36", + "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef", + "sha256:10863c806987d3fa3acfafcf20fbb8f2a88d95e792d0cc5cfed0ca2bd87a7ca7", + "sha256:962ba90483605e8aee6d9fefba4dbf39e6b3182cc8a07e9373fa14595b9f7598", + "sha256:e451d3bf1d1c35596950d50a33da159d3c9062a14d377b19f842be7b7f716443", + "sha256:059fced89a6b7b9d58f4227128eb3f831257af5b5fb67da31fb394795dba75e5", + "sha256:b4fd48c32067ab55a7db8fe466be321db605698fffa86c474052d210f93279ad", + "sha256:d731c9502f215dd9ad4f22d514137a6dbee613528e9aec62699fa3c3f5fef39e", + "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef" + ] + }, + "DockerfileMD5": null, + "DepsMD5s": {} +} \ No newline at end of file diff --git a/dvc.lock b/dvc.lock index dc284c4..b269eeb 100644 --- a/dvc.lock +++ b/dvc.lock @@ -47,8 +47,8 @@ stages: deps: - path: .calkit/env-locks/tex hash: md5 - md5: 33dd5f613310fdf25337f6839ffc4109.dir - size: 1962 + md5: ce6f4ee12b26e1a6788946561bb7ef14.dir + size: 2136 nfiles: 2 - path: paper/figures hash: md5 @@ -70,8 +70,8 @@ stages: outs: - path: paper/main.pdf hash: md5 - md5: cfb98d7bfb11a4acc83541dffad9b332 - size: 128820 + md5: 59b638b16d56e78a91d48e32a73f2b3e + size: 128835 _check_env_py: cmd: calkit check conda-env --file environment.yml --output .calkit/env-locks/py.yml From e011cb9c4e8d52936a9d85484a6001af4487b3fe Mon Sep 17 00:00:00 2001 From: Pete Bachant Date: Mon, 21 Sep 2026 06:42:53 -0700 Subject: [PATCH 5/5] Rebuild paper --- dvc.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dvc.lock b/dvc.lock index b269eeb..4284fab 100644 --- a/dvc.lock +++ b/dvc.lock @@ -70,7 +70,7 @@ stages: outs: - path: paper/main.pdf hash: md5 - md5: 59b638b16d56e78a91d48e32a73f2b3e + md5: c5663f5c1a529163ac338c817059f020 size: 128835 _check_env_py: cmd: calkit check conda-env --file environment.yml --output