Add GitHub Actions workflows for CI and release builds, packaging scripts for Windows, macOS, Linux, and Flatpak/Snap distribution, application icons, desktop files, and release metadata resources.
3.7 KiB
3.7 KiB
Flathub Submission for Signed
This directory contains the files needed to submit Signed to Flathub.
Prerequisites
- Flatpak installed
flatpak-builderinstalled- Rust/Cargo installed (for vendoring)
Quick Start
Run the preparation script from the repo root:
./script/prepare-flathub
This will:
- Vendor all Rust dependencies (crates.io + git)
- Generate the metainfo.xml with proper release info
- Create
su.reya.signed.yml- the Flatpak manifest for Flathub
Files Generated
| File | Purpose |
|---|---|
su.reya.signed.yml |
Main Flatpak manifest (submit this to Flathub) |
su.reya.signed.metainfo.xml |
AppStream metadata with release info |
vendor.tar.gz |
Vendored Rust dependencies |
cargo-config.toml |
Cargo configuration for offline builds |
release-info.xml |
Release info snippet for metainfo |
Testing Locally
Before submitting to Flathub, test the build:
cd flathub
# Build and install locally
flatpak-builder --user --install --force-clean build su.reya.signed.yml
# Test the app
flatpak run su.reya.signed
# Run the Flathub linter (must pass!)
flatpak run --command=flatpak-builder-lint org.flatpak.Builder manifest su.reya.signed.yml
flatpak run --command=flatpak-builder-lint org.flatpak.Builder repo repo
Submitting to Flathub
1. Prepare Your Release
Ensure you have:
- Committed all changes
- Tagged the release:
git tag -a v0.1.0 -m "Release v0.1.0" - Pushed the tag:
git push origin v0.1.0 - Run
./script/prepare-flathubto regenerate files
2. Fork and Submit
# Fork https://github.com/flathub/flathub on GitHub first
# Clone your fork (use the new-pr branch!)
git clone --branch=new-pr git@github.com:YOUR_USERNAME/flathub.git
cd flathub
# Create a new branch
git checkout -b su.reya.signed
# Copy ONLY the manifest file from your project
cp /path/to/signed/flathub/su.reya.signed.yml .
# Commit and push
git add su.reya.signed.yml
git commit -m "Add su.reya.signed"
git push origin su.reya.signed
3. Open Pull Request
- Go to your fork on GitHub
- Click "Compare & pull request"
- Important: Set base branch to
new-pr(notmaster!) - Fill in the PR template
- Submit and wait for review
What Happens Next?
- Flathub's automated CI will build your app
- A maintainer will review your submission
- Once approved, a new repo
flathub/su.reya.signedwill be created - You'll get write access to maintain the app
- Future updates: Push new commits to
flathub/su.reya.signed
Updating the App
To release a new version:
- Update version in workspace
Cargo.toml - Tag the new release:
git tag -a v0.1.0 -m "Release v0.1.0" - Push the tag:
git push origin v0.1.0 - Run
./script/prepare-flathubto regenerate - Clone the flathub repo:
git clone https://github.com/flathub/su.reya.signed.git - Update the manifest with new commit/tag and hashes
- Submit PR to
flathub/su.reya.signed
Troubleshooting
Build fails with "network access not allowed"
- Make sure
CARGO_NET_OFFLINE=trueis set in the manifest - Ensure
vendor.tar.gzis properly extracted before building
Linter complains about metainfo
- Ensure
su.reya.signed.metainfo.xmlhas at least one<release>entry - Add accessible screenshot URLs if required
Missing dependencies
- If new git dependencies are added, re-run
script/prepare-flathub - The script vendors all dependencies from
Cargo.lock