fenicsx-compat 0.4.0-1
Package Information
| Description | Cross-version compatibility helpers for DOLFINx (Python 3) Centralizes workarounds for breaking API changes across dolfinx versions (back to release 0.10), previously duplicated across dolfinx-adjoint, io4dolfinx, and scifem. This package installs the library for Python 3. Pure Python, no compiled extensions. |
|---|---|
| Maintainer | Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org> |
| Changed By | Drew Parsons <dparsons@debian.org> |
| Sponsor | dparsons@debian.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/science-team/fenics/fenicsx-compat.git (browse) |
| Closes | #1152268 |
| Tracker | https://tracker.debian.org/pkg/fenicsx-compat |
| Uploaded | 2 hours ago |
New Package Report
.changes
| Version | 0.4.0-1 |
|---|---|
| Changed-By | Drew Parsons <dparsons@debian.org> |
| Architecture | source all |
| Distribution | unstable |
| Date | Tue, 27 Oct 2026 14:59:52 +0100 |
| Source | fenicsx-compat |
Changelog
fenicsx-compat (0.4.0-1) unstable; urgency=medium
.
* Initial release. (Closes: #1152268)
* run tests using pytest
- skip test_every_public_function_has_a_guide_entry since docs are
not built (jupyter-book is not yet packaged for Debian)
* python3-fenicsx-compat Recommends:python3-adios2-mpi,
python3-mpi4py, python3-petsc4py (technically optional depending
on what you want to use fenicsx-compat for, but would be strange
not to have them installed). Required for tests.
* debian patch force-adios2-mpi.patch sets env var
ADIOS2_ALWAYS_USE_MPI=1 in __init__.py to force use of the MPI
build of adios2 (even in serial execution), since debian also
provides adios2-serial, but dolfinx requires adios2-mpi..dsc
| Package-List | python3-fenicsx-compat deb science optional arch=all |
|---|---|
| Section | science |
| Priority | optional |
| Component | main |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://github.com/scientificcomputing/fenicsx-compat Upstream-Name: fenicsx-compat Upstream-Contact: Henrik Finsberg <henriknf@simula.no> Files: * Copyright: 2026 Simula Research Laboratory, Henrik N.T. Finsberg, Jørgen S. Dokken License: Expat Files: debian/* Copyright: 2026 Drew Parsons <dparsons@debian.org> License: Expat Comment: Debian licence follows upstream. License: Expat MIT License . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
DFSG Assistant LLM REVIEW 0 blocker, 0 important, 1 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 1 hour ago.
Report
DFSG NEW review for fenicsx-compat version 0.4.0-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: Yes
- Issues: 0 blocker, 0 important, 1 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The whole source is MIT/Expat: LICENSE carries the MIT text with Copyright (c) 2026 Simula Research Laboratory, Henrik N.T. Finsberg, Jørgen S. Dokken, pyproject.toml declares license = "MIT" and no file in the tree carries another notice. debian/copyright is DEP-5 with the canonical Format line, a Files: * stanza naming exactly that holder and License: Expat with the full MIT text, and a debian/* stanza for the packaging. Nothing non-free, nothing generated without source, nothing vendored.
Packaging
A single Architecture: all Python module built with pybuild at debhelper compat 14, dh-sequence-python3, correct Build-Depends, a 3.0 (quilt) source format with one documented patch, four autopkgtests covering serial, MPI, complex and complex-MPI legs, and a sane changelog closing the ITP. Standards-Version 4.7.4 is current (Policy 4.7.4.1). The only defects are the missing DEP-3 headers on the one patch and an open question about whether python3-dolfinx reaches the binary package's Depends (see Not confirmed).
Issues
1. [minor] [packaging] debian/patches/force-adios2-mpi.patch has no DEP-3 headers (no Description, Origin or Forwarded)
- Files:
debian/patches/force-adios2-mpi.patch:1-8 - Basis: checked, in the package or with a reference tool
- Evidence: The file begins directly with
Index: fenicsx-compat/src/fenicsx_compat/__init__.pyand the---/+++lines; there is noDescription:,Origin:/Author:,Forwarded:orLast-Update:field. debian/patches/series lists it asforce-adios2-mpi.patch. - Problem: The patch is Debian-specific and changes upstream behaviour for every importer of the module (it sets
ADIOS2_ALWAYS_USE_MPI=1at import time), yet nothing in the patch records why it exists or whether it was offered upstream; that information lives only in debian/changelog. A reviewer or a later maintainer of the source has no way to tell whether it can be dropped with a new upstream release, which is what DEP-3 headers exist for. - Fix: Add a DEP-3 header to the patch: a
Description:of the adios2-serial/adios2-mpi problem and the forced MPI build,Author:/Origin:, andForwarded: no(or the upstream issue/MR if it was sent), plusLast-Update:.
Verified
- debian/copyright is machine-readable (DEP-5) with the canonical
Format:URL,Upstream-Name,Source,Upstream-Contact, aFiles: *stanza (Copyright: 2026 Simula Research Laboratory, Henrik N.T. Finsberg, Jørgen S. Dokken,License: Expat) and a laterFiles: debian/*stanza for Drew Parsons; the stand-aloneLicense: Expatparagraph reproduces the full MIT text, so no reference to /usr/share/common-licenses is needed. - LICENSE matches that stanza exactly (
MIT License,Copyright (c) 2026 Simula Research Laboratory, Henrik N.T. Finsberg, Jørgen S. Dokken), and pyproject.toml (license = "MIT") and PKG-INFO (License-Expression: MIT,License-File: LICENSE) agree. - A grep over the whole tree for
copyright,(C),©,SPDX-License-Identifier,GNU,Apache,all rights reserved,public domainandlicen[cs]efound notices only in LICENSE, PKG-INFO, pyproject.toml, _config.yml (copyright: "2026"), and debian/copyright; no file carries a second or conflicting licence. - The pre-scan's holder check found every holder it detected named in debian/copyright; the holders it could have flagged are the three in LICENSE and
Henrik Finsberg and Jørgen Dokkenin _config.yml, all named. - .github/scripts/docs_site.py states
Adapted from dolfinx_mpc (Jørgen S. Dokken, MIT); the same MIT terms apply and the author is named, soFiles: *covers it. - No compiled, minified or generated binaries in the tree: the only non-Python code is plain, commented JavaScript (.github/docs-version-flyout.js), shell scripts under .devcontainer and .github, and YAML workflows; docs are Markdown/reStructuredText sources, with no built docs, images or fonts shipped.
- PKG-INFO is hatchling metadata generated from pyproject.toml (version 0.4.0, same dependencies and licence); it agrees with the tree and is covered by
Files: *. - debian/copyright's
Files: *also covers .github/, .devcontainer/ and docs/, which carry no separate terms;.pc/was excluded from the review as instructed. - debian/source/format is
3.0 (quilt); the one patch is listed in debian/patches/series and is applied (src/fenicsx_compat/init.py starts with the added comment block andos.environ["ADIOS2_ALWAYS_USE_MPI"] = "1"). - debian/control builds one binary package, python3-fenicsx-compat, Architecture: all (pure Python,
py.typedonly), debhelper-compat 14 with dh-sequence-python3, anddh $@ --buildsystem=pybuild --with=single-binary; the single-binary add-on exists in debhelper (apt-cache: dh-sequence-single-binary is provided by debhelper 14.5). - Build-Depends are plausible:
python3-hatchlingandpybuild-plugin-pyprojectmatchbuild-backend = "hatchling.build", pybuild selects its pytest test runner because python3-pytest is in Build-Depends (checked /usr/share/perl5/Debian/Debhelper/Buildsystem/pybuild.pm:212), and the test-only deps are marked <!nocheck>. - Standards-Version 4.7.4 against Policy 4.7.4.1: first two components match, nothing to report.
- Changelog: single initial-release entry,
unstable,urgency=medium, closing #1152268, dated Tue, 27 Oct 2026, with the adios2 patch and the Recommends explained. - Autopkgtests: debian/tests/control runs four tests (serial, MPI, complex, complex-MPI); the scripts run pytest from the unpacked source tree, which is present, and the one test skipped at build (
test_every_public_function_has_a_guide_entry) is also skipped there; optional gmsh/pyvista use is guarded by importorskip. - Reference packages named in the packaging exist in the archive (apt-cache): python3-dolfinx 1:0.11.0.post0-7, python3-dolfinx-complex, python3-adios2, python3-adios2-mpi, python3-petsc4py-complex.
- uscan found the packaged version as the newest upstream release (upstream
0.4.0, packaged0.4.0).
Not confirmed
- Whether
${python3:Depends}actually pulls in python3-dolfinx (and through it python3-mpi4py). debian/control lists only${python3:Depends}and${misc:Depends}; the dependency must come from dh_python3 translating the dist-infoRequires-Dist: fenics-dolfinx>=0.10.0(pyproject.toml:18). dh_python3's pydist database on this system (/usr/share/dh-python/dist/cpython3_fallback) has entries for fenics-basix, fenics-ffcx, fenics-ufl, adios4dolfinx, io4dolfinx and dolfinx-mpc but none for fenics-dolfinx, so unless python3-dolfinx itself ships /usr/share/python3/dist/python3-dolfinx, the requirement is silently dropped and the package has no dependency on python3-dolfinx although it imports dolfinx unconditionally onimport fenicsx_compat.python3-mpi4pyis imported at top level too (src/fenicsx_compat/la.py:1, mesh.py:4) and is only Recommends, which is sufficient only if python3-dolfinx is a real Depends. A build log (dh_python3's warning about an untranslatable requirement) ordpkg -I python3-fenicsx-compat_0.4.0-1_all.debwould settle it; if the dependency is absent, addpython3-dolfinx (>= 1:0.10.0~), python3-mpi4py, python3-packagingto Depends.
Proposed changes
None.
Uploader's response to the LLM review
The uploader was emailed about the review 1 hour ago.