dde-cargo
Stimela cabs for DDFacet/Killms on both arm64 and x86-64 systems.
The cab YAMLs in dde_cargo/ are verbatim copies of meerkat_imaging/cabs/
(ddfacet.yml, its two _included parameter schemas, and the two
memory-plan cabs). A change to a cab starts in that repository; copy it here,
bump the version, and tag. Release history is in CHANGELOG.md.
Cabs and images
| Cab | Image |
|---|---|
ddfacet |
ghcr.io/tmolteno/ddfacet:v0.16.6 |
killms |
ghcr.io/tmolteno/killms:v3.15.8 |
ddfacet-memory-plan |
ghcr.io/tmolteno/ddfacet:v0.16.6 |
killms-memory-plan |
ghcr.io/tmolteno/killms:v3.15.8 |
ddf_makemodel, ddf_makemask, dilatemask, clustercat, ddfacet-get-npix, bdsf.catalog, modelcat, autofacet, snapnodes |
ghcr.io/tmolteno/ddfacet:v0.16.6 |
All images are published for amd64 and arm64.
Install
pip install dde-cargo
Requires Python >= 3.10,< 3.15 (the same window as skarabina-cargo) and
installs stimela>=2.1.4 — every cab runs in its container, so the host needs
nothing else.
Usage
In a stimela 2 recipe, load the cabs from the installed package with
configuratt's package-include syntax. The cultcargo include must come first:
ddfacet.yml carries an image-only override for cult-cargo's bdsf.catalog
cab (the upstream image is amd64-only; these cabs redirect it to the
multi-arch ddfacet image), and stimela builds every cab at load time, so
bdsf.yml must already be loaded when ddfacet.yml merges in:
_include:
- (cultcargo):
- bdsf.yml
- (dde_cargo):
- ddfacet.yml
- ddfacet-memory-plan.yml
- killms-memory-plan.yml
then reference them from steps:
steps:
ddfacet-target:
cab: ddfacet
params:
Data.MS: mydata.ms
Output.Name: target0
killms-target:
cab: killms
params:
MSName: mydata.ms
InCol: CORRECTED_DATA
Only ddfacet.yml is essential; the memory-plan files are optional extras
(wire them ahead of a step as shown in their header comments — e.g.
ddfacet-memory-plan suggests Parallel.NCPU, Data.ChunkHours and
Selection.ChanStep for the imaging step that follows).
Notes carried over from the upstream cab comments:
- The
autofacetcab importsauto_facet_tool/auto_facet.pyfrom the working directory, so it needs a checkout ofmeerkat_imagingbeside the recipe (stimela binds the working directory into the container). - The memory-plan cabs pin their image "to whatever the recipe uses": a recipe
with its own image var should override
image:on the cab instead of editing the package. - The DDFacet cab wraps every parset namespace (
Data,Image,Facets,Deconv, ...) as dashed CLI options (--Data-MS,--Image-NPix, ...); the killMS cab passes its flat parameter set throughkMS.py.
Publishing
Trusted publishing (OIDC) — there is no API token. The GitHub Actions
workflow .github/workflows/publish_pypi.yaml fires on a vX.Y.Z tag, builds
with uv, and publishes from the pypi environment.
- Register the pending publisher on PyPI (once):
pypi.org/manage/account/publishing
with owner
tmolteno, repositorydde-cargo, workflowpublish_pypi.yaml, environmentpypi. The workflow filename must match exactly. - Bump
versioninpyproject.toml. git commit -m "..." && git tag -a vX.Y.Z -m "..." && git push origin main --follow-tags
The workflow run appears under the repo's Actions with the pypi environment;
the publish is live at pypi.org/project/dde-cargo.
Development
uv sync --all-groups
uv run pytest # schema contracts for the packaged cabs
uv build # wheel + sdist into dist/
An end-to-end smoke check (loads the cabs through stimela's real spec loader, as a recipe would):
uv run stimela run /tmp/dde-cargo-smoke.yml dde-cargo-smoke -d
with /tmp/dde-cargo-smoke.yml any recipe that _includes the package as
shown above and runs one or two of the cabs.
Metadata
Release files for dde-cargo 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dde_cargo-0.1.1.tar.gz | 78.9 kB | With provenance | Details for dde_cargo-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dde_cargo-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for dde_cargo-0.1.1-py3-none-any.whl |
Total release size: 120.8 kB
Release files / dde_cargo-0.1.1.tar.gz
| Download URL | dde_cargo-0.1.1.tar.gz |
|---|---|
| Size | 78.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
96c30d99b3a241ceea80cba743cf6e5a72c98ca3d65d90a4123058fe9ae38a68
|
|
BLAKE2b-256 checksum How to use checksums |
a272c6cf4d9e0d7cac76d7ce7d0cc19be0be8b93990173efcb48117193fca53f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logRelease files / dde_cargo-0.1.1-py3-none-any.whl
| Download URL | dde_cargo-0.1.1-py3-none-any.whl |
|---|---|
| Size | 42.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
902eea074237b1df496d89a0252f8116e59fc3e8154ef4b152d06c8420cff18f
|
|
BLAKE2b-256 checksum How to use checksums |
0d9009e7dc1e36903c81dda92a5fa32b263760c3bb31409db35ed443c110629e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logSecurity for dde-cargo 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for dde_cargo-0.1.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.