DFSG NEW Queue

DFSG, Licensing & New Packages Team

rachis 2026.10.0-1

Package Information

Descriptionframework for microbiome analysis (formerly QIIME 2)

Rachis is a powerful, extensible, and decentralized microbiome analysis framework with a focus on data and analysis transparency. It was formerly known as the QIIME 2 Framework. Rachis enables researchers to start an analysis with raw DNA sequence data and finish with publication-quality figures and statistical results. Key features: * Integrated and automatic tracking of data provenance * Semantic type system * Plugin system for extending microbiome analysis functionality * Support for multiple types of user interfaces (e.g. API, command line, graphical)

The framework provides the API and plugin architecture. Analysis functionality is made available through plugins, which are packaged separately.

MaintainerDebian Med Packaging Team <debian-med-packaging@lists.alioth.debian.org>
Changed ByAndreas Tille <tille@debian.org>
Sponsortille@debian.org
Distributionexperimental
Architectureall
VCSgit: https://salsa.debian.org/med-team/qiime.git (browse)
Closes#1076314, #1084668
Trackerhttps://tracker.debian.org/pkg/rachis
Uploaded4 days ago

New Package Report

.changes◂
Architecturesource all
Distributionexperimental
DateMon, 02 Nov 2026 18:40:45 +0100
Sourcerachis
Version2026.10.0-1
Changed-ByAndreas Tille <tille@debian.org>
Changelog◂
rachis (2026.10.0-1) experimental; urgency=medium
 .
   * New upstream version which is now named rachis
     Closes: #1076314, #1084668
   * Rename remaining Debian packaging from qiime to rachis
   * Remove obsolete QIIME 1 helper scripts
   * Drop platformdirs patch, which was applied upstream
   * Use a static version instead of unpackaged versioningit
   * Fix test data lookup under hidden build directories
   * Skip tests requiring network access or unavailable parsl/dill support
   * Clean parsl test artifacts before installation
   * Drop python3.11 from explicit Test-Depends
   * Do not fail mkdir if directory just exists
   * d/watch:
      - version=5
      - Point to renamed repository
   * debputy lint --auto-fix (routine-update)
   * Build-Depends: pybuild-plugin-pyproject
   * d/copyright: Remove old FSF address
   * Standards-Version: 4.7.4
   * Set upstream metadata fields: Repository, Repository-Browse.
   * cme fix dpkg-control
   * Breaks, Provides, Replaces: qiime
   * Skip the cache multi-user test since useradd/userdel are not on PATH
   * Skip the no-missing integer round-trip test on 32-bit architectures
   * Build-Depends: dh-sequence-single-binary
   * d/copyright:
      - Update copyright years
      - Debian packaging is now BSD-3-clause as the upstream code
   * Drop (Build-)Depends: python3-decorator, python3-pyparsing,
     python3-notebook, python3-tornado (spotted by DFSG LLM review)
.dsc◂
Sectionscience
Priorityoptional
Componentmain
Package-Listrachis deb science optional arch=all
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: rachis
Source: https://github.com/rachis-org/rachis/releases

Files: *
Copyright: 2016-2026 QIIME 2 and Rachis development team
License: BSD-3-clause

Files: debian/*
Copyright: 2010 Sri Girish Srinivasa Murthy <srigirish@evolbio.mpg.de>
           2011-2022 Steffen Moeller <moeller@debian.org>
           2011-2012 Tim Booth <tbooth@ceh.ac.uk>,
           2011-2016 Andreas Tille <tille@debian.org>
License: BSD-3-clause

License: BSD-3-clause
  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions are met:
  .
  1.  Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.
  .
  2.  Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  .
  3.  Neither the name of the copyright holder nor the names of its
      contributors may be used to endorse or promote products derived from this
      software without specific prior written permission.
  .
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

DFSG Assistant LLM REVIEW 0 blocker, 1 important, 0 minor

This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.

Reviewed 4 days ago.

Report◂

DFSG NEW review for rachis version 2026.10.0-1

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: Yes
  • Packaging is of good quality: No
  • Issues: 0 blocker, 1 important, 0 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: 4 found

Licensing

debian/copyright is DEP-5 and matches the tree. Every Python file (153) carries the same header, 'Copyright (c) 2016-2026, QIIME 2 development team' plus 'Distributed under the terms of the Modified BSD License', and the upstream LICENSE is the 3-clause BSD text; the Files: * stanza names 'QIIME 2 and Rachis development team' with 2016-2026, which covers both spellings, and the full licence text is reproduced because BSD-3-clause is not in /usr/share/common-licenses. The only other licence-bearing text found is a pointer to public-domain code in rachis/core/testing/util.py and a notice about the copyright of user data in provenance_lib/assets/copyright_note.txt; neither adds a licence. The four archives the scan listed are test fixtures, two of them zipped copies of .bib files shipped beside them, and nothing in the tree carries a non-free term.

Packaging

The packaging is modern and careful (debhelper compat 14, pybuild + pyproject plugin, single-binary addon, DEP-3 patches with Forwarded, autopkgtest, salsa-ci, current Standards-Version) and its dependencies are consistent with the code. The one thing a sponsor would stop on is the qiime to rachis transition: rachis declares an unversioned 'Provides: qiime' while breaking every qiime version that exists, so it can neither replace qiime for the plugin packages it Recommends (which depend on a versioned qiime) nor be installed beside them, nor beside the old qiime module that its own backwards-compatible entry-point lookup needs.

Issues

important packaging 1. Provides: qiime is unversioned and cannot satisfy the plugins' Depends: qiime (>= 2024.5), while Breaks: qiime (<= 2025.10.0) forbids keeping the real qiime package ◂
  • Files: debian/control:63-65, debian/control:53-62
  • Basis: checked, in the package or with a reference tool
  • Evidence: debian/control: Breaks: qiime (<= 2025.10.0), Replaces: qiime, Provides: qiime. apt-cache: q2cli 2024.5.0-2 Depends: ... qiime (>= 2024.5); q2-types 2024.5.0-1 and q2-feature-table 2024.5.0+dfsg-1 have the same versioned dependency; the archive's qiime is only 2024.5.0-1. Policy 7.5: "If the Provides field does not specify a version number, it will not satisfy versioned dependencies".
  • Problem: rachis Recommends nine plugin packages (q2cli, q2-types, q2-feature-table, q2templates, ...), and every one of them in the archive depends on a versioned qiime (>= 2024.5). The Breaks makes the only qiime that exists (2024.5.0-1) uninstallable next to rachis, and the unversioned Provides does not satisfy the versioned dependency, so installing rachis forces apt to remove the whole plugin set; the transition never achieves what Provides: qiime is there for. It also contradicts the code: rachis/sdk/plugin_manager.py:58-63 keeps reading legacy qiime2.plugins entry points for backwards compatibility, which needs the old qiime module installed, and the Breaks forbids exactly that.
  • Fix: Give the old name a real, versioned package: either Provides: qiime (= ${binary:Version}) (Policy 7.5 allows a versioned Provides with the "=" relation; 2026.10.0-1 is newer than 2024.5), or, cleaner, add a qiime transitional binary package in this source that Depends on rachis. Until one of those is in place, drop the qiime-versioned plugins from Recommends, which cannot be installed together with rachis.
Verified ◂
  • debian/ was read in full: control, rules, copyright, changelog (head and tail), source/format, source/options, the four patches and series, rachis.docs, rachis.README.Debian, README.test, lintian-overrides, tests/control, tests/run-unit-test, upstream/metadata, upstream/edam, salsa-ci.yml, TODO.
  • Licensing inventory: all 153 .py files under src/ carry the identical 3-clause BSD header naming 'QIIME 2 development team' (one, plugin/model/tests/test_directory_format.py, says 2022-2026); the upstream LICENSE and conda-recipe/meta.yaml both say BSD-3-Clause. No other holder or licence was found anywhere in the tree.
  • The prescan's one unmatched holder, 'QIIME 2 development team', is covered by the Files: * Copyright line '2016-2026 QIIME 2 and Rachis development team', which is also the wording of LICENSE.
  • src/rachis/core/testing/util.py:93 ReallyEqualMixin says only 'Based on this public domain code' (ludios.org), so it adds no licence obligation.
  • src/rachis/core/archive/provenance_lib/assets/copyright_note.txt is the notice written into generated archives about the copyright of the user's own data; it is not a licence of the package.
  • Archive src/rachis/core/archive/provenance_lib/tests/data/cite_one.zip contains cite_one.bib; cite_many.zip and cite_none.zip are the same fixture for the .bib files of those names shipped beside them in the same directory (cite_none.bib is empty). All are inputs of test_archive_parser.py:323-325, not build products.
  • src/rachis/core/archive/provenance_lib/tests/data/rarefied_table.qza is a fixed input fixture of test_replay.py:103 (a QIIME 2 artifact, i.e. a zip of VERSION/metadata.yaml/data). The reader would not unpack it (unrecognised extension, non-UTF-8); it is judged from its use in the test and from its sibling fixtures, which are expanded copies of the same structure (concated-ints-v*//{VERSION,metadata.yaml,provenance/action/action.yaml,data/ints.txt}, plain provenance data with no licence-bearing content).
  • src/rachis/citations.bib, dupes.bib and the cite_.bib files hold bibliographic records only; the metadata//tests/data/*.tsv files are small test tables.
  • Source was searched for non-free wording (non-commercial, no-modification, field-of-use), for SPDX tags, GPL/LGPL/Apache/MPL/CC notices, and for embedded third-party code or JS: no hits outside the BSD headers listed above.
  • Dependency check against imports: every third-party module imported (yaml, pandas, numpy, networkx, bibtexparser, parsl, psutil, flufl.lock, tomlkit, tzlocal, platformdirs, lxml, dateutil, dill, setuptools) is in Depends or is added to ${python3:Depends} by dh_python3 from the installed dist-info Requires-Dist (man dh_python3, NOTES/dependencies: version information is discarded by default); numpy is the one not written out by hand and is translated. The changelog's removal of python3-decorator, python3-pyparsing, python3-notebook and python3-tornado is consistent with the tree, which no longer imports them.
  • Standards-Version 4.7.4 against Policy 4.7.4.1 (first two components equal); debhelper compat 14; dh-sequence-single-binary is provided by debhelper 14.5 itself, so the Build-Depends entry is satisfiable.
  • Patches carry DEP-3 headers with Description, Author, Forwarded and Last-Update, and each applies against the tree as unpacked (the .pc copies match).
  • debian/tests/run-unit-test sets RACHISTEST (empty counts as set, rachis/core/util.py:53) and copies the installed package to run pytest; tests/control declares python3-pytest and skippable, and the 32-bit skip uses exit 77 accordingly.
  • Not checked by building: no build or test run was possible, so the compile/test behaviour and the generated ${python3:Depends} were reasoned from the package and the reference tools only.
  • uscan found upstream releases with debian/watch; a newer upstream version is available (upstream 2026.10.1, packaged 2026.10.0), which is not a fault of the package.
Not confirmed ◂

None.

Proposed changes ◂

None.

Uploader's response to the LLM review

It is perfectly intended that the whole plugin set has to be removed. All plugins need updates and this will be done step by step in experimental.

— Andreas Tille (tille), 4 days ago

Other Reviews of this Package

VersionHashAllocatedCompletedReviewerStatusDetails
2026.10.0-1 c82f2668… 2026-11-03 06:21 2026-11-03 06:21 dfsg-uploader rejected VIEW

Back to Dashboard | View all reviews for this package