Skip to main content

mulled-biopixi

Python CI

mulled-biopixi turns a Biopixi-compatible Pixi environment into a local mulled container build. It reads pixi.toml from the current directory by default, uses the linux-64 solve in pixi.lock to pin the direct Conda dependencies, publishes direct L1 path packages into an indexed local channel, and calls Galaxy's mull_targets implementation.

Installation

Until the package is published to PyPI, install it directly from GitHub:

uv tool install git+https://github.com/jmchilton/mulled-biopixi.git

Then run it in a Biopixi-compatible project:

mulled-biopixi --dry-run
mulled-biopixi --command build-and-test --test 'samtools --version'

The dry run is useful on any host. A real build needs Docker. With current stable galaxy-tool-util, the CLI downloads a checksum-pinned Involucro 1.2.0 into the project's ignored .mulled-biopixi/ cache and injects --platform linux/amd64, allowing Docker Desktop to emulate the Biopixi profile platform on Apple Silicon. Galaxy's development implementation exposes this platform directly, and the compatibility path switches off automatically when that API is present. The shim also pre-pulls the amd64 Conda and destination base images with the modern Docker CLI; this avoids Involucro's older embedded Docker client attempting a pull against newer daemons. The pre-pull safeguard remains active when Galaxy supplies native platform support because its current Involucro 1.2.0 binary has the same Docker 29 limitation.

Translation contract

  • The manifest selects the effective direct dependencies: [dependencies] plus Linux target overrides from [target.linux-64.dependencies].
  • The lock supplies exact registry-package versions and build strings. Manifest ranges alone are not reproducible container inputs.
  • Explicit dependency channel qualifiers are preserved in the mulled package name.
  • A direct path dependency gets its concrete version from its package pixi.toml, is built with pixi publish --target-channel ... --target-platform linux-64, and is then resolved by mulled from that local file:// channel.
  • Only roots are passed to mulled. Conda resolves their transitive closure inside the image, which matches the Biopixi L4 target-set rule.

This is intentionally not another complete Biopixi validator. It rejects unsupported shapes when they would make the build ambiguous, while relying on the caller's L1-or-higher assumption for the full profile contract.

Current limits

  • Recursive path-package graphs are detected but not published. Supporting them needs a proper topological package publication workflow and a decision about rewriting source dependencies.
  • The local channel lives at .mulled-biopixi/channel by default and is not pushed anywhere.
  • osx-arm64 can be present in the workspace, but container construction always uses the profile's linux-64 environment and produces linux/amd64. Foreign-architecture builds depend on the Docker daemon's binfmt/QEMU support and will be slower than native builds.
  • The integration uses Galaxy's importable mull_targets function. That API is practical and tested within Galaxy, but is not documented as a separately versioned public library contract.
  • Galaxy's base-image selection performs one full Conda metadata search per root. Under amd64 emulation this can dominate build time even when the eventual package solve and image wrap are quick.

Development

Create the locked development environment and run the complete local CI suite:

uv sync
make ci

The individual commands are make format, make lint, make typing, make test, and make dist. Install the repository hook with make pre-commit. Maintainers can follow the release checklist to publish a version through PyPI Trusted Publishing.

This project is licensed under the MIT License.

Metadata

Release files for mulled-biopixi 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mulled-biopixi 0.1.0
File Size Uploaded
mulled_biopixi-0.1.0.tar.gz 10.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mulled-biopixi 0.1.0
File Interpreter ABI Platform
mulled_biopixi-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.3 kB

Release files / mulled_biopixi-0.1.0.tar.gz

Download URL mulled_biopixi-0.1.0.tar.gz
Size 10.8 kB
Tags Source
SHA-256 checksum
How to use checksums
0cb549479ac848786b73632fce99c6b6e5db0f63d7f83dd224fab174dd4f8ff5
BLAKE2b-256 checksum
How to use checksums
11a8fefd1abfffcaa8eb5e07ce6d177e916728ab49666b80f18c62ad8452e4be
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 Jul 31, 2026.

Transparency log

Release files / mulled_biopixi-0.1.0-py3-none-any.whl

Download URL mulled_biopixi-0.1.0-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
78e105dccea19edc7375350f45d3a5526ce2efd558342e32ac32ccac98ca3883
BLAKE2b-256 checksum
How to use checksums
8806fc809d7efbb7a35838039e2440211f1eccc5345381a1241fcdd33de4f45d
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 Jul 31, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page