Skip to content

build: publish Linux release packages on beta - #1336

Merged
frahlg merged 5 commits into
masterfrom
codex/linux-release-packages
Sep 21, 2026
Merged

frahlg merged 5 commits into
masterfrom
codex/linux-release-packages

Conversation

@frahlg

@frahlg frahlg commented Sep 21, 2026

Copy link
Copy Markdown
Member

Beta releases currently provide container images but no native archives. This adds Linux arm64 and amd64 packages to beta and gives local builds, beta and stable one package builder. New releases and CI stop building Windows.

Each package contains Core, backup, web, pinned drivers, Energyplan, notices and a systemd unit. Packaging checks the architecture and resources, normalizes archive metadata and writes checksums. Upload retries check existing bytes and refuse to replace published assets. Each archive includes only its target Energyplan executable. Its filtered manifest retains source identity, schemas, licenses and original file checksums; the full pinned source bundle stays unchanged. Existing Linux download aliases remain available.

The native guide now covers a fresh Debian/Bookworm installation, version and health checks, manual updates and recovery. The systemd unit keeps config with identity and data under /var/lib/ftw so full backups can include them together. Existing native installations using /etc/ftw/config.yaml need a separate handover; the guide warns against replacing their unit alone.

This is the first delivery step for #1308 and #1314. Docker-independent publication, copying tested beta binaries into stable, automated native installation and the public 0.x version reset remain separate work. No installed box changes here. This avoids the files owned by #1045 and #1309.

Validation:

  • make verify, 641 web tests and actionlint passed for the package change. The combined local test candidate with feat(api): expose charging evidence to clients and Ask why #1337 also passed make verify.
  • Both Linux archives built as the unpublished v0.131.0-beta.1 candidate; checksums and embedded source commit checked. No tag or release created.
  • Core and Energyplan started from both archives in Debian (arm64 native, amd64 emulated). A fresh arm64 setup completed in the browser and reported the expected version.
  • A local test backup verified and restored into a separate volume. Identity survived restore and the API restart; the restarted Core returned healthy with the same version. These are local process tests, not a physical box or systemd installation test.
  • Nine package tests cover target-only executables, matching manifests, source identity, notices, corrupt workers, accidental source disclosure, repeatable archives, Core architecture and resource links. All 12 Energyplan boundary tests and actionlint pass. Upload tests cover partial publication, complete retries and conflicting public bytes.

@frahlg
frahlg marked this pull request as ready for review September 21, 2026 17:03
@frahlg
frahlg merged commit 6c79443 into master Sep 21, 2026
16 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 21, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-21T17:08:07.382505Z d28bf3b Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d28bf3bae7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

fi
gh release upload "${TAG}" ftw-image-digests.json \
--repo "${GITHUB_REPOSITORY}"
bash scripts/upload-release-assets.sh "${TAG}" release/*.tar.gz release/*.sha256

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep the hotfix beta workflow self-contained

When this workflow is copied onto an older stable branch using the documented hotfix procedure, that branch does not contain the newly added scripts/upload-release-assets.sh, so the beta run builds successfully and then fails here with “No such file or directory.” Either inline the upload logic, fetch the helper from master, or update the hotfix procedure to bring every new dependency along with the workflow.

AGENTS.md reference: AGENTS.md:L211-L218

Useful? React with 👍 / 👎.

Comment thread Makefile
done
@printf "built release/ftw-windows-amd64.zip (%s bytes)\n" \
"$$(wc -c <release/ftw-windows-amd64.zip)"
release: release-linux

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove Windows assets from the manual release helper

After release becomes Linux-only, the tracked scripts/release.sh still requires four Windows archives immediately after invoking make release; anyone using that helper now deterministically exits on the first missing Windows file and cannot upload even the successfully built Linux packages. Update or remove that helper as part of dropping the Windows targets.

AGENTS.md reference: AGENTS.md:L20-L21

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant