Skip to content

v0.4.36 — Fix anylabeling-gpu install (#227); CI test gate

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Apr 03:52
· 1 commit to main since this release

Summary

This release fixes anylabeling-gpu, which has shipped broken since 0.4.30 (#227). It also lands a cross-platform CI test gate that prevents the next regression from hitting PyPI.

If you hit ValueError: assignment destination is read-only at startup with an older anylabeling-gpu, upgrade with:

pip install -U anylabeling-gpu

What changed

Fixes

  • anylabeling-gpu is publishable again — the setup.py shim that renamed the package was silently rejected by PEP 621, so every GPU tag from 0.4.30 onward produced an anylabeling-*.whl PyPI rejected. The GPU workflow now seds pyproject.toml directly before python -m build and asserts the wheel name.
  • Resource regeneration scripts work againscripts/compile_languages.py and scripts/generate_languages.py were calling pyrcc5 / pyrcc6, neither of which exists in PyQt6. Switched to pyside6-rcc + pyside6-lrelease with PyQt6 import rewriting.

CI

  • New .github/workflows/tests.yml runs the unit suite on a 9-cell matrix (Ubuntu/Windows/macOS × Python 3.11/3.12/3.13).
  • Both PyPI publish workflows and the binary-release workflow gate on the matrix via needs: test. A red matrix blocks the upload.
  • Action versions bumped (checkout → v4, setup-python → v5, setup-miniconda → v3).

Dependencies

  • Floors raised to versions verified to install cleanly on every supported Python:
    • natsort >= 8.4.0, Pillow >= 11.0.0, termcolor >= 2.4.0, PyQt6 >= 6.7.0, osam >= 0.4.0
  • Added a huggingface_hub >= 0.24.0 floor (was unconstrained).
  • Added PySide6-Essentials to the [dev] extras (only used to regenerate Qt resources).

Docs

  • Added CLAUDE.md with an architecture overview and a 6-step pre-publish playbook.
  • Rewrote .cursorrules to mirror it.

PyPI

If you find this project useful, please consider sponsoring its development.