Fix Flatpak updates and bump to 0.17.1 (#2267)

* fix(flatpak): allow release checks and self-update helpers

* test: keep Flatpak permission parsing within strict Clippy rules

* chore: bump version to 0.17.1 for the Flatpak update fix
This commit is contained in:
Dylan M. Taylor
2026-11-11 15:01:36 -05:00
committed by GitHub
parent 554ad0ea77
commit 898bfc2e60
5 changed files with 54 additions and 23 deletions
Generated
+22 -22
View File
@@ -1785,7 +1785,7 @@ checksum = "b97b65636e5b9ef369943878ac74335ba1c55c1cb6adbf1e2c293c624248d693"
[[package]]
name = "figcraft"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"arboard",
"craft-menu",
@@ -1817,7 +1817,7 @@ dependencies = [
[[package]]
name = "figcraft-cli"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"clap",
"clap_complete",
@@ -1835,7 +1835,7 @@ dependencies = [
[[package]]
name = "figcraft-collab"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"base64 0.22.1",
"chrono",
@@ -1853,7 +1853,7 @@ dependencies = [
[[package]]
name = "figcraft-collab-net"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"base64 0.22.1",
"figcraft-collab",
@@ -1876,7 +1876,7 @@ dependencies = [
[[package]]
name = "figcraft-color"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"kurbo",
"serde",
@@ -1885,7 +1885,7 @@ dependencies = [
[[package]]
name = "figcraft-doc"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"figcraft-color",
"figcraft-geom",
@@ -1898,7 +1898,7 @@ dependencies = [
[[package]]
name = "figcraft-engine"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"base64 0.22.1",
"craft-docpath",
@@ -1932,7 +1932,7 @@ dependencies = [
[[package]]
name = "figcraft-format"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"figcraft-doc",
"figcraft-layout",
@@ -1949,7 +1949,7 @@ dependencies = [
[[package]]
name = "figcraft-geom"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"kurbo",
"serde",
@@ -1957,7 +1957,7 @@ dependencies = [
[[package]]
name = "figcraft-layout"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"figcraft-doc",
"figcraft-geom",
@@ -1965,7 +1965,7 @@ dependencies = [
[[package]]
name = "figcraft-mcp"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"base64 0.22.1",
"figcraft-collab-net",
@@ -1981,7 +1981,7 @@ dependencies = [
[[package]]
name = "figcraft-pathops"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"figcraft-doc",
"figcraft-geom",
@@ -1990,7 +1990,7 @@ dependencies = [
[[package]]
name = "figcraft-pdf"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"figcraft-color",
"figcraft-doc",
@@ -2007,7 +2007,7 @@ dependencies = [
[[package]]
name = "figcraft-plugin"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"figcraft-color",
"serde",
@@ -2020,7 +2020,7 @@ dependencies = [
[[package]]
name = "figcraft-render"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"crc32fast",
"figcraft-color",
@@ -2039,7 +2039,7 @@ dependencies = [
[[package]]
name = "figcraft-server"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"chrono",
"crc32fast",
@@ -2064,7 +2064,7 @@ dependencies = [
[[package]]
name = "figcraft-svg"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"base64 0.22.1",
"figcraft-color",
@@ -2080,7 +2080,7 @@ dependencies = [
[[package]]
name = "figcraft-text"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"core-text",
"craft-font-catalog",
@@ -2098,7 +2098,7 @@ dependencies = [
[[package]]
name = "figcraft-ui-egui"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"base64 0.22.1",
"chrono",
@@ -2126,7 +2126,7 @@ dependencies = [
[[package]]
name = "figcraft-vectordrawable"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"figcraft-color",
"figcraft-doc",
@@ -2140,7 +2140,7 @@ dependencies = [
[[package]]
name = "figcraft-web"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"base64 0.22.1",
"craft-web-api",
@@ -6763,7 +6763,7 @@ checksum = "9440ea3e5aeabb0ac63af70daf835274065238cdd0cec83418f417eae38bacee"
[[package]]
name = "xtask"
version = "0.15.0"
version = "0.17.1"
dependencies = [
"figcraft-engine",
"serde_json",
+1 -1
View File
@@ -6,7 +6,7 @@ exclude = ["plugins"]
# default-members = ["crates/*", "apps/figcraft", "apps/figcraft-cli", "xtask"]
[workspace.package]
version = "0.15.0"
version = "0.17.1"
edition = "2024"
license = "MIT OR Apache-2.0"
rust-version = "1.95"
+27
View File
@@ -0,0 +1,27 @@
//! Release and source Flatpaks must allow release checks and host update helpers.
fn finish_args(manifest: &str) -> Vec<&str> {
manifest
.split("finish-args:")
.nth(1)
.unwrap_or_default()
.lines()
.take_while(|line| line.is_empty() || line.starts_with(' ') || line.starts_with('#'))
.filter_map(|line| line.trim().strip_prefix("- "))
.map(|arg| arg.trim_matches(['\'', '"']))
.collect()
}
#[test]
fn flatpak_update_permissions() {
let manifests = [
include_str!("../../../packaging/linux/flatpak/ai.storyteller.figcraft.bundle.yml"),
include_str!("../../../packaging/linux/flatpak/ai.storyteller.figcraft.yml"),
];
let args = manifests.map(finish_args);
assert_eq!(args[0], args[1], "source and release permissions must agree");
for permissions in args {
for required in ["--share=network", "--talk-name=org.freedesktop.Flatpak"] {
assert!(permissions.contains(&required), "missing update permission: {required}");
}
}
}
@@ -17,6 +17,8 @@ runtime-version: '26.08'
sdk: org.freedesktop.Sdk
command: figcraft
finish-args:
# The shared updater inspects and updates this installation via flatpak-spawn --host.
- --talk-name=org.freedesktop.Flatpak
- --filesystem=xdg-data/ArtCraft/versions:ro
# Display: Wayland first; X11 only when no Wayland compositor is running.
- --socket=wayland
@@ -22,6 +22,8 @@ sdk-extensions:
- org.freedesktop.Sdk.Extension.rust-stable
command: figcraft
finish-args:
# The shared updater inspects and updates this installation via flatpak-spawn --host.
- --talk-name=org.freedesktop.Flatpak
- --filesystem=xdg-data/ArtCraft/versions:ro
# Display: Wayland first; X11 only when no Wayland compositor is running.
- --socket=wayland