Skip to content

fix(build): unblock tinyvec 1.13.0 resolution - #1525

Closed
developer0hye wants to merge 1 commit into
mainfrom
fix/issue-1524-tinyvec-std
Closed

fix(build): unblock tinyvec 1.13.0 resolution#1525
developer0hye wants to merge 1 commit into
mainfrom
fix/issue-1524-tinyvec-std

Conversation

@developer0hye

@developer0hye developer0hye commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • explicitly enable tinyvec's std feature in the published office2pdf manifest
  • use Cargo feature unification to avoid tinyvec 1.13.0's broken no_std + alloc code path
  • keep the workaround bounded and documented for removal after a patched upstream release

tinyvec is already in the dependency graph, and office2pdf is std-only, so this changes feature selection without adding a new compiled package. The permanent upstream fix is Lokathor/tinyvec#226 for Lokathor/tinyvec#225; that PR is independently validated but has not been merged or released yet.

Related issue

Fixes #1524

Failure reproduced first

A fresh main worktree with no Cargo.lock failed as expected:

$ CARGO_TARGET_DIR=/private/tmp/office2pdf-1524-before-target cargo check --workspace
error: cannot find macro `vec` in this scope
  --> tinyvec-1.13.0/src/tinyvec.rs:710:21
error: could not compile `tinyvec` (lib) due to 1 previous error

Testing

  • CARGO_TARGET_DIR=/private/tmp/office2pdf-1524-before-target cargo check --workspace
  • CARGO_TARGET_DIR=/private/tmp/office2pdf-1524-before-target cargo test --workspace
  • CARGO_TARGET_DIR=/private/tmp/office2pdf-1524-before-target cargo clippy --workspace --all-targets -- -D warnings
  • cargo fmt --all -- --check
  • git diff --check
  • CARGO_TARGET_DIR=/private/tmp/office2pdf-tinyvec-std-wasm-target cargo check --target wasm32-unknown-unknown -p office2pdf
  • CARGO_TARGET_DIR=/private/tmp/office2pdf-tinyvec-std-wasm-target cargo check --target wasm32-unknown-unknown -p office2pdf --features wasm
  • CARGO_TARGET_DIR=/private/tmp/office2pdf-tinyvec-std-wasm-target cargo check --target wasm32-unknown-unknown -p office2pdf --features wasm-cjk-font
  • CARGO_TARGET_DIR=/private/tmp/office2pdf-1524-publish-target cargo publish --dry-run -p office2pdf --allow-dirty
  • packaged normalized manifest contains tinyvec = "1", features = ["std"], and default-features = false
  • mandatory documentation freshness audit: PASS:

Visual impact

  • No rendered PDF change
  • Rendered PDF change or visual evidence added
  • Reason: This only changes Cargo feature selection for an existing transitive dependency; parser, IR, rendering, and fixtures are unchanged.

Checklist

  • Commits include a Signed-off-by line
  • PR scope contains one root cause
  • Remaining visual deviations each reference an open issue (none; no rendered change)

Explicitly enable tinyvec std in the published library manifest so Cargo feature unification avoids the upstream 1.13.0 alloc-only macro regression. Keep the workaround bounded to issue #1524 and remove it after a patched tinyvec release is verified.

Signed-off-by: Yonghye Kwon <developer.0hye@gmail.com>
@developer0hye

Copy link
Copy Markdown
Owner Author

Closing unmerged because upstream tinyvec 1.13.1 is now published with the qualified alloc::vec! fix. A fresh, unmodified office2pdf main worktree with no Cargo.lock resolved tinyvec 1.13.1 and completed cargo check --workspace successfully. The temporary feature-unification dependency is therefore no longer needed. Existing affected PR runs will be rerun against the fixed release.

@developer0hye
developer0hye deleted the fix/issue-1524-tinyvec-std branch September 4, 2026 01:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build: tinyvec 1.13.0 breaks cold unlocked dependency resolution

1 participant