flutpak 0.2.0
flutpak: ^0.2.0 copied to clipboard
CLI tool that generates Flatpak manifests and offline source bundles for Flutter applications. One command prepares everything needed for a Flathub-compatible offline build: generated-sources.json, ma [...]
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased #
0.2.0 - 2026-05-19 #
Added #
lintcommand —flatpak-builder-lintwrapper (requiresorg.flatpak.Builder)exportcommand — collects manifest,generated-sources.json, metainfo, and patches into a ready-to-submit directoryvalidatecommand —appstream-util validatewrapper for AppStream metainfo- Metainfo XML generation from
manifest.metainfo:config (name, summary, description, categories, keywords, URLs, screenshots, OARS content rating) .desktopfile generation frommanifest.desktop:configprepare --dry-run/-n— prints what would be written without touching any filespin-manifestcomposite action:flutter_version/flutter_version_fileinputs (one required),config,validate,flutpak_binarytest-action.yml— CI workflow that builds the binary from source and smoke-tests the action
Changed #
output:config field is now a directory (default:flatpak);generated-sources.jsonis always written as<output>/generated-sources.json--outputCLI flag is now a directory in all sub-commands (sources,pub,flutter,manifest)- All commands resolve paths relative to the config file directory, not CWD
pin-manifestaction: replacedflatpak_dirinput withconfig+flutter_version/flutter_version_file
Fixed #
- Screenshot URL pinning uses git tag date for deterministic release dates
ScreenshotConfig.fromYamlhandles non-Map input safely
0.1.0 - 2026-05-19 #
Added #
preparecommand — one-shot: generates sources, resolves patches, creates/updates manifest, pins metainfo screenshot URLs to tag/commit- Config in
pubspec.yaml(flutpak:section) or standaloneflutpak.yaml(error if both exist) - Manifest generation with
__FLATPAK_TAG__/__FLATPAK_COMMIT__placeholders that CI replaces on each release extra_modules— include verbatim YAML module files into the manifestextra_sources— arch-specific verbatim flatpak sources (e.g. prebuilt C libraries)envat manifest level merged withbuild_options.envflutter_version_file— writes the Flutter SDK version string to a file for CI.desktopfile generation fromdesktop:config (name,categories)sdk-extensionsauto-wires LLVM bin/lib paths intoappend-path/prepend-ld-library-path- Flutter SDK
bin/always appended toappend-pathautomatically - Patches registry —
objectbox_flutter_libsandsqflite_common_ffiresolved automatically when found inpubspec.lock - Project-level
patches:config with version auto-resolved from lock file - Patch paths made relative to the manifest directory for correct flatpak-builder resolution
- Retry with exponential back-off (2 s → 4 s → 8 s) on HTTP 429 / 5xx for pub.dev API and Flutter SDK artifact downloads
- Warning when
--commitis not available and__FLATPAK_COMMIT__would remain in the manifest - Warning when
extra_modulesfile is not found - Validation of required
manifest.app_idandmanifest.commandfields with clear error messages - SHA-256 download cache at
~/.cache/flutpak/to avoid redundant Flutter artifact downloads across runs # Generated by flutpakheader in manifest,.desktop, andflutter.versionoutput files- MIT License