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
14 changes: 14 additions & 0 deletions .github/workflows/release-sce-linux-arm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,20 @@ jobs:
--version "${{ inputs.release_version }}" \
--out-dir dist

- name: Build Flatpak bundle release assets (aarch64)
run: |
nix run .#release-flatpak-bundle -- \
--version "${{ inputs.release_version }}" \
--arch aarch64 \
--out-dir dist/flatpak-bundle

- name: Upload Flatpak bundle release assets (aarch64)
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: sce-flatpak-bundle-aarch64
path: dist/flatpak-bundle/
if-no-files-found: error

- name: Upload Linux ARM CLI release artifacts
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/release-sce-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,20 @@ jobs:
--version "${{ inputs.release_version }}" \
--out-dir dist

- name: Build Flatpak bundle release assets (x86_64)
run: |
nix run .#release-flatpak-bundle -- \
--version "${{ inputs.release_version }}" \
--arch x86_64 \
--out-dir dist/flatpak-bundle

- name: Upload Flatpak bundle release assets (x86_64)
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: sce-flatpak-bundle-x86_64
path: dist/flatpak-bundle/
if-no-files-found: error

- name: Upload Linux CLI release artifacts
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
Expand Down
21 changes: 21 additions & 0 deletions .github/workflows/release-sce.yml
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,19 @@ jobs:
--version "${{ needs.resolve-release.outputs.version }}" \
--out-dir dist/npm

- name: Build Flatpak source-manifest release package
run: |
nix run .#release-flatpak-package -- \
--version "${{ needs.resolve-release.outputs.version }}" \
--out-dir dist/flatpak

- name: Download Flatpak bundle release assets
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
pattern: sce-flatpak-bundle-*
path: dist/flatpak-bundle
merge-multiple: true

- name: Create GitHub release
uses: softprops/action-gh-release@3bb12739c298aeb8a4eeaf626c5b8d85266b0e65 # v2.6.2
with:
Expand All @@ -219,6 +232,8 @@ jobs:
- Combined artifact manifest signatures are published as `sce-v<version>-release-manifest.json.sig`
- Combined checksums are published as `sce-v<version>-SHA256SUMS`
- The npm package tarball is published as `sce-v<version>-npm.tgz`
- Flatpak source-built packaging metadata is published as `sce-v<version>-flatpak-manifest.tar.gz`, with matching `.sha256` and `.json` metadata assets; this is not a prebuilt Flatpak app or Flathub publication.
- Flatpak source-built `.flatpak` bundles are published as `sce-v<version>-x86_64.flatpak` and `sce-v<version>-aarch64.flatpak`, with matching `.sha256` and `.json` metadata assets; install directly with `flatpak install --user <url>`.
files: |
dist/cli/*.tar.gz
dist/cli/*.sha256
Expand All @@ -227,3 +242,9 @@ jobs:
dist/cli/*SHA256SUMS
dist/npm/*.tgz
dist/npm/*.json
dist/flatpak/*.tar.gz
dist/flatpak/*.sha256
dist/flatpak/*.json
dist/flatpak-bundle/*.flatpak
dist/flatpak-bundle/*.sha256
dist/flatpak-bundle/*.json
61 changes: 58 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,12 @@ The `sce` CLI is also available as a **source-built** Flatpak package (`dev.croc
for Linux. The Flatpak builds `sce` from source inside the Flatpak sandbox using the
Freedesktop SDK Rust extension — it does not wrap a prebuilt Nix, Cargo, or npm binary.

> **First iteration scope:** Flathub-ready manifest, Nix-backed local build/check tooling,
> and documentation. No CI publishing, automatic Flathub submission, GitHub Release Flatpak
> assets, or release-version bumping.
> **Release scope:** GitHub Releases now include both Flatpak source-manifest
> assets (packaging metadata for source builds) and source-built `.flatpak` bundle
> assets (pre-built Flatpak apps for direct install). The bundles are built from
> Rust source inside Flatpak — they are not prebuilt binaries, Nix packages, or
> Flathub submissions. Automatic Flathub publication and release-version bumping
> remain out of scope.

#### Prerequisites

Expand Down Expand Up @@ -104,6 +107,58 @@ The default `nix flake check` runs lightweight static validation
are opt-in via `nix run .#flatpak-build` and require network access for
SDK runtime downloads.

#### GitHub Release source-manifest assets

Each `sce` GitHub Release also includes Flatpak source-manifest assets for
contributors or downstream packagers who want the release-pinned Flatpak build
inputs:

- `sce-v<version>-flatpak-manifest.tar.gz`
- `sce-v<version>-flatpak-manifest.tar.gz.sha256`
- `sce-v<version>-flatpak.json`

The tarball contains a deterministic top-level
`sce-v<version>-flatpak-manifest/` directory with the Flathub-style source
manifest and support files:

- `dev.crocoder.sce.yml`
- `dev.crocoder.sce.metainfo.xml`
- `cargo-sources.json`
- `git-host-bridge`

The packaged manifest pins its git source to the release commit without
mutating the checked-in manifest. The checksum and JSON metadata describe the
source-manifest package; they are separate from the signed native release
manifest consumed by npm and do not contain a prebuilt `sce` binary.

Maintainers can build the same asset set locally from a checked-out release
commit:

```bash
nix run .#release-flatpak-package -- \
--version "$(tr -d '\n' < .version)" \
--out-dir dist/flatpak
```

#### GitHub Release bundle assets

Each `sce` GitHub Release also includes source-built `.flatpak` bundles for
direct installation without cloning the repository or building from source:

- `sce-v<version>-x86_64.flatpak` + `.sha256` + `.json`
- `sce-v<version>-aarch64.flatpak` + `.sha256` + `.json`

Install directly from the release URL:

```bash
flatpak install --user \
https://github.com/crocoder-dev/shared-context-engineering/releases/download/v<version>/sce-v<version>-x86_64.flatpak
```

These bundles are **source-built** — the Flatpak builds `sce` from Rust source
inside the Flatpak sandbox, not from a prebuilt Nix, Cargo, or npm binary.
They are not Flathub submissions and are published only as GitHub Release assets.

#### Direct flatpak-builder fallback

If you do not use Nix, you can use `sce-flatpak.sh` and `flatpak-builder` directly:
Expand Down
14 changes: 8 additions & 6 deletions context/architecture.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading