Upstream 0.21.3 promotes `pillow-heif>=1.4.0,<2` to a direct dependency
(HEIF/HEIC/AVIF decode for the vision tools), so the wheel metadata now
requires it and `pythonRuntimeDepsCheck` fails with:
Checking runtime dependencies for hermes_agent-0.21.3-py3-none-any.whl
- pillow-heif not installed
Changes in package.nix:
- Add `pillow-heif` to the runtime dependencies next to `pillow`.
- Override nixpkgs' `pillow-heif` 1.2.0 up to 1.4.0. 1.4.0 is the newest
release that still accepts nixpkgs' libheif 1.20.2 (1.5.0 requires
libheif >= 1.23.1, so it cannot be used with the pinned nixpkgs).
Verification:
- `nix build .#hermes-agent`: builds; previously the same command failed in
`pythonRuntimeDepsCheck`.
- `nix path-info -r` on the result lists python3.12-pillow-heif-1.4.0.
- pillow-heif 1.4.0 built from source against system libheif passes its own
test suite: 664 passed, 8 skipped.
Upstream 0.21.0 added firecrawl-anydoc==0.2.4 (document-to-Markdown
converter) as a direct core dependency. It ships only Rust/maturin
artifacts, so package.nix consumes the prebuilt cp310-abi3 x86_64-linux
wheel (zero runtime deps per PyPI), mirroring the existing nemo-relay
wheel pattern.
Re-adds snowballstemmer==3.1.1 (tool_search BM25 stemming, required
since 0.20.6) which the candidate regeneration from main dropped, and
restores the 'hermes --version' form in the package-contents check (the
'hermes version' subcommand was removed upstream in 0.20.6).
Files: package.nix (add firecrawl-anydoc builder + both deps),
checks.nix (--version).
- relax setuptools==83.0.0 pin (nixpkgs ships 80.10.1) in postPatch
- set HERMES_NIX_BUILD=1: upstream setup.py refuses wheel builds without it
- disable slack-bolt 1.27.0 tests: crash at interpreter shutdown in sandbox
- package nemo-relay 0.6.0 from its manylinux abi3 wheel (not in nixpkgs)
The processpool executor tests assert specific signal exit codes that
differ inside the nix build sandbox. Same class of issue as the existing
sanic/cherrypy/pytest-services overrides.
Fixes#2
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Upstream removed minisweagent_path.py in favor of mini_swe_runner.py,
breaking the nightly-package-contents check. Accept either module name
in checks and ensure both are patched into pyproject.toml py-modules.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>