Skip to content

v2026.9.4

Latest

Choose a tag to compare

@dhoconno dhoconno released this 01 Sep 15:44

Lungfish 2026.9.4

Channel: Stable

Previous versioned release: v2026.9.3

Stable baseline: v2026.8.13

Dependency set: 2026.2

Lungfish 2026.9.4 promotes the work validated in published previews
v2026.8.14 and v2026.9.1 to the stable channel. It improves MiSeq genotype
publication, supports legacy IPD-MHC identifiers, and establishes independent
Preview and Stable application identities. It also simplifies the verified
release path so any prepared release Mac with the required credentials can run
the blocking gates, package, and publish locally.

v2026.8.15 through v2026.8.20 were prepared and tagged during release-process
validation but were not published as GitHub releases or Sparkle updates. Their
release-process changes were validated in v2026.9.1 before this stable release.
v2026.9.2 and v2026.9.3 were also tagged but not published while the release
workflow was made portable and fail-closed across release Macs.

Included preview releases

  • v2026.8.14
  • v2026.9.1

Highlights

Legacy IPD-MHC references retain their original identifiers

FASTA-only reference bundles can resolve structured legacy IPD-MHC sequence
identifiers, including allele aliases and group labels used by older macaque
MHC datasets. Lungfish preserves those display identifiers while deriving the
correct locus for exact joins between genotype calls and reference rows.
Malformed identifiers remain rejected.

MiSeq genotype publication accepts platform-native CSV line endings

Scientific-artifact and reviewable-row publication normalize CRLF and CR line
endings before parsing genotype and sample-summary CSV files. Genotype CSV
headers are validated before indexing, so empty or duplicate names produce an
explicit malformed-CSV error.

Preview and Stable installations are independent

Preview uses com.lungfish.browser.preview, Lungfish Preview.app, the visible
Preview name, and the Beta feed. Stable retains com.lungfish.browser,
Lungfish.app, and the Stable feed. Both applications can be installed in
/Applications without sharing Launch Services identity, identifier-keyed
settings, or updater state.

Older Preview builds used the Stable identifier. Moving from one of those
builds to v2026.9.1 or later requires a one-time manual Preview installation.

Release Macs run the authoritative gates locally

Release-machine validation, credentialless packaging, and credentialed
publication use one coordinator. Before creating a candidate, package
verifies the exact isolated dependency receipt and parity runtime, runs focused
tests, and runs the channel's complete local gate set. Stable includes the full
suite and toolset conformance. Unsigned candidates remain receipt-bound to the
exact source, channel, toolchain, cache fingerprint, metadata, scratch path,
and app payload.

publish signs and notarizes that exact candidate without rebuilding it or
waiting on GitHub Actions. Actions remains a read-only advisory diagnostic;
tag pushes do not start release gates and CI does not authorize publication.
Both the dependency verifier and the release front door select the same
canonical full Xcode, independent of the Mac's global Command Line Tools
selection.

Known issues

  • The 20260626 Kraken2 indexes display taxid 3418604 as
    Betacoronavirus pandemicum; identifiers are unchanged.
  • The Apple Silicon bioconda Bracken compatibility package lacks a usable
    driver. Fresh installs receive the managed Bracken 3.1 source overlay, while
    existing working environments are preserved.
  • bioconda::bwa-mem2=2.3=hda5e58c_0 self-reports 2.2.1 because of an upstream
    packaging defect; Lungfish verifies the package identity from conda metadata.

Dependency versions

Dependency set 2026.2 (2026-08-18) is unchanged from the stable baseline.

Core managed tools: Nextflow 26.04.6, Snakemake 9.25.2, BBTools 40.02,
fastp 1.3.6, deacon 0.16.0, samtools 1.24, bcftools 1.24, htslib 1.24,
seqkit 2.13.0, cutadapt 5.2, Trim Galore 2.3.0, vsearch 2.31.0, pigz 2.8,
SRA Tools 3.4.1, UCSC bedGraphToBigWig 482, pysam 0.24.0, and openpyxl 3.1.5.

Plugin tools: minimap2 2.31, bwa-mem2 2.3, Bowtie 2 2.5.5, Savont 0.6.3,
BLAST 2.16.0, LoFreq 2.1.5, iVar 1.4.4, Medaka 2.2.2, Clair3 2.0.2,
GATK 4.6.2.0, WhatsHap 2.3, SPAdes 4.3.0, MEGAHIT 1.2.9, SKESA 2.5.1,
Flye 2.9.6, hifiasm 0.25.0, MAFFT 7.526, IQ-TREE 3.1.3, Kraken2 2.17.1,
Bracken 3.1 source overlay, EsViritu 1.3.3, RiboDetector 0.3.3, and Freyja 2.0.3.

Pipelines and data: TaxTriage v3.3.8 at revision
e10bfebda32a62711f38a4e23ab03b61725a9675, nf-core/viralrecon 3.0.0,
Kraken2 indexes 20260626 (plus EukPathDB 20230407), EsViritu viral database
v3.2.4, NCBI taxonomy 2025-03, human scrubber 20260706v2, deacon panhuman
panhuman-1, and ribokmers bbmap-ribokmers-k31w15. The bootstrap is
micromamba 2.9.0-0.

Swift packages: Sparkle 2.9.6, swift-argument-parser 1.8.2,
swift-protobuf 1.35.0, swift-nio 2.101.3, swift-nio-ssl 2.37.2,
swift-nio-http2 1.45.0, grpc-swift 1.27.5, async-http-client 1.36.0,
swift-collections 1.6.0, swift-crypto 3.15.1, swift-certificates 1.19.4,
swift-system 1.8.1, swift-service-lifecycle 2.11.0, containerization 0.24.5,
and zstd 1.5.7. ViewInspector is pinned to revision
35650956fc0a809ae0492c3af727d9042692d268. Remaining transitive pins are
recorded exactly in Package.resolved.