Skip to content

Update the dependencies and development tools to their latest releases #617

Closed

Description

@yhay81

Context

The owner asked to bring every dependency up to date, development tools included. The workspace had also drifted from a rule of DESIGN.md section 15: pyropdf takes the harfrust release that uses hayro's read-fonts, so that harfrust adds no copy of it. hayro 0.9 moved to skrifa 0.49 and read-fonts 0.46, while the engine stayed on skrifa 0.46 and harfrust 0.13, both on read-fonts 0.43.

Goal

Every direct dependency and every pinned development tool of the repository is at its newest release, except where a recorded reason holds it back, and the lockfiles hold the newest versions that the requirements allow.

Scope

In:

  • The Rust dependencies of the workspace and of fuzz/, and both lockfiles.
  • The Python build requirement and dependency groups, and uv.lock.
  • tools/pdfjs, and its lockfile.
  • The workflows' pins: actions, uv, maturin, the fuzz nightly, and the veraPDF jars with their digests.
  • Whatever these releases change in the engine, the tests, or the lint results.

Out:

Paths

Cargo.lock, crates/*/Cargo.toml, fuzz/Cargo.toml, fuzz/Cargo.lock, pyproject.toml, uv.lock, tools/pdfjs/package.json, tools/pdfjs/package-lock.json, tools/verapdf.py, .github/workflows/, and the engine, tests, and Python sources that a new release requires changing.

Acceptance

  • Each direct Rust dependency of the workspace and fuzz/ requires its newest release, on the prerelease line where the manifest already follows one.
  • harfrust and skrifa use the read-fonts that hayro uses, so that Cargo.lock holds no copy of read-fonts for the engine alone.
  • uv.lock and tools/pdfjs/package-lock.json hold the newest versions that their requirements allow, and the floors in pyproject.toml follow them.
  • Each action pin names the commit of the newest release's tag, and the veraPDF digests match the jars on Maven Central.
  • python3 tools/check.py --locked, cargo-audit audit --deny warnings, and actionlint pass.
  • CI, Fuzz, Docs, and Windows pass on the current head.

Notes

  • Already at the newest release: Rust 1.99.1, cargo-audit 0.22.2, actionlint 1.7.12, cargo-fuzz 0.13.2, and the Arlington model.
  • release.yml runs only on tags and by hand, so a pull request does not exercise its new pins.
  • The veraPDF update can change what tools/verapdf.py reports. A new rejection needs a fix or an entry in its REJECTED table with an issue.

Activity

  1. added this to the Phase 0: Foundation milestone on Nov 3, 2026
  2. added
    area:infraWorkspace, packaging, CI, and tooling
    in-progressClaimed; the latest comment names the branch
    on Nov 3, 2026
  3. yhay81 commented on Nov 3, 2026

    @yhay81
    OwnerAuthor

    Claimed on branch claude/617-update-dependencies.

  4. yhay81 commented on Nov 3, 2026

    @yhay81
    OwnerAuthor

    Branch claude/617-update-dependencies, PR #620. It updates the Rust crates, the Python tools, pdfjs-dist, and the workflow pins, and moves the shaper to harfrust 0.15. tools/check.py --locked, cargo-audit, and actionlint pass locally; CI on the PR decides the rest, including veraPDF and the fuzz nightly. Next: the owner's review and merge. release.yml is not exercised until a tag or a manual dispatch.

  5. removed
    in-progressClaimed; the latest comment names the branch
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:infraWorkspace, packaging, CI, and tooling

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions