A packaging hotfix. If you install LiftOn with pip in a container, upgrade.
pip install -U lifton
Fixed
pip install lifton no longer needs a C compiler or zlib headers (GH #78).
mappy was a hard dependency. It ships only as an sdist, so pip had to build it — which fails in any image without gcc and zlib, such as a stock Seqera container. mappy is only used by the optional in-process minimap2 path (--native with LIFTON_NATIVE_LIFTOFF_ALIGN=1) and never by a standard run, so it is now an extra:
pip install lifton # no compiler needed
pip install lifton[native] # opt in to the mappy pathQualified in containers with no gcc, cc, clang or zlib.h: wheel and sdist both install and run on Python 3.10, 3.11, 3.12 and 3.14. A new CI workflow runs that whole matrix on every push, so it cannot regress silently.
The installation instructions were wrong about the external aligners. The docs claimed pip "automatically resolves and installs any dependencies required by LiftOn". It does not install the minimap2 and miniprot executables — they are not Python packages — and users hit miniprot is not installed at runtime in a container that had built fine. The page now separates Python dependencies, external executables and optional source-build tools, and the runtime error says so directly:
miniprot is not installed. pip does not install the minimap2/miniprot executables.
Install them with `conda install --override-channels -c conda-forge -c bioconda \
--strict-channel-priority minimap2 miniprot`, or build them from source.
A Seqera container that just works: pip:lifton==1.0.13 + bioconda::minimap2 + bioconda::miniprot.
Unchanged
Annotation behaviour is identical to v1.0.12 — the 24-configuration byte-identity matrix passes with no golden edit. This release changes packaging and documentation only.
Reported by @rzelle-lallemand (#78).