feat(cadcraft): migrate font layout to flat crate owner

This commit is contained in:
aphrody-dev committed 2026-10-14 07:11:50 +02:00
1 parent 649d4c6bc0
commit 75deec911e
9 files changed
+68 -7

No files matched your search

+4
View File
@@ -209,3 +209,7 @@
path = crates/cadcraft-dwg
url = bun-forge:aphrody-dev/bun-crate-cadcraft-dwg.git
branch = os
[submodule "crates/cadcraft-fonts"]
path = crates/cadcraft-fonts
url = bun-forge:aphrody-dev/bun-crate-cadcraft-fonts.git
branch = os
Generated
+16
View File
@@ -620,6 +620,16 @@ dependencies = [
"thiserror 2.0.21",
]
[[package]]
name = "cadcraft-fonts"
version = "1.4.4"
dependencies = [
"cadcraft-geom",
"harfrust",
"skrifa 0.48.0",
"unicode-bidi",
]
[[package]]
name = "cadcraft-geom"
version = "1.4.4"
@@ -4763,6 +4773,12 @@ version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
[[package]]
name = "unicode-bidi"
version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"
[[package]]
name = "unicode-general-category"
version = "1.1.0"
+4
View File
@@ -17,6 +17,7 @@ members = [
"crates/cadcraft-constraints",
"crates/cadcraft-dxf",
"crates/cadcraft-dwg",
"crates/cadcraft-fonts",
"crates/gridcraft-pdf",
"crates/aphrody-a2a",
"crates/aphrody-agent-proto",
@@ -61,6 +62,7 @@ cadcraft-doc = { path = "crates/cadcraft-doc", version = "=1.4.4" }
cadcraft-constraints = { path = "crates/cadcraft-constraints", version = "=1.4.4" }
cadcraft-dxf = { path = "crates/cadcraft-dxf", version = "=1.4.4" }
cadcraft-dwg = { path = "crates/cadcraft-dwg", version = "=1.4.4" }
cadcraft-fonts = { path = "crates/cadcraft-fonts", version = "=1.4.4" }
gridcraft-pdf = { path = "crates/gridcraft-pdf", version = "=1.4.4" }
aphrody-a2a = { path = "crates/aphrody-a2a", version = "=1.4.4" }
aphrody-agent-proto = { path = "crates/aphrody-agent-proto", version = "=1.4.4" }
@@ -89,6 +91,7 @@ egui_kittest = { version = "=0.36.2", default-features = false }
encoding_rs = "=0.8.35"
getrandom = { version = "=0.4.3", default-features = false }
futures = { version = "=0.3.34", default-features = false, features = ["std", "async-await"] }
harfrust = "=0.12.0"
image = { version = "=0.25.10", default-features = false }
libc = { version = "=0.2.190", default-features = false }
log = { version = "=0.4.34", default-features = false }
@@ -118,6 +121,7 @@ tokio = { version = "=1.53.2", default-features = false }
tracing = { version = "=0.1.44", default-features = false }
url = { version = "=2.5.8", default-features = false }
uuid = { version = "=1.28.0", default-features = false }
unicode-bidi = "=0.3.18"
windows = { version = "=0.62.2", default-features = false }
winsafe = { version = "=0.0.29", default-features = false }
winprint = { git = "https://github.com/storytold/winprint.rs", rev = "5f80b9baf6b58937c401656634e42d33f00ddf49", default-features = false }
+10
View File
@@ -52,6 +52,16 @@ metadata resolves 479 CADCraft packages; root metadata resolves 572 packages,
the DWG crate check and root format pass. Ten CADCraft workspace members
remain; tests and full product qualification are unclaimed.
The font-layout source history is split from CADCraft
`88e15b5b11e3b844b6dfff97a0210daa3ae73051` at `crates/fonts`
(`ddb2e5b0db66a8fc6e5be24331a905b7f758d233`). Its private forge branch is
`ae107d5ba70f0b2ac10dadbdb7d5ba1a18acb4c1`; the consumer branch is
`533857d44f193c709fe66a650605e53d5d0f8ed0`. It uses root `skrifa 0.48.0`
with `std` and `autohint_shaping`; the optional font asset input remains
external. Locked offline CADCraft metadata resolves 479 packages; root
metadata resolves 574, crate check and root format pass. Nine CADCraft members
remain; tests and full product qualification are unclaimed.
The refreshed inventory at root revision `dceda086f7a0b5cd0ffeb0f8696f723a9ae34d8c`
reports 46 pinned sources, 856 Cargo packages, 555 declared workspace crates,
30 flat owners and 525 remaining declared crates. The new CADCraft owners have
+8
View File
@@ -60,6 +60,14 @@
- [x] Pass locked offline metadata, `cadcraft-dwg` check, and root Rust format.
- [ ] Migrate the remaining 10 CADCraft workspace members.
### CADCraft font owner — 2026-10-14
- [x] Split `cadcraft-fonts`, preserve source history and licenses, publish the
private forge owner, and redirect CADCraft to the flat root crate.
- [x] Align its `skrifa` features with source defaults and root version 0.48;
locked offline metadata, crate check, and root Rust format pass.
- [ ] Migrate the remaining 9 CADCraft workspace members.
### Cargo source-owner inventory — 2026-10-14
- [x] Refresh the ignored inventory at root revision
+18
View File
@@ -90,6 +90,24 @@ Locked offline metadata resolves 479 CADCraft packages. Root locked offline
metadata resolves 572 packages, `cargo check --locked --offline -p cadcraft-dwg`
passes, and the complete root Rust format check passes. Tests were not run.
## CADCraft font layout — 2026-10-14
`cadcraft-fonts` is split from CADCraft source revision
`88e15b5b11e3b844b6dfff97a0210daa3ae73051`, prefix `crates/fonts`. The split
commit is `ddb2e5b0db66a8fc6e5be24331a905b7f758d233`; its tree matches the
source prefix. The private forge `os` branch is at
`ae107d5ba70f0b2ac10dadbdb7d5ba1a18acb4c1`, retaining the source license
import at `680006dcda26f88fb84cd6ec15250c5176801ddf` and workspace integration
at `c00471e3872302529d57f698de386044ce10da5f`. CADCraft consumer branch `os` is at
`533857d44f193c709fe66a650605e53d5d0f8ed0`; it redirects the dependency and
retires the original 12 tracked files. The crate uses root `skrifa 0.48.0`
with the source default `std` and `autohint_shaping` features, plus exact
`harfrust 0.12.0` and `unicode-bidi 0.3.18` pins. Its optional font input stays
external; with no `CRAFT_FONTS_DIR`, the build emits an empty font catalog.
Locked offline metadata resolves 479 CADCraft packages. Root metadata resolves
574 packages, `cargo check --locked --offline -p cadcraft-fonts` passes, and
the root Rust format check passes. Tests were not run.
The subsequent complete root build with all features succeeds for all 28
members and supplies 28 hashed final artifacts. The revalidated vendor receipt
now reports `compiled: true` and `buildProof: valid`; this remains scoped to
+6 -6
View File
@@ -10,13 +10,13 @@ toolchain, `build/rust`, `target`, `node_modules`, and `install`. Use `just setu
`just check`, and `just test`. Setup initializes direct submodules without
recursively fetching unrelated upstream asset repositories.
The root currently contains 30 flat crate owners, including the six CADCraft
The root currently contains 31 flat crate owners, including the seven CADCraft
crates `cadcraft-color`, `cadcraft-geom`, `cadcraft-doc`,
`cadcraft-constraints`, `cadcraft-dxf` and `cadcraft-dwg`. Every crate tracks
its forge `os` branch. The CADCraft consumer workspace resolves its migrated
edges to these root owners in version 1.4.4; 10 other members remain to
migrate. Source histories, licenses and notices remain with each component.
Licensed font assets remain in `fonts/`.
`cadcraft-constraints`, `cadcraft-dxf`, `cadcraft-dwg` and `cadcraft-fonts`.
Every crate tracks its forge `os` branch. The CADCraft consumer workspace
resolves its migrated edges to these root owners in version 1.4.4; 9 other
members remain to migrate. Source histories, licenses and notices remain with
each component. Licensed font assets remain in `fonts/`.
Forge access uses `bun-forge` through the private VPS transport. Aphrody Infra
owns provisioned repositories and machine identities; private credentials