Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/workflows/packaging-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,27 @@ jobs:
# 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

# Store readiness (ADR 0094): the metadata Flathub, AppStream consumers and winget/MSIX read.
# Checks only; nothing is submitted (submissions are the team's job, docs/release.md).
store-readiness:
timeout-minutes: 10
name: Store readiness (Flatpak, AppStream, winget/MSIX)
runs-on: ubuntu-24.04
steps:
- name: Harden runner
uses: step-security/harden-runner@1d88384fd173af6ecb012dfd0264a306b711241a # v2.22.4
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install the validators
run: |
sudo apt-get update -qq
sudo apt-get install -y --no-install-recommends appstream desktop-file-utils python3-yaml
- name: Check store metadata
run: packaging/check-store-readiness.sh

windows-install-policy:
timeout-minutes: 15
name: Windows installation policy (no app build)
Expand Down
1 change: 1 addition & 0 deletions ATTRIBUTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ OR Apache-2.0) is noted in the table.
| Hairlines: coverage falling off with the distance from the pixel centre to the line | `crates/render/src/hairline.rs`, `crates/gpu/src/fine.wgsl` | S. Gupta and R. F. Sproull, *Filtering Edges for Gray-Scale Displays* (SIGGRAPH 1981): anti-aliased lines by distance; standard | Public method; a one-pixel tent filter of the distance (ADR 0048). |
| Plural categories for whole numbers (zero, one, two, few, many, other) | `src/i18n/plural.rs` | Unicode CLDR, *Language Plural Rules* (`common/supplemental/plurals.xml`), <https://cldr.unicode.org>, Unicode License v3 (Unicode-3.0) | The integer rules rewritten as Rust `match`es from the published rules; no CLDR data file is bundled. |
| Stage elements as a multi-select list box; menu bar keyboard model (Alt/F10, arrows, access keys) | `src/stage_a11y.rs`, `src/menus.rs` | W3C *WAI-ARIA Authoring Practices Guide*, Listbox and Menubar patterns, <https://www.w3.org/WAI/ARIA/apg/> (W3C Software and Document License) | Keyboard behaviour learned from the published patterns; no code or text copied. |
| Desktop integration of an AppImage: desktop entry `Exec` quoting and string escapes, MIME packages, hicolor icons, the user's data folder | `crates/engine/src/cmds_desktop.rs`, `src/platform.rs` | freedesktop.org *Desktop Entry Specification* 1.5, *Shared MIME-info Database*, *Icon Theme Specification*, *XDG Base Directory Specification*, <https://specifications.freedesktop.org/>; AppImage documentation on `$APPIMAGE` (public docs) | Written from the specifications (ADR 0094); no code copied. |
| Reading the desktop's contrast setting | `src/platform.rs` | *XDG Desktop Portal*, Settings interface, `org.freedesktop.appearance` `contrast` key, <https://flatpak.github.io/xdg-desktop-portal/> (LGPL documentation, read only; nothing bundled or linked) | One value read through the `gdbus` tool. |
| Interface catalog format (TSV keyed by English, `@plural`/`@id` rows, fallback order) | `src/i18n/catalog.rs`, `build.rs` | storytold/craft-i18n `docs/catalog-format.md` and `docs/integration.md` (MIT OR Apache-2.0, same project family) | Our own parser written from those documents; the craft-libs `craft-i18n` crate is not used (ADR 0040). |
| Adaptive Bézier flattening (Wang's formula) | `crates/geom/src/path.rs` | G.-J. Wang (1984); public mathematical result | |
Expand Down
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

## Unreleased

* **Portable copies and AppImage desktop integration** (ADR 0094, M8).
* **The Windows zip and the Linux tar.gz are portable**: preferences, autosaved work, logs,
plug-ins, templates, brushes, filter presets, workspaces and recent files stay in a `data`
folder beside AniCraft. A file named `anicraft-portable` next to the program (or next to
`AniCraft.app` or an `.AppImage`) is what makes a copy portable; delete it to use your user
folder. A portable folder that can't be written falls back to your user folder and says so.
* **Preferences › About** shows the version, whether this copy is installed or portable, and
every folder AniCraft keeps things in, each with an Open button.
* **AppImage: Add to Menu.** The first start from an AppImage offers once, in a card that
nothing waits on, to add AniCraft to your applications menu and open `.anicraft`, `.fla` and
`.xfl` files with it. Only `~/.local/share` changes; Preferences › About removes it again,
and the entry follows the AppImage when you move or update it. Headless:
`desktop.integrate`, `desktop.remove`, `desktop.status`.
* **Store readiness:** a Packaging lint job validates the Flatpak manifests, the AppStream
metainfo (`appstreamcli validate`), the desktop entry and any winget or MSIX manifests.
Nothing is submitted.

* **Brushes and erasing, second slice: tilt, textured brushes, erasing inside symbols, profiles
in the merge** (ADR 0093, M7).
* **Pen tilt** shapes the Brush: it turns the tip with the way the pen leans and paints up
Expand Down
Loading
Loading