Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 2 additions & 55 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -233,63 +233,12 @@ jobs:
name: ChimpStackr-Linux
path: dist/ChimpStackr-Linux-x86_64.AppImage

# ══════════════════════════════════════════════
# Build Linux (Flatpak)
# ══════════════════════════════════════════════
build-flatpak:
needs: test
runs-on: ubuntu-latest
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:kde-6.10
options: --privileged
steps:
- uses: actions/checkout@v7

- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
manifest-path: packaging/flatpak/io.github.noah_peeters.ChimpStackr.yml
bundle: ChimpStackr-Linux.flatpak
cache-key: flatpak-builder-${{ hashFiles('packaging/flatpak/*.yml') }}

- name: Verify Flatpak build contents
run: |
echo "=== Checking installed files ==="
ls -la flatpak_app/files/bin/
echo "=== Checking entry points ==="
cat flatpak_app/files/bin/chimpstackr
echo "=== Checking Python packages ==="
PYDIR=$(ls flatpak_app/files/lib/ | grep python)
echo "Python dir: $PYDIR"
ls flatpak_app/files/lib/$PYDIR/site-packages/ | head -30
echo "=== Checking app source ==="
ls flatpak_app/files/lib/$PYDIR/site-packages/src/
echo "=== Checking icons ==="
find flatpak_app/files/share/icons -name "*.png" -ls
echo "=== Checking desktop/metainfo ==="
ls flatpak_app/files/share/applications/
ls flatpak_app/files/share/metainfo/
echo "=== Build verified ==="

- uses: actions/upload-artifact@v7
with:
name: ChimpStackr-Flatpak
path: ChimpStackr-Linux.flatpak

# ══════════════════════════════════════════════
# Create GitHub Release (on tag push)
# ══════════════════════════════════════════════
release:
# Wait for every build, but only *require* the native ones. A failed Flatpak
# build (e.g. EOL runtime) must not block cutting a release; the .flatpak
# asset is simply omitted (fail_on_unmatched_files defaults to false).
needs: [build-macos, build-windows, build-linux, build-flatpak]
if: >-
${{ !cancelled()
&& needs.build-macos.result == 'success'
&& needs.build-windows.result == 'success'
&& needs.build-linux.result == 'success'
&& (startsWith(github.ref, 'refs/tags/v')
|| (github.event_name == 'workflow_dispatch' && inputs.create_release)) }}
needs: [build-macos, build-windows, build-linux]
if: startsWith(github.ref, 'refs/tags/v') || (github.event_name == 'workflow_dispatch' && inputs.create_release)
runs-on: ubuntu-latest
permissions:
contents: write
Expand Down Expand Up @@ -319,7 +268,6 @@ jobs:
| Windows | `ChimpStackr-Windows.zip` — Extract and run `chimpstackr.exe` |
| macOS | `ChimpStackr-macOS.dmg` — Open, drag to Applications |
| Linux (AppImage) | `ChimpStackr-Linux-x86_64.AppImage` — `chmod +x` and run |
| Linux (Flatpak) | `ChimpStackr-Linux.flatpak` — `flatpak install ChimpStackr-Linux.flatpak` |

## What's New

Expand All @@ -328,4 +276,3 @@ jobs:
artifacts/ChimpStackr-macOS/ChimpStackr-macOS.dmg
artifacts/ChimpStackr-Windows/ChimpStackr-Windows.zip
artifacts/ChimpStackr-Linux/ChimpStackr-Linux-x86_64.AppImage
artifacts/ChimpStackr-Flatpak/ChimpStackr-Linux.flatpak
6 changes: 0 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,6 @@ appimage-build/
*.AppImage.zsync
*.squashfs

# Flatpak build files
.flatpak-build/
.flatpak-repo/
*.flatpak


# Distribution / packaging
.Python
build/
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ Pre-built packages are available on the [Releases](https://github.com/noah-peete
| **Windows** | `ChimpStackr-Windows.zip` | Extract and run `chimpstackr.exe` |
| **macOS** | `ChimpStackr-macOS.dmg` | Open DMG, drag to Applications |
| **Linux (AppImage)** | `ChimpStackr-Linux-x86_64.AppImage` | `chmod +x` and run |
| **Linux (Flatpak)** | `ChimpStackr-Linux.flatpak` | `flatpak install ChimpStackr-Linux.flatpak` |

## CLI Usage

Expand Down
1 change: 0 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ Pre-built packages are on the [Releases](https://github.com/noah-peeters/ChimpSt
| **Windows** | `ChimpStackr-Windows.zip` | Extract and run `chimpstackr.exe` |
| **macOS** | `ChimpStackr-macOS.dmg` | Open DMG, drag to Applications |
| **Linux (AppImage)** | `ChimpStackr-Linux-x86_64.AppImage` | `chmod +x` and run |
| **Linux (Flatpak)** | `ChimpStackr-Linux.flatpak` | `flatpak install ChimpStackr-Linux.flatpak` |

## CLI quickstart

Expand Down
41 changes: 1 addition & 40 deletions docs/packaging.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ ChimpStackr uses PyInstaller to create native packages for all platforms. Builds
| macOS | `./scripts/build_macos.sh` | `dist/ChimpStackr-macOS.dmg` |
| Windows | `.\scripts\build_windows.ps1` | `dist/ChimpStackr-Windows.zip` |
| Linux (AppImage) | `./scripts/build_linux.sh` | `dist/ChimpStackr-Linux-x86_64.AppImage` |
| Linux (Flatpak) | `./scripts/build_flatpak.sh` | Flatpak install (local) |

## Prerequisites

Expand Down Expand Up @@ -75,8 +74,7 @@ This runs:
2. **Build macOS** -- PyInstaller, optional code signing, DMG creation
3. **Build Windows** -- PyInstaller, ZIP archive
4. **Build Linux (AppImage)** -- PyInstaller, AppImage creation
5. **Build Linux (Flatpak)** -- flatpak-builder, `.flatpak` bundle
6. **Release** -- GitHub Release with all artifacts
5. **Release** -- GitHub Release with all artifacts

### GitHub Secrets (optional)

Expand Down Expand Up @@ -116,43 +114,6 @@ The build script wraps the PyInstaller output in an AppImage:
- Desktop entry and icons included for desktop integration
- Works on most distros with glibc 2.31+

### Linux Flatpak

Flatpak packaging files are in `packaging/flatpak/`. The Flatpak build uses the KDE 6.10 runtime with the PySide BaseApp (provides PySide6 bindings linked against the runtime's Qt6).

**App ID:** `io.github.noah_peeters.ChimpStackr`

**Files:**

| File | Purpose |
|---|---|
| `packaging/flatpak/io.github.noah_peeters.ChimpStackr.yml` | Flatpak manifest |
| `packaging/flatpak/io.github.noah_peeters.ChimpStackr.desktop` | Desktop entry |
| `packaging/flatpak/io.github.noah_peeters.ChimpStackr.metainfo.xml` | AppStream metadata for software centers |

**Local build:**

```bash
# Install prerequisites
sudo apt install flatpak flatpak-builder
flatpak install flathub org.kde.Platform//6.10 org.kde.Sdk//6.10 io.qt.PySide.BaseApp//6.10

# Build and install locally
./scripts/build_flatpak.sh

# Run
flatpak run io.github.noah_peeters.ChimpStackr

# Create a redistributable .flatpak bundle
./scripts/build_flatpak.sh --bundle
```

**Native dependencies** (built from source in the manifest):
- FFTW3 (float + double precision) -- required by pyFFTW
- LibRaw -- required by rawpy

The CI workflow uses `flatpak/flatpak-github-actions` with the `ghcr.io/flathub-infra/flatpak-github-actions:kde-6.10` container image to build and produce a `.flatpak` bundle attached to each release.

### Heavy dependencies

These need special handling in the `.spec` file:
Expand Down
12 changes: 0 additions & 12 deletions packaging/flatpak/io.github.noah_peeters.ChimpStackr.desktop

This file was deleted.

98 changes: 0 additions & 98 deletions packaging/flatpak/io.github.noah_peeters.ChimpStackr.metainfo.xml

This file was deleted.

Loading