From cba845a7b86023c348c72fa6a752f48054659e2d Mon Sep 17 00:00:00 2001 From: LukeGus Date: Thu, 29 Oct 2026 18:31:59 -0500 Subject: [PATCH] feat: link full desktop builds in release body and readme --- README.md | 6 +++--- scripts/generate-release-body.cjs | 14 ++++++++++++++ scripts/generate-release-body.test.ts | 12 ++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8f5a70799..b4af7d3c1 100644 --- a/README.md +++ b/README.md @@ -127,15 +127,15 @@ Want to build your own? Start from the [plugin template](https://github.com/Term Windows x64/ia32 -Portable | EXE and MSI Installer | Chocolatey +Portable | EXE and MSI Installer | Full EXE (all plugins) | Chocolatey Linux x64/arm64/armv7l -Portable | AUR | AppImage | Deb | Flatpak +Portable | AUR | AppImage | Deb | Full AppImage and Deb (all plugins) | Flatpak macOS Universal/x64/arm64, v12.0+ -Apple App Store | DMG | Homebrew +Apple App Store | DMG | Full DMG (all plugins) | Homebrew iOS/iPadOS v15.1+ diff --git a/scripts/generate-release-body.cjs b/scripts/generate-release-body.cjs index 370680420..bf989cfa6 100644 --- a/scripts/generate-release-body.cjs +++ b/scripts/generate-release-body.cjs @@ -45,6 +45,18 @@ function buildTable(version, mobileVersion, mobileTag) { ].join("\n"); } +function buildFullBuilds(version) { + const base = `https://github.com/Termix-SSH/Termix/releases/download/v${version}`; + const link = (label, file) => `[${label}](${base}/${file})`; + return [ + "The builds above include the standard plugins. The full builds include every official plugin, which helps on a network with no internet. You can still turn plugins on or off in the Plugins tab. Full builds are x64 only (universal on Mac):", + "", + `- Windows: ${link("EXE", "termix_windows_x64_full_nsis.exe")}`, + `- Linux: ${link("AppImage", "termix_linux_x64_full_appimage.AppImage")} ยท ${link("DEB", "termix_linux_x64_full_deb.deb")}`, + `- Mac: ${link("DMG", "termix_macos_universal_full_dmg.dmg")}`, + ].join("\n"); +} + function buildBody({ version, mobileVersion, mobileTag, changelog }) { const notes = changelogSection(changelog, version); if (!notes) fail(`CHANGELOG.md has no notes for ${version}`); @@ -62,6 +74,8 @@ function buildBody({ version, mobileVersion, mobileTag, changelog }) { "### Downloads", "", buildTable(version, mobileVersion, mobileTag), + "", + buildFullBuilds(version), ].join("\n"); } diff --git a/scripts/generate-release-body.test.ts b/scripts/generate-release-body.test.ts index a5cd1d24e..4c593863c 100644 --- a/scripts/generate-release-body.test.ts +++ b/scripts/generate-release-body.test.ts @@ -34,6 +34,18 @@ describe("buildBody", () => { ); }); + it("links the full builds", () => { + const body = buildBody({ + version: "26.10.0", + mobileVersion: "1.2.0", + changelog: CHANGELOG, + }); + expect(body).toContain("v26.10.0/termix_windows_x64_full_nsis.exe"); + expect(body).toContain("v26.10.0/termix_linux_x64_full_appimage.AppImage"); + expect(body).toContain("v26.10.0/termix_linux_x64_full_deb.deb"); + expect(body).toContain("v26.10.0/termix_macos_universal_full_dmg.dmg"); + }); + it("works for the real changelog", () => { const fs = require("fs"); const body = buildBody({