Skip to content

Take hayro 0.6 and raise the MSRV to 1.92 - #64

Merged
M3gA-Mind merged 5 commits into
tinyhumansai:mainfrom
M3gA-Mind:deps/hayro-0.6-msrv
Nov 11, 2026
Merged

M3gA-Mind merged 5 commits into
tinyhumansai:mainfrom
M3gA-Mind:deps/hayro-0.6-msrv

Conversation

@M3gA-Mind

Copy link
Copy Markdown
Collaborator

tinydocs: deps/hayro-0.6-msrv → "Port PDF rendering to hayro 0.6 and raise the MSRV to 1.92"

Supersedes #27 (dependabot).

Stacked on #63: this branch includes #63's commits (zip 9.2, quick-xml 0.42 and png 0.18), so merge #63 first, after which this diff shrinks to the four commits below. The two touch the same Cargo.lock sections, which is why this one is stacked rather than separate.

  1. Port PDF rendering to hayro 0.6. hayro::render now takes a RenderCache. The port builds one per document and reuses it across the selected pages, as hayro recommends.

  2. Raise the MSRV to 1.92. hayro 0.6 renders through vello 0.0.7, whose crates (vello_api, vello_common, vello_cpu) need rustc 1.92, and cargo +1.88 check fails against them. rust-version moves to 1.92 for tinydocs and tinydocs-module, which enables pdf-render. tinydocs-bus and tinydocs-client don't depend on hayro and keep 1.88, so hosts that only link the contract are not affected. The spec, plan and pdf_render README now say 1.92. The module e2e scripts read the module's rust-version, so they follow automatically.

  3. CI script change (flagged): build the distro test module on Rust 1.92. scripts/test-distro.sh installed the 1.88.0 toolchain to build the module, which can no longer compile hayro 0.6.

  4. Drop the lock entries nothing needs after the port. No package depends on png 0.17 or bitflags 1 any more. The lock was repaired with cargo metadata, not cargo update.

Public API: none. Behaviour: none intended; the pdf_render tests pin page order and PNG dimensions.

Validation, at 52f7365 on main 835854e:

  • cargo fmt --all -- --check: clean.
  • cargo clippy --locked --all-targets --all-features -- -D warnings: clean.
  • cargo test --locked --all-features: 224 passed, 0 failed (pdf_render 3/3).
  • cargo +1.88 check --locked -p tinydocs-bus -p tinydocs-client --all-features: passes, so the contract crates keep 1.88.
  • cargo +1.94 check --locked --all-targets --all-features: passes. Not yet run on exactly 1.92: CI's MSRV job reads rust-version and will check 1.92 itself. cargo +1.88 check on the old MSRV fails against vello 0.0.7, which is why the bump is needed.

hayro 0.6 takes a RenderCache in render(). Build one per document and
reuse it across the selected pages.

Supersedes tinyhumansai#27.
hayro 0.6 renders through vello 0.0.7, whose crates need rustc 1.92. Raise
rust-version for tinydocs and the module, which enables pdf-render. The
bus crate does not depend on hayro and keeps 1.88.
CI script change: test-distro.sh installed the 1.88.0 MSRV toolchain to
build the module, which can no longer compile hayro 0.6.
After the port no package depends on png 0.17 or bitflags 1, so the lock
keeps only png 0.18 and bitflags 2 (cargo metadata, no update).
@coderabbitai

coderabbitai Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 4f4c75d0-dfd3-49ea-b749-0a8c62e4d6a7
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@M3gA-Mind

Copy link
Copy Markdown
Collaborator Author

Stacked on #63 (it includes #63's commits). Please merge #63 first. This supersedes dependabot #27, which will be closed when this merges.

@tinysweeper

tinysweeper Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Tiny Sweeper review

Reviewed head: 76708d83a0e0c74b2d030771f70d27154f80de34

Verdict: Ready for maintainer review · Priority: none
Coverage: Reviewed 7 of 8 files; not reviewed: Cargo.lock.
Pull request purpose (title): Take hayro 0.6 and r…

Diagnostics and supporting details

Full summary

Pull request purpose (title): Take hayro 0.6 and raise the MSRV to 1.92. This pull request moves PDF rendering to hayro 0.6, creating one RenderCache per document and reusing it across the selected pages, and raises rust-version to 1.92 for tinydocs and tinydocs-module because hayro 0.6 renders through vello 0.0.7, which needs 1.92. The spec, plan, pdf_render README and distro test script are updated to the new MSRV so the documented toolchain and the distro module build match the manifests. No public API changes and no behaviour change is intended.

Unreviewed paths

  • Cargo.lock

Review snapshot

Change surface Files Review signal Count
Production 1 Active findings 0
Tests 1 Noted findings 0
Documentation 3 Resolved findings 0
Configuration 2 Pending checks/questions 0

Completeness: Complete
Test assessment: No supported feature-to-test mapping was available; this does not mean tests are absent or passed.

What changed

Full-pull-request behavior as described by the PR: the renderer builds a single hayro::RenderCache per document and passes it into hayro::render for each planned page, so multi-page renders reuse the cache while page selection, ordering and PNG encoding remain unchanged. Because hayro 0.6's vello 0.0.7 crates require rustc 1.92, rust-version moves to 1.92 for the tinydocs and tinydocs-module crates, while contract crates that do not depend on hayro keep the earlier MSRV. The spec, plan and pdf_render README record 1.92 with the hayro rationale, and scripts/test-distro.sh installs the 1.92.0 toolchain for the distro module build. No public API is changed and no behavior change is intended.

Features

  • Modified — PDF rendering ported to hayro 0.6 with a per-document RenderCache: The renderer now constructs one hayro::RenderCache per document and passes it into hayro::render for every planned page, so multi-page renders reuse the cache as hayro recommends while page selection, ordering and PNG encoding stay unchanged. (src/pdf_render/mod.rs pub fn render(bytes: &[u8], spec: &RenderPdfSpec) -> Result<PdfImages> {)
  • Modified — MSRV raised to 1.92 for the hayro-bearing crates: rust-version moves to 1.92 for tinydocs and tinydocs-module, required because hayro 0.6's vello 0.0.7 needs rustc 1.92; contract crates that do not depend on hayro keep the lower MSRV, so hosts linking only the contract are unaffected. (Cargo.toml, crates/tinydocs-module/Cargo.toml)
  • Modified — hayro dependency moved from 0.5 to 0.6: The optional hayro dependency is now caret-pinned at 0.6 and remains feature-gated behind pdf-render, unchanged in shape apart from the version. (Cargo.toml quick-xml = { version = "0.42", optional = true })
  • Modified — Spec, plan and pdf_render README state the new 1.92 MSRV: The spec records MSRV as Rust 1.92 with the hayro 0.6 rationale, the plan's manual check command moves to cargo +1.92.0, and the pdf_render README attributes the requirement to hayro 0.6's vello 0.0.7, so the documented toolchain matches the manifests. (docs/specs/document-intake-render.md Fixture tests verify ordered Office sections, shared/inline/cached worksheet, docs/plans/document-intake-render.md Run from the TinyDocs repository root:, src/pdf_render/README.md or renderer resources. A blocking-pool timeout is not cancellation. The host)

Tests

No supported feature-to-test mapping was produced. Test execution is not inferred.

Findings

No active actionable findings.

Before merge

None.

Agent review details

critique

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: The critique lane answered with no findings, reporting that the MSRV bump to 1.92 matches the documented vello 0.0.7 reason, is consistent with the already-updated tinydocs-module manifest, and that the hayro 0.6 API used in the renderer is consistent with the new version.
  • Lane summary: The change bumps the crate MSRV to 1.92 and hayro to 0.6, which matches the documented reason (hayro 0.6's vello 0.0.7 needs 1.92) and the already-updated tinydocs-module manifest; the hayro 0.6 API used in src/pdf_render/mod.rs is consistent with the new version. No defects found in this file.

security

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: The security lane answered with zero findings after reviewing 4 of 4 files in its scope, noting the dependency stays caret-pinned, feature-gated and commented per repository rules and introduces no new network, subprocess or deserialization surface; it states it could not verify hayro 0.6 API compatibility from the diff but saw no break.
  • Lane summary: The diff bumps the crate's MSRV to 1.92 and moves the optional `hayro` dependency from 0.5 to 0.6. Both are caret-pinned, feature-gated, and commented as the repository rules require; no new network, subprocess, or deserialization surface is introduced. I could not verify that hayro 0.6's API is compatible with the `pdf-render` code in this repository, but nothing in the diff shows a break, so I have no findings.

tests

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: The tests lane answered with no findings, describing the change as a one-line call-site update to hayro 0.6's render signature plus a per-document RenderCache exercised by the existing multi-page test that asserts page order, dimensions and non-white pixels; the MSRV bump is a version-string change with no runtime behavior.
  • Lane summary: The behavioural change is a one-line call-site update to hayro 0.6's `render` signature plus a per-document `RenderCache`; the existing test `renders_only_requested_pages_in_order_with_png_dimensions` exercises the multi-page path through the new cache and asserts page order, dimensions and non-white pixels, so a regression in the cache reuse would surface there. The MSRV bump is a version-string change with no runtime behaviour. I found no reportable defect.

commits

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: The commits lane answered and reported no sensitive content in committed files.
  • Lane summary: No sensitive content in committed files.

description

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: The description lane answered with no defect: the description covers the hayro 0.6 bump, the 1.92 MSRV in the root and module manifests, the spec/plan/README/script updates, the flagged CI script change and the stacked dependency, and the diff is consistent with it.
  • Lane summary: The change bumps hayro to 0.6, raises the MSRV to 1.92 in the root and module manifests, and updates the spec, plan, README and distro test script to match; the description covers all of it, including the flagged CI script change and the stacked dependency. The description is accurate and the diff is consistent with it.
Evidence and run details
  • Models: ladder/vectors-oai3, deepseek-v4.1-flash
  • Spend: $0.002744
  • Tokens: 204823 input · 4358 output · 72192 cached · 195 embedding
  • Updated: 2026-11-11T14:52:18Z
Head State Pass summary
52f73659c248 ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 2026-11-11T12:30:11Z)
76708d83a0e0 ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 2026-11-11T14:52:18Z)

tinysweeper 0.1.2

@tinysweeper tinysweeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tinysweeper found nothing blocking. Approving.

Diagnostics

Total spend: $0.0166

@tinysweeper tinysweeper Bot added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Nov 11, 2026
@M3gA-Mind
M3gA-Mind merged commit 87e9055 into tinyhumansai:main Nov 11, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant