rachis 2026.10.0-1
Package Information
| Description | framework 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. |
|---|---|
| Maintainer | Debian Med Packaging Team <debian-med-packaging@lists.alioth.debian.org> |
| Changed By | Andreas Tille <tille@debian.org> |
| Sponsor | tille@debian.org |
| Distribution | experimental |
| Architecture | all |
| VCS | git: https://salsa.debian.org/med-team/qiime.git (browse) |
| Closes | #1076314, #1084668 |
| Tracker | https://tracker.debian.org/pkg/rachis |
| Uploaded | 4 days ago |
New Package Report
.changes
| Architecture | source all |
|---|---|
| Distribution | experimental |
| Date | Mon, 02 Nov 2026 18:40:45 +0100 |
| Source | rachis |
| Version | 2026.10.0-1 |
| Changed-By | Andreas 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
| Section | science |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | rachis 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/copyrightis 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-2Depends: ... 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 legacyqiime2.pluginsentry 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 aqiimetransitional 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 (upstream2026.10.1, packaged2026.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
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 2026.10.0-1 | c82f2668… | 2026-11-03 06:21 | 2026-11-03 06:21 | dfsg-uploader | rejected | VIEW |