Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions .calkit/env-locks/py.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
channels:
- conda-forge
dependencies:
- brotli=1.1.0=hd74edd7_2
- brotli-bin=1.1.0=hd74edd7_2
- bzip2=1.0.8=h99b78c6_7
- ca-certificates=2025.4.26=hbd8a1cb_0
- contourpy=1.3.2=py312hb23fbb9_0
- cycler=0.12.1=pyhd8ed1ab_1
- fonttools=4.58.0=py312h998013c_0
- freetype=2.13.3=hce30654_1
- kiwisolver=1.4.8=py312h2c4a281_0
- lcms2=2.17=h7eeda09_0
- lerc=4.0.0=hd64df32_1
- libblas=3.9.0=31_h10e41b3_openblas
- libbrotlicommon=1.1.0=hd74edd7_2
- libbrotlidec=1.1.0=hd74edd7_2
- libbrotlienc=1.1.0=hd74edd7_2
- libcblas=3.9.0=31_hb3479ef_openblas
- libcxx=20.1.5=ha82da77_0
- libdeflate=1.24=h5773f1b_0
- libexpat=2.7.0=h286801f_0
- libffi=3.4.6=h1da3d7d_1
- libfreetype=2.13.3=hce30654_1
- libfreetype6=2.13.3=h1d14073_1
- libgfortran=14.2.0=heb5dd2a_105
- libgfortran5=14.2.0=h2c44a93_105
- libjpeg-turbo=3.1.0=h5505292_0
- liblapack=3.9.0=31_hc9a63f6_openblas
- liblzma=5.8.1=h39f12f2_1
- libopenblas=0.3.29=openmp_hf332438_0
- libpng=1.6.47=h3783ad8_0
- libsqlite=3.49.2=h3f77e49_0
- libtiff=4.7.0=h2f21f7c_5
- libwebp-base=1.5.0=h2471fea_0
- libxcb=1.17.0=hdb1d25a_0
- libzlib=1.3.1=h8359307_2
- llvm-openmp=20.1.5=hdb05f8b_0
- matplotlib=3.10.3=py312h1f38498_0
- matplotlib-base=3.10.3=py312hdbc7e53_0
- munkres=1.1.4=pyh9f0ad1d_0
- ncurses=6.5=h5e97a16_3
- numpy=2.2.6=py312h7c1f314_0
- openjpeg=2.5.3=h8a3d83b_0
- openssl=3.5.0=h81ee809_1
- packaging=25.0=pyh29332c3_1
- pandas=2.2.3=py312hcb1e3ce_3
- pillow=11.2.1=py312h50aef2c_0
- pip=25.1.1=pyh8b19718_0
- pthread-stubs=0.4=hd74edd7_1002
- pyparsing=3.2.3=pyhd8ed1ab_1
- python=3.12.10=hc22306f_0_cpython
- python-dateutil=2.9.0.post0=pyhff2d567_1
- python-tzdata=2025.2=pyhd8ed1ab_0
- python_abi=3.12=7_cp312
- pytz=2025.2=pyhd8ed1ab_0
- qhull=2020.2=h420ef59_5
- readline=8.2=h1d1bf99_2
- setuptools=80.8.0=pyhff2d567_0
- six=1.17.0=pyhd8ed1ab_0
- tk=8.6.13=h5083fa2_1
- tornado=6.5.1=py312hea69d52_0
- tzdata=2025b=h78e105d_0
- unicodedata2=16.0.0=py312hea69d52_0
- wheel=0.45.1=pyhd8ed1ab_1
- xorg-libxau=1.0.12=h5505292_0
- xorg-libxdmcp=1.1.5=hd74edd7_0
- zstd=1.5.7=h6491c7d_2
name: calkit-example-basic
71 changes: 71 additions & 0 deletions .calkit/env-locks/tex.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
[
{
"RepoTags": [
"texlive/texlive:latest-full"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-05-11T13:45:24.681068416Z",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"LC_ALL=C.UTF-8",
"TEXLIVE_INSTALL_NO_CONTEXT_CACHE=1",
"NOPERLDOC=1",
"DEBIAN_FRONTEND=noninteractive"
],
"Cmd": [
"bash"
],
"Image": "",
"Volumes": null,
"WorkingDir": "/workdir",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"org.opencontainers.image.authors": "Island of TeX",
"org.opencontainers.image.source": "https://gitlab.com/islandoftex/images/texlive/-/blob/master/Dockerfile",
"org.opencontainers.image.url": "https://gitlab.com/islandoftex/images/texlive"
}
},
"Architecture": "arm64",
"Os": "linux",
"Size": 2409562089,
"GraphDriver": {
"Data": null,
"Name": "overlayfs"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:f20086072b1d2fffdc8a8a3afc546d1ecb13a9047ac9cc6c941e9783ba2c1c40",
"sha256:cc4ebc54dd55374e26421ee3710a3cb932690ec294b3665230f54ae0ddbbacec",
"sha256:2ff8561f9f970e166f982b4a6f584a0ce9a275836a281d9e5b62fb27d6a99e8f",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:6b5bb1acd1ecb71e7df10f16fba58ee8afbc1a4295b26486766742471c7380bf",
"sha256:84cc1f955c35ccf33e8c50a7e8cab52e5c5e186124d3d2dc294de9d227ca2f9e",
"sha256:e408bd808583af5c8c473d3a99d1e503095ebae3752b54408e274eb7596f163f",
"sha256:8d7558178b2bf04a68ead86ebe9fe20fe199f9e4703cddf9389f508711365a83",
"sha256:0b653ec0cefe2beb09dee6dfd05199f92481c2cdd0d893aa5f6cfca402f301d8"
]
},
"Descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:ac2a1fbc4dad1ec27c7407c24907af5a38a5f53c4baf9c6dc5973efd34b355e6",
"size": 685
},
"DockerfileMD5": null,
"DepsMD5s": {}
}
]
45 changes: 34 additions & 11 deletions calkit.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,46 @@
owner: calkit
name: example-basic
title: Basic Calkit example
description: A basic Calkit exmple project.
description: A basic Calkit example project.
git_repo_url: https://github.com/calkit/example-basic
dependencies:
- docker
- conda
questions:
- Can we make reproducibility simple?
environments:
py:
path: environment.yml
kind: conda
description: A Python environment
tex:
kind: docker
image: texlive/texlive:latest-full
description: TeX Live via Docker.
pipeline:
stages:
collect-data:
kind: python-script
script_path: scripts/collect-data.py
environment: py
outputs:
- data/raw/data.csv
plot-voltage:
kind: python-script
script_path: scripts/plot-voltage.py
environment: py
inputs:
- from_stage_outputs: collect-data
outputs:
- figures/voltage-time-series.png
build-paper:
kind: latex
target_path: paper/paper.tex
environment: tex
inputs:
- figures
outputs:
- paper/paper.pdf
datasets:
- path: data/raw/data.csv
title: Raw data
Expand All @@ -23,13 +56,3 @@ publications:
title: The paper
description: This is the paper.
stage: build-paper
environments:
py:
path: environment.yml
kind: conda
description: A Python environment
tex:
kind: docker
image: texlive/texlive:latest-full
wdir: /work
description: TeX Live via Docker.
87 changes: 65 additions & 22 deletions dvc.lock
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
schema: '2.0'
stages:
collect-data:
cmd: calkit xenv -n py -- python scripts/collect-data.py
cmd: calkit xenv -n py --no-check -- python scripts/collect-data.py
deps:
- path: environment.yml
- path: .calkit/env-locks/py.yml
hash: md5
md5: 627d0116e60eab837fbf07edb4d370e0
size: 114
md5: 8119fb42c7e8531010248790fff169cf
size: 2200
- path: scripts/collect-data.py
hash: md5
md5: eeab1328ac4a9df2ef2452d32c1e6cce
size: 424
outs:
- path: data/raw/data.csv
hash: md5
md5: 2ba6a2254202b7055d370eb59a35dfae
size: 43644
md5: c3319d519671cab28a01aca7a7d199f9
size: 43633
plot-voltage:
cmd: calkit xenv -n py -- python scripts/plot-voltage.py
cmd: calkit xenv -n py --no-check -- python scripts/plot-voltage.py
deps:
- path: data/raw/data.csv
- path: .calkit/env-locks/py.yml
hash: md5
md5: 2ba6a2254202b7055d370eb59a35dfae
size: 43644
- path: environment.yml
md5: 8119fb42c7e8531010248790fff169cf
size: 2200
- path: data/raw/data.csv
hash: md5
md5: 627d0116e60eab837fbf07edb4d370e0
size: 114
md5: c3319d519671cab28a01aca7a7d199f9
size: 43633
- path: scripts/plot-voltage.py
hash: md5
md5: 087a567a0c0f6199a908399013d564a1
size: 297
outs:
- path: figures/voltage-time-series.png
hash: md5
md5: d4cd33821c032be468a77d65873937bc
size: 43613
md5: b0d7f4d7cddb00d3d8c1758720e4d79b
size: 45261
copy-figures-to-paper-dir:
cmd: cp -r figures paper/figures
deps:
Expand All @@ -51,19 +51,62 @@ stages:
size: 45148
nfiles: 2
build-paper:
cmd: "calkit xenv -n tex -- latexmk -cd -interaction=nonstopmode -pdf paper/paper.tex\n"
cmd: calkit xenv -n tex --no-check -- latexmk -cd -interaction=nonstopmode -pdf
paper/paper.tex
deps:
- path: .calkit/env-locks/tex.json
hash: md5
md5: b04cd12c7a8313853c8739a55f6320fe
size: 2791
- path: figures
hash: md5
md5: 1a9009ee25ecfe1fbfe1916de2eb7deb.dir
size: 43638
md5: 1d42180c43a4f7c68c0bb3c98f7e3896.dir
size: 45286
nfiles: 2
- path: paper/paper.tex
hash: md5
md5: 6455fc859c8b1838f22d5ac74223b323
size: 604
md5: 1480301e18c57bf533d604e1a3593101
size: 653
outs:
- path: paper/paper.pdf
hash: md5
md5: 6f1fec0754597ecdb78cf0e9852884ad
size: 92860
md5: 3020732b698cfd131ef6c1bc0d207521
size: 95329
_check_env_py:
cmd: calkit check conda-env --file environment.yml --output .calkit/env-locks/py.yml
deps:
- path: environment.yml
hash: md5
md5: 4282ecbec6810eb293bdf62d7f956ffd
size: 119
outs:
- path: .calkit/env-locks/py.yml
hash: md5
md5: 8119fb42c7e8531010248790fff169cf
size: 2200
_check_env_tex:
cmd: calkit check docker-env texlive/texlive:latest-full -o .calkit/env-locks/tex.json
outs:
- path: .calkit/env-locks/tex.json
hash: md5
md5: b04cd12c7a8313853c8739a55f6320fe
size: 2791
_check-env-py:
cmd: calkit check conda-env --file environment.yml --output .calkit/env-locks/py.yml
deps:
- path: environment.yml
hash: md5
md5: 4282ecbec6810eb293bdf62d7f956ffd
size: 119
outs:
- path: .calkit/env-locks/py.yml
hash: md5
md5: 8119fb42c7e8531010248790fff169cf
size: 2200
_check-env-tex:
cmd: calkit check docker-env texlive/texlive:latest-full -o .calkit/env-locks/tex.json
outs:
- path: .calkit/env-locks/tex.json
hash: md5
md5: b04cd12c7a8313853c8739a55f6320fe
size: 2791
33 changes: 25 additions & 8 deletions dvc.yaml
Original file line number Diff line number Diff line change
@@ -1,25 +1,42 @@
stages:
_check-env-py:
cmd: calkit check conda-env --file environment.yml --output .calkit/env-locks/py.yml
deps:
- environment.yml
outs:
- .calkit/env-locks/py.yml:
cache: false
persist: true
always_changed: true
_check-env-tex:
cmd: calkit check docker-env texlive/texlive:latest-full -o .calkit/env-locks/tex.json
deps: []
outs:
- .calkit/env-locks/tex.json:
cache: false
persist: true
always_changed: true
collect-data:
cmd: calkit xenv -n py -- python scripts/collect-data.py
cmd: calkit xenv -n py --no-check -- python scripts/collect-data.py
deps:
- scripts/collect-data.py
- environment.yml
- .calkit/env-locks/py.yml
outs:
- data/raw/data.csv
plot-voltage:
cmd: calkit xenv -n py -- python scripts/plot-voltage.py
cmd: calkit xenv -n py --no-check -- python scripts/plot-voltage.py
deps:
- scripts/plot-voltage.py
- .calkit/env-locks/py.yml
- data/raw/data.csv
- environment.yml
outs:
- figures/voltage-time-series.png
build-paper:
cmd: >
calkit xenv -n tex --
latexmk -cd -interaction=nonstopmode -pdf paper/paper.tex
cmd: calkit xenv -n tex --no-check -- latexmk -cd -interaction=nonstopmode
-pdf paper/paper.tex
deps:
- figures
- paper/paper.tex
- figures
- .calkit/env-locks/tex.json
outs:
- paper/paper.pdf
Loading
Loading