Skip to content

Latest commit

 

History

History
127 lines (100 loc) · 3.66 KB

File metadata and controls

127 lines (100 loc) · 3.66 KB

Contributing to Parfait

Thanks for helping improve Parfait. This guide covers the current development workflow, coding expectations, and Flatpak packaging details for the rebranded app.

Project Basics

  • Product name: Parfait
  • Cargo package: parfait
  • Flatpak app ID: dev.pinkpixel.Parfait
  • Current repository URL: https://github.com/pinkpixel-dev/parfait

Local Setup

git clone https://github.com/YOUR_USERNAME/parfait.git
cd parfait

Install the platform dependencies your distro needs, then use the standard Rust + Meson flow:

cargo build
cargo run
cargo test
cargo fmt
cargo clippy

Meson / Flatpak

meson setup builddir
meson compile -C builddir

flatpak-builder --user --install --force-clean build-dir dev.pinkpixel.Parfait.yml
flatpak run dev.pinkpixel.Parfait

Native Linux Packages

./packaging/linux/build-packages.sh appimage

The native packaging flow currently focuses on a tested AppImage path. It stages the Meson install tree under dist/linux-packages/, then turns that staged layout into an AppImage with appimagetool. CI uses the same script through .github/workflows/linux-packages.yml. The final distributable file lands at dist/linux-packages/artifacts/Parfait.AppImage.

The current manifest is pinned to the remote v1.0.0 git tag so local Flatpak tests match the tagged release snapshot on GitHub. You do not need a published GitHub Release page for flatpak-builder; the pushed git tag is the important part.

Coding Guidelines

  • Follow the existing Rust style and keep cargo fmt clean.
  • Run cargo clippy and address warnings when your change touches code.
  • Preserve GTK4/Libadwaita conventions already used in src/window.rs.
  • Prefer focused changes and update documentation with every user-facing change.

Documentation Checklist

When you change functionality or packaging, update:

  • README.md
  • CHANGELOG.md
  • OVERVIEW.md
  • ROADMAP.md
  • dev/OVERVIEW.md
  • dev/ROADMAP.md
  • dev/FLATHUB-SUBMISSION-GUIDE.md
  • dev/LINUX-PACKAGING.md
  • relevant files in dev/

Project Structure

parfait/
├── src/
│   ├── main.rs
│   ├── window.rs
│   ├── converter.rs
│   ├── batch.rs
│   ├── preferences.rs
│   └── preview.rs
├── data/
│   ├── icons/
│   ├── dev.pinkpixel.Parfait.desktop.in
│   ├── dev.pinkpixel.Parfait.metainfo.xml.in
│   └── dev.pinkpixel.Parfait.gschema.xml
├── dev.pinkpixel.Parfait.yml
├── packaging/
│   └── linux/
│       ├── AppRun
│       ├── build-packages.sh
│       ├── nfpm.yaml
│       └── scripts/
├── parfait-cargo-sources.json
├── rav1e-cargo-sources.json
└── meson.build

Pull Requests

  1. Create a branch from main.
  2. Make the smallest change set that solves the problem.
  3. Run the relevant validation commands.
  4. Update docs and packaging metadata when needed.
  5. Submit a PR with a clear description and screenshots for UI changes.

Manual QA

Before opening a PR, verify:

  • The app launches as Parfait
  • Drag-and-drop still works
  • All format options convert successfully
  • The output directory chooser behaves correctly
  • About dialog and desktop metadata show the new brand
  • The launcher and software-center icon use the transparent circular artwork without the old square background
  • Flatpak metadata still validates after any packaging edit
  • Native package artifacts build successfully when packaging metadata changes
  • The AppImage launches successfully after packaging changes

Thanks for contributing to Parfait and helping Pink Pixel keep its Linux release flow polished.