Skip to content

ci: publish Fedora RPM releases#1321

Merged
jeremyfowers merged 2 commits intolemonade-sdk:mainfrom
OmerFarukOruc:ofo/release-fedora-rpm
Mar 10, 2026
Merged

ci: publish Fedora RPM releases#1321
jeremyfowers merged 2 commits intolemonade-sdk:mainfrom
OmerFarukOruc:ofo/release-fedora-rpm

Conversation

@OmerFarukOruc
Copy link
Copy Markdown
Contributor

@OmerFarukOruc OmerFarukOruc commented Mar 7, 2026

Summary

  • add a Fedora RPM build job to the release workflow
  • smoke-test the generated RPM in a Fedora container before release
  • publish the RPM as a GitHub release asset
  • replace the Debian-specific RPM script hook with Fedora-native scriptlets

Testing

  • bash -n src/cpp/postinst-rpm src/cpp/prerm-rpm src/cpp/postrm-rpm
  • local CMake configure/build and cpack -G RPM -V
  • verified generated RPM metadata with rpm -qip
  • verified generated RPM contents with rpm -qlp

Follow-up to #1315 and docs PR #1320.

Review Checklist

Clarity

  • Does the pr description and title explain the change fully?
  • Are UI/UX changes displayed with screenshots/videos/terminal blocks?

Completeness

  • Are changes documented in markdown and help menus (if appropriate)?
    • For example: cli.md, spec.md, dev-getting-started.md, lemonade-server --help
  • Do new endpoints have example requests/scripts so others can reproduce?

UI/UX review

Are the UI/UX changes (if any)...

  • visually cohesive with the rest of the experience?
  • a cohesive part of existing workflows, or do they introduce a new workflow (justify)?
  • discoverable by new users?
  • usable without documentation, or is new documentation needed (justify)?
  • tested on both Windows on Linux (if needed)?

Note: UI/UX includes installers, app, tray, and CLI.

Code quality

  • Is the change maintainable (does it introduce redundancy)?
  • Are there any security or licensing issues?

Copy link
Copy Markdown

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

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: 6bbe31044a

ℹ️ 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".

test -f /opt/bin/lemonade-router

lemonade-server --version
lemonade-router --version
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 Call router with absolute install path in RPM test

This smoke test invokes lemonade-router --version, but the Linux packaging rules install the router under /opt/bin and do not create a /usr/bin/lemonade-router symlink, so the command is typically not on Fedora's default PATH. Since release now depends on test-rpm-package, this can fail tag releases even when the RPM built correctly; invoke /opt/bin/lemonade-router (or export PATH) here.

Useful? React with 👍 / 👎.

set -e

if command -v systemctl > /dev/null 2>&1 && [ -d /run/systemd/system ]; then
systemctl stop lemonade-server.service > /dev/null 2>&1 || true
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 Preserve service availability during RPM upgrades

The new %preun hook always executes systemctl stop lemonade-server.service, but %post only does daemon-reload, so upgrading from one RPM version to the next leaves the service stopped until an operator manually starts it. This creates avoidable downtime on systemd hosts; make the stop conditional to erase-only or add a restart/try-restart path in post-install for upgrades.

Useful? React with 👍 / 👎.

@OmerFarukOruc
Copy link
Copy Markdown
Contributor Author

OmerFarukOruc commented Mar 7, 2026

Status update for the Fedora RPM work on oruc.

Review feedback addressed

  • Updated the Fedora RPM smoke test to call the installed binaries with explicit /opt/bin/... paths, so it does not assume lemonade-router is on the default PATH.
  • Updated %preun so it stops lemonade-server.service only on erase, not on upgrade, to avoid unnecessary downtime on RPM-to-RPM upgrades.

Local package validation

  • Rebuilt the RPM locally after the review fixes.
  • Revalidated the generated package metadata and contents locally.

Host-side Fedora validation

  • Upgraded lemonade-server from 9.4.1-2 to the locally built 9.4.2-1 RPM on oruc.
  • Verified the systemd drop-in at /etc/systemd/system/lemonade-server.service.d/10-flm-beta.conf remained in place.
  • Confirmed the service came up healthy after the upgrade and served from /opt/bin/lemonade-server serve with /opt/bin/lemonade-router.
  • Verified /opt/bin/lemonade-server --version and /opt/bin/lemonade-router --version both reported 9.4.2.
  • Verified the local API returned HTTP/1.1 200 OK before and after the upgrade.
  • Manually restarted the service and confirmed the FLM override was still present: LEMONADE_FLM_LINUX_BETA, LD_LIBRARY_PATH, and FLM_CONFIG_PATH.

Upgrade-proof check

  • Built a follow-up local RPM 9.4.2-2 and upgraded from local RPM 9.4.2-1 to 9.4.2-2 on the same Fedora host.
  • The service stayed active across the upgrade.
  • PID_BEFORE and PID_AFTER were both 1716407, so the service was not restarted during the RPM-to-RPM upgrade.
  • The local API still returned HTTP/1.1 200 OK before and after that upgrade.

This gives us both packaging validation and real host-side evidence that the Fedora RPM installs, runs, preserves the FLM override, and upgrades without bouncing the service once the %preun fix is present.

@superm1
Copy link
Copy Markdown
Member

superm1 commented Mar 8, 2026

We should have the Fedora installation setup instructions on the website doc updated for this RPM!

@superm1
Copy link
Copy Markdown
Member

superm1 commented Mar 8, 2026

@jeremyfowers my feeling is we should include this as part of 10.0.0 if CI passes.

@jeremyfowers
Copy link
Copy Markdown
Member

@claude review

@@ -351,6 +351,64 @@ jobs:
path: build/lemonade-server_${{ env.LEMONADE_VERSION }}_amd64.deb
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@OmerFarukOruc please replace the existing Fedora instructions in the Install Options website with a link to the RPM in the release, and provide a screenshot of the rendered page.

Currently looks like this:
Image

Should look like this:

Image

If the plan is to use the AppImage as an optional frontend, please include this text too:

Image

retention-days: 7

build-lemonade-rpm:
name: Build Lemonade .rpm Package
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Also please add a line here to add Fedora and the .rpm artifact to the tabe:

echo "| **Ubuntu** | [lemonade-server_${VERSION}_amd64.deb](https://github.com/$REPO/releases/download/$TAG_NAME/lemonade-server_${VERSION}_amd64.deb) (Server) · [Lemonade-${VERSION}-x86_64.AppImage](https://github.com/$REPO/releases/download/$TAG_NAME/Lemonade-${VERSION}-x86_64.AppImage) (Standalone App) |"

And remove the Fedora mention from the "Other platforms: ..." note.

Currently looks like this when rendered:

Image

Copy link
Copy Markdown
Member

@jeremyfowers jeremyfowers left a comment

Choose a reason for hiding this comment

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

@OmerFarukOruc I'm really excited for this!

Please address my two ui/ux comments, which should get us through most of the review checklist.

Also if claude comes back with any "critical" issues please address those. Other than that, we can merge!

@ramkrishna2910
Copy link
Copy Markdown
Contributor

@claude review

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 9, 2026

Claude Code is working…

I'll analyze this and get back to you.

View job run

@jeremyfowers
Copy link
Copy Markdown
Member

@OmerFarukOruc I'm really excited for this!

Please address my two ui/ux comments, which should get us through most of the review checklist.

Also if claude comes back with any "critical" issues please address those. Other than that, we can merge!

Our claude bot isnt working on forks at the moment. I ran it offline and its very happy with this PR :)

So all we need is the documentation and then we're good to merge!

@jeremyfowers
Copy link
Copy Markdown
Member

v10 is happening now, so I'm going to merge this. We should add the documentation piece ASAP though.

@jeremyfowers jeremyfowers merged commit 183d060 into lemonade-sdk:main Mar 10, 2026
40 checks passed
@OmerFarukOruc
Copy link
Copy Markdown
Contributor Author

v10 is happening now, so I'm going to merge this. We should add the documentation piece ASAP though.

sorry i couldnt find time to check on this. if you guys want i can create a new pr for remaining reviews. 😞 😭

@jeremyfowers
Copy link
Copy Markdown
Member

v10 is happening now, so I'm going to merge this. We should add the documentation piece ASAP though.

sorry i couldnt find time to check on this. if you guys want i can create a new pr for remaining reviews. 😞 😭

That next PR would be great, thank you @OmerFarukOruc!

And don't sweat it, we've been doing final testing for the v10 release for days, so it was bound to surprise somebody. Just happened to be you on this PR.

The good news is that our documentation and website can update independently of the release, so you have plenty of time. I just had to merge this PR ASAP to get the .rpm into the release.

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.

4 participants