CI and versioning
CI runs the application checks on Windows and Ubuntu. It runs on pull requests and before every beta release, but not on push: to check a pushed commit, start CI from the Actions tab. The workflow installs pnpm, Node, Rust, and native dependencies, regenerates contracts, and verifies committed generated types before testing.
Application pipeline
Section titled “Application pipeline”Formatting, lint, typecheck, unit tests, builds, architecture checks, documentation examples, and Electron fixtures protect the public and native boundaries. Rust formatting, Clippy, and tests cover injector-core and the Tauri package.
The external-plugin suite demonstrates that independently packaged plugins work without runtime-private imports.
Documentation pipeline
Section titled “Documentation pipeline”A separate job installs dependencies using docs/pnpm-lock.yaml, builds the static site, and checks internal links, anchors, images, and article reachability. Root dependency installation alone does not install Astro.
The production URL is https://fluxer.plus. The CI job only builds and checks the site. A separate workflow, deploy.yml, deploys it on every push to main that changes docs/, after the same build and link check.
Release labels
Section titled “Release labels”The current product version is 0.5.0-beta.1. Keep root/package metadata, Cargo/Tauri versions, runtime version, desktop label, starter dependency pins, and lockfile entries consistent.
Independently versioned plugin releases and fixture versions stay independent. SDK API version 2 and manifest schema version 1 remain unchanged by the beta label.
pnpm check:version (part of pnpm check and CI) fails if any of those places disagrees with the root package.json.
After a version update, rebuild runtime/catalog artifacts and verify package and fixture workflows. Beta installers exist; automatic updates, code signing, and registry publication don’t, so don’t imply them.
Beta releases
Section titled “Beta releases”The Beta release workflow (release.yml) runs only when started by hand from the Actions tab. It:
- Runs the full CI workflow as a gate.
- Checks the version with check:version, and stops if a published release for that version already exists.
- Builds the injector with tauri build on Windows (NSIS installer) and Ubuntu 22.04 (deb, rpm, and AppImage). The Tauri build command also builds the runtime, catalog, and UI.
- Uploads the installers, adds SHA256SUMS.txt, and creates a draft pre-release named after the version. A re-run replaces the draft.
Turn off create_release for a dry run: the installers are then only kept as workflow artifacts for 14 days. The builds are unsigned, and Windows uses NSIS because the MSI bundler rejects pre-release versions.
To release a beta:
- Bump the version in every place listed above, then run pnpm check:version.
- Rebuild, run the checks, and commit.
- Start Beta release from the Actions tab on that commit.
- Download the draft’s files, check them against SHA256SUMS.txt, and install and scan with each package on Windows and Linux.
- Publish the draft. Publishing creates the tag. The download guide links to the releases page, so it needs no change.
