Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
230 commits
Select commit Hold shift + click to select a range
2a3cb9d
ci: require nextest 0.9.150
skylartaylor Oct 26, 2026
69b71ca
chore: merge current main for nextest update
skylartaylor Oct 26, 2026
c316328
test: scan source directories recursively
aiongg Oct 26, 2026
d932d3b
refactor(ui-egui): move i18n/mod.rs to i18n.rs
aiongg Oct 26, 2026
c3f6fa3
style(ui-egui): format i18n.rs after the include path update
aiongg Oct 26, 2026
251d0a8
refactor(xtask): move demo_pdf/mod.rs to demo_pdf.rs
aiongg Oct 26, 2026
2f88c5e
refactor(render): move raster.rs's tests to raster/tests.rs
aiongg Oct 26, 2026
dd927f6
refactor(render): move inspect.rs's tests to inspect/tests.rs
aiongg Oct 26, 2026
401397d
refactor(ui-egui): move canvas.rs's tests to canvas/tests.rs
aiongg Oct 26, 2026
a892922
refactor(render): move text.rs's tests to text/tests.rs
aiongg Oct 26, 2026
38e9528
refactor(cos): move document.rs's tests to document/tests.rs
aiongg Oct 26, 2026
6d8c0bb
refactor(ui-egui): move i18n.rs's tests to i18n/tests.rs
aiongg Oct 26, 2026
79d7203
refactor(fonts): move pdf.rs's tests to pdf/tests.rs
aiongg Oct 26, 2026
e0033d3
refactor(export): move lib.rs's tests to tests.rs
aiongg Oct 26, 2026
801729e
refactor(pdfcraft): move main.rs's tests to tests.rs
aiongg Oct 26, 2026
9d6ae81
refactor(ui-egui): move editing.rs's tests to editing/tests.rs
aiongg Oct 26, 2026
701988e
refactor(automation): move lib.rs's tests to tests.rs
aiongg Oct 26, 2026
d823fbd
refactor(forms): move af.rs's tests to af/tests.rs
aiongg Oct 26, 2026
37fa7dc
refactor(platform): move staging.rs's tests to staging/tests.rs
aiongg Oct 26, 2026
f700dc3
refactor(export): move pptx.rs's tests to pptx/tests.rs
aiongg Oct 26, 2026
0ead57f
refactor(ui-egui): move comments.rs's tests to comments/tests.rs
aiongg Oct 26, 2026
7d54ae2
refactor(ui-egui): move motion.rs's tests to motion/tests.rs
aiongg Oct 26, 2026
4739740
refactor(ui-egui): move combine_grid.rs's tests to combine_grid/tests.rs
aiongg Oct 26, 2026
52f1520
refactor(ui-egui): move bidi.rs's tests to bidi/tests.rs
aiongg Oct 26, 2026
b1761d5
refactor(engine): move links.rs's tests to links/tests.rs
aiongg Oct 26, 2026
0dc3d45
refactor(ui-egui): move page_pointer.rs's tests to page_pointer/tests.rs
aiongg Oct 26, 2026
f281f0f
refactor(ui-egui): move theme.rs's tests to theme/tests.rs
aiongg Oct 26, 2026
0457352
refactor(engine): move signature_scan.rs's tests to signature_scan/te…
aiongg Oct 26, 2026
bc69802
refactor(ui-egui): move control.rs's lifecycle tests to control/lifec…
aiongg Oct 26, 2026
d39b662
test(pdfcraft): cut main.rs at the moved test module's declaration
aiongg Oct 26, 2026
da51747
test(ui-egui): skip test files in the page pointer scan
aiongg Oct 26, 2026
b1a09ee
docs(parity): point evidence at the tests' new files
aiongg Oct 26, 2026
e2b30ba
docs: name i18n.rs and demo_pdf.rs after the mod.rs moves
aiongg Oct 26, 2026
5e61134
refactor(ui-egui): split lib.rs into app.rs, state.rs and hooks.rs
aiongg Oct 26, 2026
d69b566
refactor(ui-egui): split app.rs into app/
aiongg Oct 26, 2026
41a525e
refactor(ui-egui): split canvas.rs into canvas/
aiongg Oct 26, 2026
7cf7d13
test(ui-egui): point the page-pointer source scan at canvas/*.rs
aiongg Oct 26, 2026
61c9164
refactor(ui-egui): split control.rs into control/
aiongg Oct 26, 2026
3691723
refactor(cos): split document.rs into document/
aiongg Oct 26, 2026
c83a421
refactor(ui-egui): split edit_text_ui.rs into edit_text_ui/
aiongg Oct 26, 2026
f0665f8
docs(parity): notes for the first 25 shipped features, warn on empty …
Harrison-Booth Oct 26, 2026
eb69f95
test(ui-egui): list edit_text_ui/image.rs among the page modules
aiongg Oct 26, 2026
ce5d36e
refactor(ui-egui): split prepare.rs into prepare/
aiongg Oct 26, 2026
676b30d
refactor(ui-egui): split sign_ui.rs into sign_ui/
aiongg Oct 26, 2026
4362d70
refactor(forms): split lib.rs into read, tab_order, values, appearances
aiongg Oct 26, 2026
22c85d3
refactor(forms): split author.rs into author/
aiongg Oct 26, 2026
0bcf83d
refactor(forms): split af.rs into af/
aiongg Oct 26, 2026
6ab1820
refactor(xfdf): split lib.rs into common, xfdf, fdf
aiongg Oct 26, 2026
58c5799
refactor(organize): split import.rs into import/
aiongg Oct 26, 2026
d558972
refactor(ui-egui): move combine_ui tests to combine_ui/tests.rs
aiongg Oct 26, 2026
09d75f7
refactor(ui-egui): split combine_ui.rs into combine_ui/
aiongg Oct 26, 2026
6dcd93a
refactor(engine): move the re-exports from reexports.rs into lib.rs
aiongg Oct 26, 2026
e4abf5b
refactor(engine): split lib.rs's helpers into doc_state.rs and clock.rs
aiongg Oct 26, 2026
cc9b505
refactor(redact): split interp.rs into interp/
aiongg Oct 26, 2026
703efef
refactor(export): split lib.rs into layout, as_html, as_docx, as_rtf
aiongg Oct 26, 2026
0af6cf2
refactor(print): split lib.rs into error, settings, sheets, imposition
aiongg Oct 26, 2026
4e278cb
refactor(xfa): split data.rs into data/
aiongg Oct 26, 2026
3da4932
refactor(xfa): split layout.rs into layout/
aiongg Oct 26, 2026
0988209
refactor(xfa): split pdf.rs into pdf/
aiongg Oct 26, 2026
f64ee67
docs(parity): point evidence at combine_ui's moved tests
aiongg Oct 26, 2026
d84f8ba
refactor(engine): split session.rs into session/
aiongg Oct 26, 2026
b51aee6
refactor(engine): split edit.rs into edit/
aiongg Oct 26, 2026
21c1c91
test(automation): skip use lines in the file access scan
aiongg Oct 26, 2026
3370aeb
refactor(automation): split lib.rs into src/
aiongg Oct 26, 2026
a891dfe
refactor(automation): split a11y.rs into a11y/
aiongg Oct 26, 2026
978bc28
refactor(cli): split main.rs into src/
aiongg Oct 26, 2026
f7c23ff
refactor(ui-egui): split comments.rs into comments/
aiongg Oct 26, 2026
310dfc8
refactor(ui-egui): split panels.rs into panels/
aiongg Oct 26, 2026
8471998
refactor(ui-egui): split dialogs.rs prompts into dialogs/
aiongg Oct 26, 2026
daba10b
docs(parity): point evidence at panels' moved tests
aiongg Oct 26, 2026
ef3fcbc
test(ui-egui): list the comments/ modules in PAGE_MODULES
aiongg Oct 26, 2026
faf57b4
refactor(render): split inspect.rs into inspect/
aiongg Oct 26, 2026
b24c2b9
refactor(render): split text.rs into text/
aiongg Oct 26, 2026
a805abe
refactor(render): split raster.rs into raster/
aiongg Oct 26, 2026
91aaa4f
docs(parity): point evidence at inspect's moved tests
aiongg Oct 26, 2026
1c5873c
refactor(js): split lib.rs into model, host, document, format, global…
aiongg Oct 26, 2026
68aa531
refactor(js): split formcalc.rs into formcalc/
aiongg Oct 26, 2026
8e50dcd
refactor(js): split xfa.rs into xfa/
aiongg Oct 26, 2026
5ce4d24
refactor(annot): split lib.rs into src/
aiongg Oct 26, 2026
2e8d361
refactor(annot): split appearance.rs into appearance/
aiongg Oct 26, 2026
67be9ea
refactor(sign): split pdf.rs into pdf/
aiongg Oct 26, 2026
a1b0943
test(sign): read the split pdf modules in wordings_are_complete
aiongg Oct 26, 2026
59ba781
refactor(edit): split text_regions.rs into text_regions/
aiongg Oct 26, 2026
157cbf3
refactor(edit): split text.rs into text/
aiongg Oct 26, 2026
36a68fc
refactor(edit): split added.rs into added/
aiongg Oct 26, 2026
f8e3a0d
refactor(edit): split lib.rs into marks, place, apply
aiongg Oct 26, 2026
06b9054
refactor(ui-egui): split print_ui.rs into print_ui/
aiongg Oct 26, 2026
3cbfa25
refactor(ui-egui): split combine_grid.rs into combine_grid/
aiongg Oct 26, 2026
dee909c
refactor(ui-egui): split fill_sign.rs into fill_sign/
aiongg Oct 26, 2026
bcb9628
refactor(ui-egui): split editing.rs into editing/
aiongg Oct 26, 2026
925d9c1
test(ui-egui): list fill_sign/scan.rs among the page modules
aiongg Oct 26, 2026
208d24b
refactor(ui-egui): move autoscroll.rs into canvas/
aiongg Oct 26, 2026
715c5ec
refactor(ui-egui): move crop.rs into canvas/
aiongg Oct 26, 2026
3e69c3b
refactor(ui-egui): move fling.rs into canvas/
aiongg Oct 26, 2026
611efb2
refactor(ui-egui): move image_pick.rs into canvas/
aiongg Oct 26, 2026
fceda5b
refactor(ui-egui): move page_pointer.rs into canvas/
aiongg Oct 26, 2026
c558ee5
refactor(ui-egui): move scroll_speed.rs into canvas/
aiongg Oct 26, 2026
26f0a36
refactor(ui-egui): move signature_drag.rs into canvas/
aiongg Oct 26, 2026
8a72428
refactor(ui-egui): move wheel_boost.rs into canvas/
aiongg Oct 26, 2026
1f73801
refactor(ui-egui): move wheel_pager.rs into canvas/
aiongg Oct 26, 2026
b60c029
refactor(ui-egui): move zoom_snap.rs into canvas/
aiongg Oct 26, 2026
49f5e69
refactor(ui-egui): move bulk_fields.rs into tools/
aiongg Oct 26, 2026
0996ece
refactor(ui-egui): move calc_order_ui.rs into tools/
aiongg Oct 26, 2026
8563041
refactor(ui-egui): move camera_ui.rs into tools/
aiongg Oct 26, 2026
e4865e8
refactor(ui-egui): move comments.rs into tools/
aiongg Oct 26, 2026
fbbc4d6
refactor(ui-egui): move content_ui.rs into tools/
aiongg Oct 26, 2026
f35adcd
refactor(ui-egui): move edit_text_ui.rs into tools/
aiongg Oct 26, 2026
10b689f
refactor(ui-egui): move field_table_ui.rs into tools/
aiongg Oct 26, 2026
2f8712b
refactor(ui-egui): move fill_sign.rs into tools/
aiongg Oct 26, 2026
e012ef8
refactor(ui-egui): move forms_ui.rs into tools/
aiongg Oct 26, 2026
f8ee929
refactor(ui-egui): move link_ui.rs into tools/
aiongg Oct 26, 2026
3448ddf
refactor(ui-egui): move measure_ui.rs into tools/
aiongg Oct 26, 2026
c8ef7f6
refactor(ui-egui): move object_ui.rs into tools/
aiongg Oct 26, 2026
67c2038
refactor(ui-egui): move prepare.rs into tools/
aiongg Oct 26, 2026
5d66a1a
refactor(ui-egui): move redact_ui.rs into tools/
aiongg Oct 26, 2026
d055e7e
refactor(ui-egui): move sign_ui.rs into tools/
aiongg Oct 26, 2026
e74c807
refactor(ui-egui): move stamps_ui.rs into tools/
aiongg Oct 26, 2026
fc4a75d
refactor(ui-egui): move tags_ui.rs into tools/
aiongg Oct 26, 2026
6e85f0d
refactor(ui-egui): move a11y_ui.rs into workflows/
aiongg Oct 26, 2026
e23e460
refactor(ui-egui): move actions_ui.rs into workflows/
aiongg Oct 26, 2026
46010b6
refactor(ui-egui): move combine_grid.rs into workflows/
aiongg Oct 26, 2026
6607eb5
refactor(ui-egui): move combine_ui.rs into workflows/
aiongg Oct 26, 2026
5c36be9
refactor(ui-egui): move compare_ui.rs into workflows/
aiongg Oct 26, 2026
c0740b6
refactor(ui-egui): move create_multiple_ui.rs into workflows/
aiongg Oct 26, 2026
a1babcd
refactor(ui-egui): move create_ui.rs into workflows/
aiongg Oct 26, 2026
ce98222
refactor(ui-egui): move export_ui.rs into workflows/
aiongg Oct 26, 2026
beb8b9c
refactor(ui-egui): move files.rs into workflows/
aiongg Oct 26, 2026
94a71db
refactor(ui-egui): move js_ui.rs into workflows/
aiongg Oct 26, 2026
c1024e0
refactor(ui-egui): move ocr_ui.rs into workflows/
aiongg Oct 26, 2026
37578f2
refactor(ui-egui): move optimize_ui.rs into workflows/
aiongg Oct 26, 2026
9254db5
refactor(ui-egui): move print_ui.rs into workflows/
aiongg Oct 26, 2026
c5d4982
refactor(ui-egui): move web_print.rs into workflows/
aiongg Oct 26, 2026
40bb91b
refactor(ui-egui): move appearance.rs into dialogs/
aiongg Oct 26, 2026
385e24e
refactor(ui-egui): move comment_props.rs into dialogs/
aiongg Oct 26, 2026
f877aaf
refactor(ui-egui): move credits.rs into dialogs/
aiongg Oct 26, 2026
e901fb8
refactor(ui-egui): move marks_ui.rs into dialogs/
aiongg Oct 26, 2026
7f0799c
refactor(ui-egui): move pageboxes.rs into dialogs/
aiongg Oct 26, 2026
e080461
refactor(ui-egui): move palette.rs into dialogs/
aiongg Oct 26, 2026
de0e370
refactor(ui-egui): move protect.rs into dialogs/
aiongg Oct 26, 2026
1096b2a
refactor(ui-egui): move standards_ui.rs into dialogs/
aiongg Oct 26, 2026
900d56c
refactor(ui-egui): move word_count_ui.rs into dialogs/
aiongg Oct 26, 2026
81e489b
refactor(ui-egui): move all_tools_ui.rs into panels/
aiongg Oct 26, 2026
604ad52
refactor(ui-egui): move comments_panel.rs into panels/
aiongg Oct 26, 2026
9771123
refactor(ui-egui): move format_text_ui.rs into panels/
aiongg Oct 26, 2026
946767d
refactor(ui-egui): move organize_panel.rs into panels/
aiongg Oct 26, 2026
dc6b6a5
refactor(ui-egui): move page_selection_ui.rs into panels/
aiongg Oct 26, 2026
9c27b33
refactor(ui-egui): move search_ui.rs into panels/
aiongg Oct 26, 2026
963b25f
refactor(ui-egui): move side_panels.rs into panels/
aiongg Oct 26, 2026
228a91c
refactor(ui-egui): move icon_data.rs into widgets/
aiongg Oct 26, 2026
73cd1b1
refactor(ui-egui): move icons.rs into widgets/
aiongg Oct 26, 2026
3e7cc6e
refactor(ui-egui): move drag_pointer.rs into platform/
aiongg Oct 26, 2026
d15c5a2
refactor(ui-egui): move file_watch.rs into platform/
aiongg Oct 26, 2026
9a9813b
Merge pull request #4880 from storytold/fix/nextest-0.9.150
skylartaylor Oct 26, 2026
6638646
refactor(ui-egui): move macos_association.rs into platform/
aiongg Oct 26, 2026
d3cfadd
refactor(ui-egui): move motion.rs into platform/
aiongg Oct 26, 2026
16b4977
refactor(ui-egui): move open_worker.rs into platform/
aiongg Oct 26, 2026
b37c3a9
refactor(ui-egui): move pickers.rs into platform/
aiongg Oct 26, 2026
2b4f769
refactor(ui-egui): move portable.rs into platform/
aiongg Oct 26, 2026
dc97e74
refactor(ui-egui): move ui_scale.rs into platform/
aiongg Oct 26, 2026
90a1880
refactor(ui-egui): move updates.rs into platform/
aiongg Oct 26, 2026
687f6f6
refactor(ui-egui): move window_controls.rs into platform/
aiongg Oct 26, 2026
5527f93
refactor(ui-egui): move last_session.rs into persist/
aiongg Oct 26, 2026
615232d
refactor(ui-egui): move last_view.rs into persist/
aiongg Oct 26, 2026
dc25a6e
refactor(ui-egui): move recovery.rs into persist/
aiongg Oct 26, 2026
d25378c
refactor(ui-egui): move units.rs into persist/
aiongg Oct 26, 2026
ed09547
refactor(ui-egui): move window_state.rs into persist/
aiongg Oct 26, 2026
80c4572
refactor(ui-egui): move system_fonts.rs into platform/
aiongg Oct 26, 2026
7b3d688
test(ui-egui): rerun the fontconfig tests by their platform:: path
aiongg Oct 26, 2026
cd0fc37
refactor(ui-egui): move folders_ui.rs into home/
aiongg Oct 26, 2026
636656a
refactor(ui-egui): move tab_context.rs into menus/
aiongg Oct 26, 2026
cb94c8f
refactor(ui-egui): move open_worker_tests.rs to platform/open_worker/…
aiongg Oct 26, 2026
3dbea4e
docs(parity): point evidence at the ui-egui files' new directories
aiongg Oct 26, 2026
064632e
test(ui-egui): name the page modules by their new directories
aiongg Oct 26, 2026
d449f2c
docs: name the ui-egui files by their new directories
aiongg Oct 26, 2026
323172e
test(automation): end the file access scan at the test module, not at…
aiongg Oct 26, 2026
f022ef0
style: cargo fmt on moved files
aiongg Oct 26, 2026
1dd2737
Merge pull request #4889 from aiongg/layout
aiongg Oct 27, 2026
32df177
feat(installer): default to a per-user ArtCraft folder
Jeremy8776 Oct 26, 2026
c39a0f3
fix(installer): address scope and ARM64 review feedback
Jeremy8776 Oct 27, 2026
c1670d0
fix(installer): keep the desktop shortcut on a machine-wide update; h…
Jeremy8776 Oct 27, 2026
315e7fa
docs(installer): describe the per-user default install location and s…
Jeremy8776 Oct 27, 2026
c56a4b3
docs(installer): note that the 32-bit all-users folder is Program Fil…
Jeremy8776 Oct 27, 2026
4580e5c
fix(installer): resolve the wizard scope and folder correctly
Jeremy8776 Oct 27, 2026
37bf4ee
perf(engine): export page images on worker threads
Silvertree2010 Oct 27, 2026
e9fc890
Merge pull request #5026 from Silvertree2010/perf/export-speed
aiongg Oct 27, 2026
da8cea2
M10: reuse verified OCR model and packaging prerequisites
KyleKassen Oct 27, 2026
bf353cb
fix(installer): check the exact architecture-specific machine folder
Jeremy8776 Oct 27, 2026
1889690
Merge pull request #5039 from Jeremy8776/fix/ocr-model-onnx-urls
aiongg Oct 27, 2026
9e90b2a
refactor(ui): use craft-ui's ComboBox for every dropdown (#4988)
aiongg Oct 27, 2026
e895573
Merge storytold/pdfcraft main
Oct 27, 2026
dfb74c7
ci: use storytold/craft-common-actions windows-arm64 workflow
Oct 27, 2026
b351633
Merge origin/main into pc-parity-notes
Harrison-Booth Oct 27, 2026
5af1027
Merge pull request #4892 from Jeremy8776/feat/install-scope-policy
aiongg Oct 27, 2026
d8b2f32
Qualify the encryption notes for documents that leave metadata unencr…
Harrison-Booth Oct 27, 2026
7d1ed99
Refactor annot for strict Clippy checks
dylanmtaylor Oct 27, 2026
9d97546
Refactor automation for strict Clippy checks
dylanmtaylor Oct 27, 2026
84c873d
Refactor cos for strict Clippy checks
dylanmtaylor Oct 27, 2026
de73c35
Refactor edit for strict Clippy checks
dylanmtaylor Oct 27, 2026
166f706
Refactor engine for strict Clippy checks
dylanmtaylor Oct 27, 2026
5e75b9c
Refactor export for strict Clippy checks
dylanmtaylor Oct 27, 2026
4965e23
Refactor forms for strict Clippy checks
dylanmtaylor Oct 27, 2026
a059881
Refactor js for strict Clippy checks
dylanmtaylor Oct 27, 2026
f40a578
Refactor organize for strict Clippy checks
dylanmtaylor Oct 27, 2026
530e2a2
Refactor pdfcraft-cli for strict Clippy checks
dylanmtaylor Oct 27, 2026
c043c82
Refactor preflight for strict Clippy checks
dylanmtaylor Oct 27, 2026
bc89733
Refactor print for strict Clippy checks
dylanmtaylor Oct 27, 2026
33e23da
Refactor redact for strict Clippy checks
dylanmtaylor Oct 27, 2026
a119095
Refactor render for strict Clippy checks
dylanmtaylor Oct 27, 2026
074d4f3
Refactor sign for strict Clippy checks
dylanmtaylor Oct 27, 2026
e7a60f2
Refactor ui canvas for strict Clippy checks
dylanmtaylor Oct 27, 2026
f796c71
Refactor ui commands for strict Clippy checks
dylanmtaylor Oct 27, 2026
bf89bf9
Refactor ui dialogs for strict Clippy checks
dylanmtaylor Oct 27, 2026
2d27306
Refactor ui support for strict Clippy checks
dylanmtaylor Oct 27, 2026
21cae66
Refactor ui tools for strict Clippy checks
dylanmtaylor Oct 27, 2026
2ca9275
Refactor ui workflows for strict Clippy checks
dylanmtaylor Oct 27, 2026
9530dbb
Refactor xfa for strict Clippy checks
dylanmtaylor Oct 27, 2026
92bc2f9
Refactor xfdf for strict Clippy checks
dylanmtaylor Oct 27, 2026
d95ff38
Enforce workspace Clippy standards and document lint policy
dylanmtaylor Oct 27, 2026
63bc58a
Fix menu overflow and form pointer handling
dylanmtaylor Oct 27, 2026
81c63c0
Group annotation, form and document operation parameters
dylanmtaylor Oct 27, 2026
5fecdb9
Group signing and timestamp validation inputs
dylanmtaylor Oct 27, 2026
775d6a4
Group demo form field properties
dylanmtaylor Oct 27, 2026
31833c9
Group UI interaction and rendering parameters
dylanmtaylor Oct 27, 2026
76ce895
Restore translated security and shortcut labels
dylanmtaylor Oct 27, 2026
ef894ae
Fix platform-gated imports for Windows and wasm builds
dylanmtaylor Oct 28, 2026
ad95afb
Qualify signing calls for macOS and Windows builds
dylanmtaylor Oct 28, 2026
e496635
Restore the preflight check flow and the overflow menu title
dylanmtaylor Oct 28, 2026
3932ee0
Enforce Rust coding standards via Clippy (#4897)
dylanmtaylor Oct 28, 2026
20eebc1
deps: pin craft-libs at e11f9d9a so Cargo before 1.99 loads craft-men…
aiongg Oct 28, 2026
d95db34
Merge origin/main into pc-parity-notes
Harrison-Booth Oct 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Minimum cargo-nextest for this repository: GHSA-vc25-qg58-w57c is fixed in 0.9.150 and CI
# installs exactly that version, so an older nextest refuses to run (exit 92 REQUIRED_VERSION_NOT_MET).
nextest-version = "0.9.150"
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ jobs:
libxkbcommon-dev libwayland-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev
libgtk-3-dev qpdf poppler-utils
# cargo-deny for the deny step of `cargo xtask ci`, which requires it under CI.
tools: cargo-nextest@0.9.149,cargo-deny@0.20.2
tools: cargo-nextest@0.9.150,cargo-deny@0.20.2
# A missing oracle fails the job instead of printing a skip notice that reads as a pass.
linux-env: PDFCRAFT_ORACLES_REQUIRED=1
windows-env: PDFCRAFT_REQUIRE_WINRES=1
Expand Down
24 changes: 24 additions & 0 deletions .github/workflows/packaging-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,27 @@ jobs:
lint:
# Intentionally tracked at @main (not SHA-pinned) so org-wide CI improvements, security fixes, and build optimizations propagate without PR churn across all craftapp repos.
uses: storytold/craft-common-actions/.github/workflows/packaging-lint.yml@main

windows-install-policy:
timeout-minutes: 10
name: Windows installation policy (no app build)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install the pinned packaging toolchain
shell: pwsh
run: |
$tools = Join-Path $env:RUNNER_TEMP 'craft-install-policy-wix'
dotnet tool install --tool-path $tools wix --version 5.0.2
if ($LASTEXITCODE -ne 0) { throw 'WiX installation failed.' }
$tools >> $env:GITHUB_PATH
$policy = Get-Content -Raw -LiteralPath packaging/windows/install-policy.json | ConvertFrom-Json
foreach ($extension in @($policy.extensions)) {
& (Join-Path $tools 'wix.exe') extension add -g "WixToolset.$extension.wixext/5.0.2"
if ($LASTEXITCODE -ne 0) { throw "WiX extension $extension installation failed." }
}
- name: Build and check non-executable installer fixtures
shell: pwsh
run: ./packaging/windows/test-install-policy.ps1 -OutputDirectory (Join-Path $env:RUNNER_TEMP 'craft-install-policy-tests')
5 changes: 3 additions & 2 deletions .github/workflows/windows-arm64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@ permissions:

jobs:
windows-arm64:
# Intentionally tracked at @main (not SHA-pinned) so org-wide CI improvements, security fixes, and build optimizations propagate without PR churn across all craftapp repos.
uses: storytold/craft-common-actions/.github/workflows/windows-arm64.yml@main
uses: storytold/craft-common-actions/.github/workflows/windows-arm64.yml@8bb4e5ab95443171104ad88113fe1ef9b0e5ce3f
with:
app-name: pdfcraft
app-dir: PdfCraft
install-relative-path: Programs/ArtCraft/PdfCraft
install-scope: perUser
72 changes: 36 additions & 36 deletions ATTRIBUTION.md

Large diffs are not rendered by default.

84 changes: 42 additions & 42 deletions ATTRIBUTION.toml

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ PdfCraft is a clean-room, open-source, Rust-native PDF application targeting Ado
- **Rebasing is a review step, not a mechanical one.** Read every hunk you resolve, and the auto-merged hunks in the files you touched too — `main` moves fast enough that a file can change by hundreds of lines under a branch.
- **External PRs are held to safety, security and completeness before style.** Provenance first (no Adobe-derived asset, no committed font, no copied GPL/AGPL code, behaviour from the spec and not from reading another implementation), then no new panic path or `unsafe`, then `--root` confinement on every path including ones reached by nested dispatch, opt-in-only MCP and control channel, no new outbound network, then a headless `automation` tool, tests at the right zoom and an honest `parity/` entry. Provenance is the part a contributor cannot be expected to know, and the only part that cannot be undone after merge.
- **Quality gates** before every commit: `cargo fmt --check`, clippy with `-D warnings`, the tests, `cargo xtask layers`, `cargo xtask assets`, and the wasm check once `xtask ci` exists (M0).
- New workspace crates must include `[lints] workspace = true` in `Cargo.toml` to inherit `[workspace.lints]`. Production crate roots must declare the required crate-level lint attributes before modules or other crate items; crate-level `//!` documentation may precede them.
- **Scope builds and tests to the crates you touched** — `cargo clippy -p <crate> -j 2 --all-targets` and `cargo test -p <crate> -j 2`, under a `timeout`. A full `--workspace` build has locked up a development machine's CPU; it is CI's job and CI runs it on every PR. Run the workspace sweep locally only when you have a reason to and the machine is free.
- **Check for existing work before starting a fix or feature.** Search the issues and PRs, open and closed, with `gh issue list -R storytold/pdfcraft --state all --search "<terms>"` and the same with `gh pr list` (try a few phrasings), and check whether a merged fix is already on `main` (`git merge-base --is-ancestor <commit> origin/main`). If one is, the report is likely from an older build: say so rather than fixing it again. If an open PR covers it, review or build on that PR instead of opening a competing one. If an issue exists, reference it in the PR (`Fixes #123`).
- **Commits and PRs:** `main` is the only integration branch and is **never pushed to directly**. Branch from an up-to-date `main` as `<type>/<slug>` (`feat/`, `fix/`, `docs/`, `chore/`, `refactor/`), one task id per commit (e.g. `M1.4: xref stream reader`), commit only green states, and open a PR into `main` using `.github/pull_request_template.md`. Merge only when CI is green.
Expand Down
Loading
Loading