chore: sync upstream (16 Commits) #9

Merged
alf merged 16 commits from chore/sync-upstream-20261024 into main 2026-10-24 10:13:00 +00:00
Owner

Upstream-Sync von upstream/main (16 Commits). Fast-Forward.

  • cf2fe473 Sonar S7682: explicit return in env.sh helpers (#4105)
  • ba7e7293 Sonar S1612: pass PoisonError::into_inner instead of a closure (#4102)
  • 01d0c634 Sonar S1612: use fn paths for simple method closures (#4103)
  • 47edcd2f chore: resolve SonarCloud maintainability issues (#4083)
  • c524027f PDF: pin craft-libs 9f75d3dc for the PNG and PDF input bounds (#4084)
  • 14001aee Proofing options reach the Czech, Croatian, Indonesian, Italian, Polish and Portuguese checks (#3966)
  • 478fd445 Merge pull request #4072 from benandez/craft-i18n-pilot
  • 85877b18 Merge main into craft-i18n-pilot
  • 67a0e723 Options › Language names the proofing language at the caret (#3150) (#3177)
  • 8fceea26 chore(i18n): remove the in-repo catalogs and parser
  • 2d90f2d0 feat(i18n): look interface strings up through the craft-i18n crate
  • e649cd09 build(i18n): embed the craft-i18n catalogs pinned in craft-i18n.rev
  • 3ed7fe97 Change Case follows each run's language for Turkic casing (#3479) (#3480)
  • 7086f8a4 Packaging: pin the signing client and appimagetool, and check their hashes (#3326)
  • e23d383b ci(sonar): don't cancel superseded runs on main, so coverage is published (#4070)
Upstream-Sync von `upstream/main` (16 Commits). Fast-Forward. - cf2fe473 Sonar S7682: explicit return in env.sh helpers (#4105) - ba7e7293 Sonar S1612: pass PoisonError::into_inner instead of a closure (#4102) - 01d0c634 Sonar S1612: use fn paths for simple method closures (#4103) - 47edcd2f chore: resolve SonarCloud maintainability issues (#4083) - c524027f PDF: pin craft-libs 9f75d3dc for the PNG and PDF input bounds (#4084) - 14001aee Proofing options reach the Czech, Croatian, Indonesian, Italian, Polish and Portuguese checks (#3966) - 478fd445 Merge pull request #4072 from benandez/craft-i18n-pilot - 85877b18 Merge main into craft-i18n-pilot - 67a0e723 Options › Language names the proofing language at the caret (#3150) (#3177) - 8fceea26 chore(i18n): remove the in-repo catalogs and parser - 2d90f2d0 feat(i18n): look interface strings up through the craft-i18n crate - e649cd09 build(i18n): embed the craft-i18n catalogs pinned in craft-i18n.rev - 3ed7fe97 Change Case follows each run's language for Turkic casing (#3479) (#3480) - 7086f8a4 Packaging: pin the signing client and appimagetool, and check their hashes (#3326) - e23d383b ci(sonar): don't cancel superseded runs on main, so coverage is published (#4070)
alf added 16 commits 2026-10-24 10:12:59 +00:00
* CI: line-table debug info for dev builds, none for dependencies

* CI: one integration-test binary per crate

* CI: nextest with doctests, test build without examples, one wasm check

* CI: the interface audit reports missing catalog entries instead of failing

* i18n tests: the same checks for every language, none fail on a missing translation

* i18n tests: mechanism tests use fixtures, not catalog text

* Docs: the interface audit, not CI as a whole, passes with missing catalog entries

* i18n tests: disabled reasons a catalog lacks are reported, not a failure

* i18n tests: one missing-translation report, printed by cargo xtask ci

* i18n docs: the missing-translation report

* xtask: the i18n report reuses the test run's build
* Packaging: pin the Windows signing client and check its hash

* Packaging: pin appimagetool and check its hash

* Packaging: pin the AppImage runtime and stop clearly when an architecture has no pinned tool

* Packaging: empty hashes are quoted
Co-authored-by: aiongg <67543387+aiongg@users.noreply.github.com>
Adds the craft-i18n crate (craft-libs f7cc8a7, storytold/craft-libs#247)
and the build.rs recipe from craft-i18n's docs/integration.md: with
CRAFT_I18N_DIR set, CRAFT_I18N embeds each locale's common.tsv and
wordcraft.tsv (paths via {:?}, never canonicalized); unset, it is empty
and the build is English only; CRAFT_I18N_REQUIRED=1 makes that an
error. craft-i18n.rev pins storytold/craft-i18n be1f053 (LF via
.gitattributes); the flatpak manifest checks out the same commit and
sets CRAFT_I18N_DIR.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The i18n module becomes a thin wrapper over craft_i18n::I18n built from
the embedded catalogs, offering exactly LANGUAGES (slimmed to code,
prefer_hans, editing_lang; names come from @id language.name).
WORDCRAFT_LANGUAGE and the sys-locale read stay; non-Brazilian pt-* stays
English before the crate's matching (test). The pseudo-language uses
the crate's Lang::PSEUDO and looked_up(). The Design tab's "Open"
spacing preset uses get("spacing", "Open") so it never shows the file
verb. The missing-translation report adds check_all() problems and a
kept-English bucket and never fails; the untranslated-text audit still
fails on text that skips tl!. Catalog-dependent tests skip with a note
when nothing was embedded; a test keeps the flatpak commit equal to
craft-i18n.rev.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
crates/ui-egui/src/i18n/*.tsv and catalog.rs are gone: translations live
in storytold/craft-i18n (locales/<l>/wordcraft.tsv, synced at
wordcraft@806a945) and are credited in its ATTRIBUTION.md. To carry an
open PR's catalog rows over, from a craft-i18n checkout:

  tools/sync_app.py ../wordcraft 806a945d85 --ref <branch>

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The note under "Proofing language" always said English (United States). It now names
the language at the caret, as the status bar does, and the 22 catalogs carry the new sentence.

Co-authored-by: Naxvog <4963183+naxvog@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: aiongg <67543387+aiongg@users.noreply.github.com>
Catalog rows from #3480 and #3177 move to craft-i18n (storytold/craft-i18n sync/wordcraft-topup); the pin moves to 04600cb.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
i18n: interface translations from craft-i18n (pilot)
Each of these languages accepted every word in capitals of up to six letters and every word
with a digit on its own, so turning off Ignore words in UPPERCASE or Ignore words that contain
numbers had no effect on them for short words. The check now takes the options, as the Spanish
one does; the direct is_correct/is_correct_with keep the defaults.

Co-authored-by: Federico Olivares <FedeOlivares@users.noreply.github.com>
Co-authored-by: aiongg <67543387+aiongg@users.noreply.github.com>
* #1365: PDF: pin craft-libs main, whose Krilla leaves out simple-text (no rustybuzz, ttf-parser)

craft-libs 8f5a2831 turns Krilla's default features off in the shared
workspace and keeps raster-images, so simple-text (the only path to the
unmaintained rustybuzz and ttf-parser) is no longer built. WordCraft
shapes text itself and hands Krilla positioned glyphs. The vendored Krilla
and craft-pdf's writer are unchanged between the two revisions.

Cargo.lock loses rustybuzz, ttf-parser, core_maths,
unicode-bidi-mirroring, unicode-ccc and unicode-properties.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* #1365: docs/shared-pdf.md: rewrap the backend features paragraph

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* PDF: pin craft-libs main, which bounds decoded PNG images in Krilla

* PDF: pin craft-libs 9f75d3dc, with the PDF input bounds of craft-libs#254

---------

Co-authored-by: rabis <340973947+rabis7575@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* chore: resolve SonarCloud maintainability issues

* fix: restore compiling refactors, revert behaviour changes, run cargo fmt

- fontdb::norm: keep the closure for filter (char::is_alphanumeric takes
  self, not &self, so it does not fit Iterator::filter).
- story.rs: write_mark_rpr needs &mut self (rev_attrs, rpr_change).
- Revert the viewport meta change and the return 0 added to
  workspace_version/sha256, which changed behaviour or masked failures.
- cargo fmt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Import Document in odt page_parts after dropping glob re-export

* fix: apply_kind_properties binds ContentControl; cell_ref keeps char closures

* fix(engine): pass case helpers by value (clippy needless borrows)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Dylan Taylor <dylan@craftmaker.dev>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Sonar S7682: explicit return in env.sh helpers (#4105)
Some checks failed
ci.yml / Sonar S7682: explicit return in env.sh helpers (#4105) (pull_request) Failing after 0s
nix.yml / Sonar S7682: explicit return in env.sh helpers (#4105) (pull_request) Failing after 0s
packaging-lint.yml / Sonar S7682: explicit return in env.sh helpers (#4105) (pull_request) Failing after 0s
sonarcloud.yml / Sonar S7682: explicit return in env.sh helpers (#4105) (pull_request) Failing after 0s
ci.yml / Sonar S7682: explicit return in env.sh helpers (#4105) (push) Failing after 0s
nix.yml / Sonar S7682: explicit return in env.sh helpers (#4105) (push) Failing after 0s
packaging-lint.yml / Sonar S7682: explicit return in env.sh helpers (#4105) (push) Failing after 0s
sonarcloud.yml / Sonar S7682: explicit return in env.sh helpers (#4105) (push) Failing after 0s
Printing / Print (macos-latest) (pull_request) Has been cancelled
Printing / Print (ubuntu-24.04) (pull_request) Has been cancelled
Printing / Print (windows-latest) (pull_request) Has been cancelled
Printing / Print (macos-latest) (push) Has been cancelled
Printing / Print (ubuntu-24.04) (push) Has been cancelled
Printing / Print (windows-latest) (push) Has been cancelled
cf2fe4733e
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
alf merged commit cf2fe4733e into main 2026-10-24 10:13:00 +00:00
alf deleted branch chore/sync-upstream-20261024 2026-10-24 10:13:01 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/wordcraft!9
No description provided.