Skip to content

feat(fontsrc): add shared project file source - #438

Merged
kostyafarber merged 2 commits into
test/fontsrc-authored-source-corpusfrom
feat/fontsrc-file-source
Sep 29, 2026
Merged

kostyafarber merged 2 commits into
test/fontsrc-authored-source-corpusfrom
feat/fontsrc-file-source

Conversation

@kostyafarber

Copy link
Copy Markdown
Collaborator

Summary

  • expose fontsrc::FileSource as the shared host-owned project tree for native, in-memory, archive, browser, and remote inputs
  • add source-backed Designspace and Glyphs entry points with normalized relative-path enforcement
  • load native .glyphspackage directories through the same entry point when the source exposes a filesystem root
  • return an explicit unsupported error for in-memory packages rather than duplicating glyphs-reader's private package parser

This is stacked on #436. Browser .glyphspackage parsing remains an upstream glyphs-reader capability gap; .glyphs, Designspace XML, referenced UFOs, and UFO directories now share the approved project-source boundary.

Issue

Refs #431

Testing

  • cargo test -p fontsrc
  • cargo clippy -p fontsrc --all-targets -- -D warnings
  • RUSTFLAGS='-D warnings --cfg getrandom_backend="wasm_js"' cargo check --target wasm32-unknown-unknown -p fontsrc
  • RUSTDOCFLAGS='-D rustdoc::broken_intra_doc_links' cargo doc -p fontsrc --no-deps --document-private-items
  • verified cargo tree -p fontsrc --edges normal --prefix none contains no shift-* crate
  • cargo fmt --all -- --check
  • git diff --check
  • python3 scripts/context-drift-check.py reports only 11 existing freshness warnings outside this change

Desktop E2E was not run because this changes only the standalone Rust source boundary.

@kostyafarber
kostyafarber added this pull request to stack #448 September 28, 2026 08:25
@kostyafarber
kostyafarber removed this pull request from stack #448 September 28, 2026 19:30
@kostyafarber
kostyafarber merged commit 20de85a into test/fontsrc-authored-source-corpus Sep 29, 2026
27 checks passed
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.

1 participant