dependabot[bot]
4cb0942b21
chore(deps): bump the cargo-dependencies group across 1 directory with 9 updates
...
Bumps the cargo-dependencies group with 9 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [skrifa](https://github.com/googlefonts/fontations ) | `0.47.0` | `0.49.0` |
| [harfrust](https://github.com/harfbuzz/harfrust ) | `0.13.3` | `0.15.0` |
| [vello_cpu](https://github.com/linebender/vello ) | `0.2.0` | `0.3.0` |
| [vello_common](https://github.com/linebender/vello ) | `0.2.0` | `0.3.0` |
| [quick-xml](https://github.com/tafia/quick-xml ) | `0.41.0` | `0.42.0` |
| [zip](https://github.com/zip-rs/zip2 ) | `3.0.0` | `9.1.0` |
| [symphonia](https://github.com/pdeljanov/Symphonia ) | `0.5.5` | `0.6.1` |
| [hayro-syntax](https://github.com/LaurenzV/hayro ) | `0.7.2` | `0.8.0` |
| [cpal](https://github.com/RustAudio/cpal ) | `0.16.0` | `0.18.2` |
Updates `skrifa` from 0.47.0 to 0.49.0
- [Release notes](https://github.com/googlefonts/fontations/releases )
- [Changelog](https://github.com/googlefonts/fontations/blob/main/docs/RELEASE.md )
- [Commits](https://github.com/googlefonts/fontations/compare/skrifa-v0.47.0...skrifa-v0.49.0 )
Updates `harfrust` from 0.13.3 to 0.15.0
- [Release notes](https://github.com/harfbuzz/harfrust/releases )
- [Changelog](https://github.com/harfbuzz/harfrust/blob/main/CHANGELOG.md )
- [Commits](https://github.com/harfbuzz/harfrust/compare/0.13.3...0.15.0 )
Updates `vello_cpu` from 0.2.0 to 0.3.0
- [Release notes](https://github.com/linebender/vello/releases )
- [Changelog](https://github.com/linebender/vello/blob/v0.3.0/CHANGELOG.md )
- [Commits](https://github.com/linebender/vello/compare/v0.2.0...v0.3.0 )
Updates `vello_common` from 0.2.0 to 0.3.0
- [Release notes](https://github.com/linebender/vello/releases )
- [Changelog](https://github.com/linebender/vello/blob/v0.3.0/CHANGELOG.md )
- [Commits](https://github.com/linebender/vello/compare/v0.2.0...v0.3.0 )
Updates `quick-xml` from 0.41.0 to 0.42.0
- [Release notes](https://github.com/tafia/quick-xml/releases )
- [Changelog](https://github.com/tafia/quick-xml/blob/master/Changelog.md )
- [Commits](https://github.com/tafia/quick-xml/compare/v0.41.0...v0.42.0 )
Updates `zip` from 3.0.0 to 9.1.0
- [Release notes](https://github.com/zip-rs/zip2/releases )
- [Changelog](https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md )
- [Commits](https://github.com/zip-rs/zip2/compare/v3.0.0...v9.1.0 )
Updates `symphonia` from 0.5.5 to 0.6.1
- [Release notes](https://github.com/pdeljanov/Symphonia/releases )
- [Commits](https://github.com/pdeljanov/Symphonia/compare/v0.5.5...v0.6.1 )
Updates `hayro-syntax` from 0.7.2 to 0.8.0
- [Commits](https://github.com/LaurenzV/hayro/commits/hayro-syntax-v0.8.0 )
Updates `cpal` from 0.16.0 to 0.18.2
- [Release notes](https://github.com/RustAudio/cpal/releases )
- [Changelog](https://github.com/RustAudio/cpal/blob/master/CHANGELOG.md )
- [Commits](https://github.com/RustAudio/cpal/compare/v0.16.0...v0.18.2 )
---
updated-dependencies:
- dependency-name: cpal
dependency-version: 0.18.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: harfrust
dependency-version: 0.15.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: hayro-syntax
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: quick-xml
dependency-version: 0.42.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: skrifa
dependency-version: 0.49.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: symphonia
dependency-version: 0.6.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: vello_common
dependency-version: 0.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: vello_cpu
dependency-version: 0.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: zip
dependency-version: 9.0.5
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: cargo-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-28 15:56:40 +00:00
Brandon Thomas and Claude Opus 5.5
29f0f7772c
Release 0.12.0
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
v0.12.0
2026-10-28 11:52:01 -04:00
Brandon Thomas and Claude Opus 5.5
d97a596780
macOS packaging: retry stapler when Apple's CloudKit drops the connection
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-28 11:51:58 -04:00
Dylan M. Taylor
6d09d3770f
Merge pull request #1444 from dylanmtaylor/sonar/enforce-clippy-standards
...
Enforce Rust coding standards via Clippy
2026-10-28 06:18:43 -04:00
Dylan M. Taylor
6ddd2fb869
Enforce workspace Clippy standards and document lint policy
2026-10-28 06:02:28 +00:00
Dylan M. Taylor
db245a7029
Refactor deckcraft-cli for strict Clippy checks
2026-10-28 06:02:28 +00:00
Dylan M. Taylor
8c6c72e39f
Refactor ui-egui for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
1a203c4a73
Refactor engine for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
7f1ebc2a5c
Refactor render for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
8e4d0e6b4c
Refactor pptx for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
3f853db3f6
Refactor av1 for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
d9749fbcc5
Refactor h264 for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
0e7cd01381
Refactor hevc for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
9c52950536
Refactor vp9 for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
c58f19f1b5
Refactor opus for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
4de3a4dc8b
Refactor text for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
f441ea93a2
Refactor metafile for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
6a59eb8cef
Refactor model for strict Clippy checks
2026-10-28 06:02:27 +00:00
Dylan M. Taylor
e03ff82504
Refactor geom for strict Clippy checks
2026-10-28 06:02:27 +00:00
aiongg
55e5ee56b4
Merge pull request #1434 from Jeremy8776/feat/install-scope-policy
...
Windows installation policy: DeckCraft
2026-10-27 17:09:15 -04:00
aiongg
f2f4dfabc0
ci: use storytold/craft-common-actions at the merged installer-policy commit
2026-10-27 20:51:55 +00:00
Jeremy
8cb3365596
fix(installer): check the exact architecture-specific machine folder
...
The pre-signing check matched any folder named Program Files, so it rejected
a valid MSI when Windows resolves Program Files elsewhere, accepted the 64-bit
root for an x86 package and accepted a different app name. Build the expected
folder from the package architecture's resolved root and the policy name.
2026-10-27 19:08:41 +00:00
aiongg
88c2ceff5f
Merge pull request #1461 from Silvertree2010/perf/export-speed
...
Speed up PDF export by reusing equal slide backdrops
2026-10-27 13:42:02 -04:00
NetterSilver and Claude Opus 5.5
2f4a6d906a
Speed up PDF export by reusing equal slide backdrops
...
PDF export rasterises every slide as a backdrop and a content layer and
hands both to the writer. Profiling (gdb stack sampling) showed most of
the main thread outside rendering going to per-pixel work on those
rasters: compositing the backdrop onto white (not vectorised), the
writer hashing every backdrop to deduplicate it, and the straight-alpha
conversion scanning every content pixel.
- Composite the backdrop with saturating adds and skip 16-pixel blocks
that are already opaque; skip blocks with no partly transparent pixel
in the straight-alpha conversion. Same formulas, same bytes.
- Keep the last opaque backdrops (up to 32 MiB of pixels) and hand the
writer the same image again when a slide renders an identical
backdrop. The writer stored equal backdrops once already; now it also
skips hashing and compressing the copies. Output is byte-identical.
deckcraft-cli bench, export .pdf step, 15 interleaved runs each on a
16-thread Ryzen (A/A noise +0.9 %):
- sample x4 (32 slides): median 531 -> 322 ms (-39 %), min 529 -> 317 ms
- same deck, every slide a different background: 557 -> 441 ms (-21 %)
- sample (8 slides): 149 -> 103 ms (-31 %)
Exported PDFs are byte-identical.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-27 17:39:31 +01:00
NetterSilver and Claude Opus 5.5
53e183495b
Time PDF export over all bench runs
...
`deckcraft-cli bench` capped the "export .pdf" step at three runs while
its help promises the median of N runs for every step. Use --runs for
it too, so a PDF export benchmark can take enough samples to beat noise.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-27 16:43:29 +01:00
Jeremy
8445d98e24
fix(installer): resolve the wizard scope and folder correctly
...
Real msiexec runs (per-user and all-users, silent and wizard) found two defects
that the metadata fixtures cannot see:
- "Only for me" published ALLUSERS=2, so FindRelatedProducts treated the run as
per-machine and skipped the existing per-user copy. An interactive upgrade
left two registered products and uninstall left files behind. The page now
leaves ALLUSERS unset for a per-user choice.
- Windows Installer resolves Program Files once, for the context it started in,
so choosing "Everyone" in the wizard installed into the user profile with a
machine-wide registration. The wizard now sets the new-install folder itself
after the choice (Program Files, Program Files (x86) for 32-bit, or the
per-user Programs folder). Silent installs are unchanged.
check-install-policy.ps1 now fails if either regresses.
2026-10-27 15:32:16 +00:00
aiongg
2c9edcc394
refactor(ui): use craft-ui's ComboBox for every dropdown ( #1457 )
...
* ui: use craft_ui::ComboBox so dropdown menus grow back (egui#5225); repin craft-libs
* chore(deps): craft-libs 60d60d48 (dropdown fixes)
* chore(deps): craft-libs 6af63481 (dropdown fixes)
* chore(deps): craft-libs 4d7b82f7 (dropdown fixes)
* chore(deps): craft-libs 92d392cf (#387 merged)
* chore(xtask): pdf-deps expects craft-libs 92d392cf
2026-10-27 10:26:51 -04:00
Jeremy
428c8809ea
fix(installer): harden install-policy checks and packaging-lint workflow
2026-10-27 12:00:56 +00:00
Jeremy
abee4d7522
fix(installer): address scope and ARM64 review feedback
2026-10-27 12:00:56 +00:00
Jeremy
4d9b325d35
feat(installer): default to a per-user ArtCraft folder
2026-10-27 12:00:56 +00:00
aiongg
ee875abffa
Merge pull request #1433 from aiongg/layout
...
refactor: shared module layout (craft-contrib#20)
2026-10-26 21:30:28 -04:00
skylar taylor-barrick
020e53e7a0
Merge pull request #1429 from storytold/fix/nextest-0.9.150
...
ci: require nextest 0.9.150
2026-10-26 17:35:27 -06:00
aiongg
12001d14e7
refactor(engine): split cmd/shape.rs into cmd/shape/{size,appearance,picture,freeform}.rs
2026-10-26 22:10:40 +00:00
aiongg
bbf7a8b8c7
docs: update source paths after the module layout moves
2026-10-26 22:08:44 +00:00
aiongg
96f0ac204e
test(engine): read past #[cfg(test)] imports in the file-system scan
2026-10-26 22:08:44 +00:00
aiongg
6b57773373
refactor(geom): split preset.rs into preset/{catalog,builder,build,shapes}.rs
2026-10-26 22:08:44 +00:00
aiongg
838d51ed59
refactor(text): split lib.rs into {run,style,autonum,shape,symbol,breaking,layout}.rs
2026-10-26 22:08:44 +00:00
aiongg
5b02b1744c
refactor(render): split lib.rs into {raster,opts,slide,renderer,geometry,stroke,text_draw}.rs
2026-10-26 22:08:44 +00:00
aiongg
8b456dce41
refactor(engine): split tools.rs into tools/{hit,pointer,drag,click,geometry}.rs
2026-10-26 22:08:44 +00:00
aiongg
15bf821535
refactor(engine): split cmd/text.rs into cmd/text/{ime,layout,editing,autocorrect,caret,formatting}.rs
2026-10-26 22:08:44 +00:00
aiongg
d7c06b53eb
refactor(engine): split cmd/smartart.rs into cmd/smartart/{nodes,paint,layout,diagrams,edit}.rs
2026-10-26 22:08:44 +00:00
aiongg
97b98767f1
refactor(engine): split cmd/insert.rs into cmd/insert/{picture,album,chart,text_fields,links}.rs
2026-10-26 22:08:44 +00:00
aiongg
d5180fbb70
refactor(engine): split cmd/format.rs into cmd/format/{font,text_effects,paragraph,painter,ruler}.rs
2026-10-26 22:08:44 +00:00
aiongg
9c222be711
refactor(engine): split cmd/design.rs into cmd/design/{colors,slide_background,slide_setup,master_view}.rs
2026-10-26 22:08:44 +00:00
aiongg
28371e27d7
refactor(ui-egui): split backstage.rs into backstage/{files,info,print}.rs
2026-10-26 22:08:44 +00:00
aiongg
4bdd5b5bee
refactor(ui-egui): split icons.rs into icons/{geometry,draw}.rs
2026-10-26 22:08:44 +00:00
aiongg
99688fe45a
refactor(ui-egui): split show.rs into show/{render,keys,ui,media,presenter,zoom}.rs
2026-10-26 22:08:44 +00:00
aiongg
ada66524a2
refactor(ui-egui): split panels.rs into one file per pane under panels/
2026-10-26 22:08:44 +00:00
aiongg
e84ba9def1
refactor(ui-egui): split ribbon.rs into one file per tab under ribbon/
2026-10-26 22:08:44 +00:00
aiongg
9545ff4d61
refactor(ui-egui): move the zoom, trim, about and alt-text test modules to their dialog files
2026-10-26 22:08:44 +00:00