Repository navigation
Nightly builds: their own name, icon and splash (Moonrise) - #370
Merged
Merged
Conversation
The stable lemon with the record as an indigo night sky: the label is a moon rising over the wedge's straight edge, with craters, and stars replace the record's two windows and the shimmer behind them. The shapes it shares with logo-colored-lemon.svg are unchanged, and tools/logo/gen.py's parser reads the new parts. Nothing uses it yet: the app icons, the splash and the builds still show the stable logo. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ItsAlphaNeon
marked this pull request as draft
November 6, 2026 06:11
Nightly and stable builds made by the new release workflow carry lemonstudio-updater (tools/updater), which checks the channel's signed manifest, downloads the newer build and, once Lemon Studio closes, replaces the .exe, the AppImage or the .app and starts it again. Builds from source have no channel and never update. - Versions: nightlies are dated (YEAR.MONTH.DAY.N), stable releases semantic; the app, diagnostics, panic log and the Windows version resource show the build's version (version.rs). - In the app (update.rs): the check at start, the Install and restart / Skip this version / Later prompt, HELP > Check for updates, the General > Updates checks, and the About tab's channel line and Check for updates button. - Release workflow: a nightly from main every night (if main moved), a stable release from a vMAJOR.MINOR.PATCH tag; Windows .exe, Linux AppImage, macOS .app (Apple silicon, not notarized: the release notes say how to open it) and the VST3/CLAP plugins as a zip per platform. Manifests are signed with minisign (MINISIGN_SECRET_KEY secret, MINISIGN_PUBLIC_KEY variable). - docs/releasing.md, README, alpha checklist, third-party notices. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The schedule only runs with the repository variable NIGHTLIES set to "on", so merging the workflow with the signing keys set publishes nothing by itself. Run workflow gains a dry run: it builds, packages and signs, and keeps the files as the run's artifacts. It can rehearse a tag as well as a nightly. An alpha is a plain vMAJOR.MINOR.PATCH tag with major version 0. Builds say so in the app, the diagnostics and the release's title, instead of "pre-alpha". Also: a tag has to be on main; the first build on a channel doesn't list every pull request ever merged; appimagetool is a fixed version with its checksum; a nightly and an alpha on one computer keep their downloads in separate folders. The plan moves to tools/package/plan.sh, tested with the manifest by tools/package/test.sh in CI, and CI checks a nightly's and a tagged build's settings compile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the owner's bitmap and the Moonrise logo: - Windows: lemonstudio-nightly.ico in the exe, and "Lemon Studio Nightly" in its version resource, the window title and the file association's name. - Linux: lemonstudio-nightly.png, app id and desktop entry in the AppImage, so it sits beside Lemon Studio on a desktop. - macOS: Lemon Studio Nightly.app with its own identifier, from macOS-nightly.icon. The compiled icon files follow in the next commit. - Splash: the moon, craters, night sky and stars; the lemon is the same. The build picks these by LEMON_CHANNEL=nightly; other builds are unchanged, and regenerating the stable icons gives the same files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Made by tools/logo/macos-icon.sh nightly on a macOS 26 runner with Xcode 26.6, in a throwaway workflow. Committed as the stable ones are, so a build needs neither tool. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs/releasing.md has the steps in order, from the signing key to the first nightly, and says an alpha is a tag with major version 0. The README no longer says no prebuilt binaries will be published. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 tasks
LemonStudio.exe and LemonStudio.AppImage, and LemonStudioNightly for a nightly, so a nightly and a tagged release can sit in one folder. An update replaces the file in place, keeping its name, so a version in it went stale after the first update. Now a shortcut never points at a misleading name, and never has to change. The macOS zip keeps its version: it's only unpacked, and the app inside has a fixed name already. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # .github/workflows/release.yml # docs/releasing.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ItsAlphaNeon
marked this pull request as ready for review
November 9, 2026 00:53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #389: merge that first. Until then this PR's diff against
mainalso shows the updater. Its own changes aregit diff updater...nightly-logo.Nightly builds now have their own name, icon and splash, from the owner's bitmap and the Moonrise logo. Builds without
LEMON_CHANNEL=nightlylook as they did, and regenerating the stable icons gives the same files.The design
The lemon stays the stable yellow. The record becomes an indigo night sky, and its label becomes a moon rising over the wedge's straight edge, with craters. Stars replace the record's two windows and the shimmer behind them.
What changes on a nightly
LemonStudioNightly.exe: its icon, its version resource and the window title say Lemon Studio Nightlylemonstudio-nightly.ico, bygen.pyfromicon-lemon-nightly.pngLemonStudioNightly.AppImage: its desktop entry, icon and app id arelemonstudio-nightlylemonstudio-nightly.png, bygen.pyLemon Studio Nightly.app, with its own identifier, so macOS keeps its permissions apartlemonstudio-nightly.carand.icns, bymacos-icon.sh nightlyfrom the newmacOS-nightly.iconlogo.rs's newNIGHTLY_*, bygen.pyThe name is there so that a nightly and an alpha can sit side by side. They share the user folder (settings, projects), and #389 keeps their updates in separate folders.
Testing
LEMON_CHANNEL=nightlyon Windows: the exe's version resource says Lemon Studio Nightly and 2026.11.8.1, its icon is the new one, and the window's version line reads "Lemon Studio v2026.11.8.1 nightly (pre-alpha)". The splash, rendered at both ends of the gauge, shows the moon and stars, with the groove light on the record..icnsonly. The.carhasn't been seen on a Mac.appimage.shon Ubuntu 22.04 packed a dummy program both ways, and each ran with the right desktop entry and icon.Info.plisthas its name and identifier. CI checks that a nightly's settings compile on all three platforms.Not run: a real nightly on Linux or macOS. The Linux app id and window icon and the macOS bundle are only compiled and unit tested until the first dry run.
Goes with this PR
ItsAlphaNeon/Lemon-Studio-Site#1 updates the install guide and Download page. Merge it when this merges.
🤖 Generated with Claude Code