docs: write PACKAGING.md — Debian, AppImage, RPM, Windows NSIS, macOS DMG, and branding assets #97

Closed
opened 2026-02-09 13:45:25 +00:00 by forbes · 1 comment
Owner

Tier 3 — Infrastructure

File: docs/PACKAGING.md

What this document should cover

  1. Package formats overview:

    • Linux: AppImage (squashfs, zstd), .deb (Debian/Ubuntu)
    • macOS: .dmg (native bundle, x86_64 and arm64)
    • Windows: .exe (NSIS installer), .7z archive
    • RPM: Fedora/RHEL (via package/fedora/)
  2. package/ directory breakdown:

    • debian/ — Debian package (build-deb.sh)
    • ubuntu/ — Ubuntu-specific packaging
    • fedora/ — RPM package for Fedora/RHEL
    • rattler-build/ — cross-platform bundle creation:
      • linux/create_bundle.sh — AppImage + .deb
      • osx/create_bundle.sh — macOS .dmg
      • windows/create_bundle.sh — Windows NSIS .exe + .7z
      • pixi.toml — packaging environment
    • WindowsInstaller/ — NSIS installer definition
      • Multi-language support (28 languages)
      • File associations, shortcuts, LZMA compression
  3. Branding assets (resources/):

    • branding/kindred-logo.svg — Kindred logo
    • branding/generate-splash.py — splash screen generation script
    • branding/generate-icons.sh — icon generation script
    • icons/kindred-create.ico — Windows icon
    • icons/kindred-create.icns — macOS icon
    • icons/hicolor/ — freedesktop icon theme hierarchy
  4. Desktop integration (src/XDGData/ + resources/):

    • FreeCAD.thumbnailer — thumbnail generator registration
    • org.freecad.FreeCAD.desktop — desktop entry file
    • org.freecad.FreeCAD.metainfo.xml — AppStream metadata
    • org.freecad.FreeCAD.xml — MIME type definition
    • resources/kindred-create.desktop — Kindred desktop entry
    • resources/kindred-create.xml — Kindred MIME type
  5. How to build a package:

    • Linux AppImage + deb via rattler-build
    • macOS DMG via rattler-build
    • Windows installer via NSIS
    • Fedora RPM
    • .packit.yaml — Packit service integration
  6. Updating branding:

    • Logo → resources/branding/kindred-logo.svg
    • Icons → run generate-icons.sh
    • Splash → run generate-splash.py

Key source files

  • package/ — all packaging scripts
  • resources/ — branding assets and desktop integration
  • src/XDGData/ — XDG desktop integration files
  • .packit.yaml — Packit configuration

Acceptance criteria

  • Every package format is documented with build instructions
  • Branding asset pipeline (logo → icons → splash) is explained
  • Desktop integration files are documented
  • A developer can produce a release artifact for their platform
## Tier 3 — Infrastructure **File:** `docs/PACKAGING.md` ### What this document should cover 1. **Package formats overview:** - Linux: AppImage (squashfs, zstd), `.deb` (Debian/Ubuntu) - macOS: `.dmg` (native bundle, x86_64 and arm64) - Windows: `.exe` (NSIS installer), `.7z` archive - RPM: Fedora/RHEL (via `package/fedora/`) 2. **`package/` directory breakdown:** - `debian/` — Debian package (`build-deb.sh`) - `ubuntu/` — Ubuntu-specific packaging - `fedora/` — RPM package for Fedora/RHEL - `rattler-build/` — cross-platform bundle creation: - `linux/create_bundle.sh` — AppImage + .deb - `osx/create_bundle.sh` — macOS .dmg - `windows/create_bundle.sh` — Windows NSIS .exe + .7z - `pixi.toml` — packaging environment - `WindowsInstaller/` — NSIS installer definition - Multi-language support (28 languages) - File associations, shortcuts, LZMA compression 3. **Branding assets** (`resources/`): - `branding/kindred-logo.svg` — Kindred logo - `branding/generate-splash.py` — splash screen generation script - `branding/generate-icons.sh` — icon generation script - `icons/kindred-create.ico` — Windows icon - `icons/kindred-create.icns` — macOS icon - `icons/hicolor/` — freedesktop icon theme hierarchy 4. **Desktop integration** (`src/XDGData/` + `resources/`): - `FreeCAD.thumbnailer` — thumbnail generator registration - `org.freecad.FreeCAD.desktop` — desktop entry file - `org.freecad.FreeCAD.metainfo.xml` — AppStream metadata - `org.freecad.FreeCAD.xml` — MIME type definition - `resources/kindred-create.desktop` — Kindred desktop entry - `resources/kindred-create.xml` — Kindred MIME type 5. **How to build a package:** - Linux AppImage + deb via `rattler-build` - macOS DMG via `rattler-build` - Windows installer via NSIS - Fedora RPM - `.packit.yaml` — Packit service integration 6. **Updating branding:** - Logo → `resources/branding/kindred-logo.svg` - Icons → run `generate-icons.sh` - Splash → run `generate-splash.py` ### Key source files - `package/` — all packaging scripts - `resources/` — branding assets and desktop integration - `src/XDGData/` — XDG desktop integration files - `.packit.yaml` — Packit configuration ### Acceptance criteria - [ ] Every package format is documented with build instructions - [ ] Branding asset pipeline (logo → icons → splash) is explained - [ ] Desktop integration files are documented - [ ] A developer can produce a release artifact for their platform
forbes added the documentation label 2026-02-09 13:45:25 +00:00
Author
Owner

Superseded by the mdBook documentation structure set up in PR #105. The content scope of this issue is now covered by the pages in docs/src/. Remaining content work is tracked in #104.

Superseded by the mdBook documentation structure set up in PR #105. The content scope of this issue is now covered by the pages in `docs/src/`. Remaining content work is tracked in #104.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#97