Commit Graph
12 Commits
Author SHA1 Message Date
Rsclub2_2andClaude Fable 5 a28abe1591 Update repository URLs to HamRadioOnline organisation (#142)
* Move remaining references to the HamRadioOnline organisation

The repository moved from praktimarc/kst4contest to
HamRadioOnline/kst4contest. Document the move in the German and English
changelog, point manuals, README, website, AUR packaging and the
version-feed tooling at the new address, and keep accepting pre-move
release URLs in the update-feed validator because published feeds still
carry the old owner. Personal identities (Ko-Fi account, contact
e-mail) stay unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WFGQ7wkSPo21itLMHPi8Yw

* Lowercase the owner in the generated Flatpak Pages URL

GITHUB_REPOSITORY_OWNER is now the mixed-case HamRadioOnline, and the
next build would write that spelling into the published flatpakrepo and
flatpakref files. Hostnames are case-insensitive, but the published
metadata should match the documented lowercase address.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WFGQ7wkSPo21itLMHPi8Yw

* Build the Flatpak against org.freedesktop.Platform 25.08

Runtime branch 24.08 is end-of-life and no longer receives security
updates, so every flatpak update now prints an EOL warning. 25.08 is
the current supported branch on Flathub. The app bundles its own Java
runtime, so the platform bump only changes the base libraries.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WFGQ7wkSPo21itLMHPi8Yw

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-17 23:06:01 +02:00
Rsclub2_2andClaude Fable 5.1 89d37e62e1 Give beta DEB and RPM packages a pre-release number (#113) (#116)
* build: give beta DEB and RPM packages a pre-release number (#113)

composePackageVersion is the package version of every Compose target
format, so an RPM or DEB built from a beta tag carried exactly the
version of the following stable one. dnf, rpm -U and dpkg refuse to
replace a package by one of equal version, so a beta user could not
move to the stable.

Keep the version and tell the packages apart by the package release
number, following the Fedora pre-release convention: the new Gradle
property linuxAppRelease is passed to jpackage as --linux-app-release
(Compose LinuxPlatformSettings.appRelease) and defaults to 1.

  beta-v1.50.0-beta-001 -> 1.50.0-0.beta.001
  beta-v1.50.0-rc02     -> 1.50.0-0.rc02
  v1.50.0               -> 1.50.0-1

Everything starting with "0." sorts below "1" for both rpm and dpkg.
Nightlies and local builds do not set the property and keep release 1.

Fixes #113

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* ci: derive the Linux release number from the tag and verify the tag version (#113)

The DEB and RPM jobs now compute the package release from the tag
before calling Gradle and pass it as -PlinuxAppRelease: a stable
vX.Y.Z tag gives 1, a beta-vX.Y.Z-<suffix> tag gives 0.<suffix> with
"-" turned into ".". The result must match [A-Za-z0-9.]+, otherwise
the step fails. A workflow_dispatch run from a branch keeps release 1
like the nightlies; nightly-artifacts.yml is unchanged.

The test job, which every packaging job depends on, now checks right
after the checkout that the X.Y.Z in the tag equals
composePackageVersion in gradle.properties and fails with a clear
message otherwise, so a mistagged commit fails before an hour of
packaging rather than shipping packages whose version contradicts
their file name and upgrade order.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs: describe the pre-release number of beta DEB and RPM packages (#113)

The German and English installation manuals say in the Debian/Ubuntu
and Fedora sections that beta packages carry a pre-release number
below the stable one, so the stable installs as an upgrade over a
beta. The v1.50 changelogs gain the matching "Fixed" entry, and
PROJECT_CONTEXT.md records the rule next to the MSI decision.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-11 12:48:49 +02:00
Rsclub2_2andClaude Fable 5.1 2eb1ba22cf Windows MSI installer next to the portable ZIP (#61) (#111)
* build: configure the Windows MSI installer in the Compose windows block (#61)

Add the jpackage/WiX options for a per-user MSI next to the existing
icon: a fixed upgradeUuid so Windows Installer replaces an installed
KST4Contest instead of installing side by side, a Start menu group and
desktop shortcut, no UAC prompt, and a directory chooser. The portable
ZIP (createDistributable) is unaffected; the MSI is produced only by
the tagged-release workflow.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* ci: build and attach a Windows MSI installer for tagged releases (#61)

The Windows job of tagged-release.yml now runs packageMsi after the
portable ZIP, renames the result to KST4Contest-<tag>-windows-x64.msi
(consistent with the other platforms; the ZIP keeps its praktiKST name)
and uploads it as the windows-msi artifact, which the release job
downloads and attaches next to the ZIP. The nightly workflow stays
ZIP-only because a nightly MSI would always carry the same version.

The website download data (downloads.js, beta.js) gets an MSI card that
is shown only when the release actually has that asset, so the page
never links to a file that does not exist for an older release.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs: describe the Windows MSI installer next to the portable ZIP (#61)

The German and English installation manuals list the MSI in the package
table, describe both Windows forms (installer: per user, Start menu
entry, desktop shortcut, chosen directory, in-place upgrade, removal via
the Windows apps list; ZIP: portable) and the shared data directory
%USERPROFILE%\.praktiKST, and add the MSI path to the Windows update
section. Changelog entries for v1.50 and a note in PROJECT_CONTEXT.md
record the fixed upgrade UUID and the tags-only decision.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* ci: build the Windows MSI for stable tags only (#61)

A beta MSI would carry the same composePackageVersion as the following
stable release. jpackage's MSI upgrade table only accepts strictly higher
versions, so Windows Installer would refuse the stable over an installed
beta and the tester would have to uninstall first. Betas therefore stay
ZIP-only like nightlies; the build, upload and download steps are skipped
for beta- tags, and the release action tolerates the missing asset path.
Manual, changelog and project context say so.

Raised by the Codex review on #111.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-11 12:27:43 +02:00
Rsclub2_2andClaude Opus 5 af30c17a0d Macos signing (#80)
* Sign and notarize macOS builds

jpackage cannot produce a distributable macOS bundle on its own. It ad-hoc
signs the embedded runtime and then re-runs codesign on the same files without
--force, which codesign rejects; and "--type dmg --app-image" re-signs the app
it is handed, replacing a Developer ID signature with an ad-hoc one. So the
build now creates an unsigned app-image, signs it from the inside out, and
wraps it with hdiutil.

Apple's notary service also unpacks JARs and checks the native libraries
inside them, which sqlite-jdbc ships for both architectures. Those are signed
before the bundle is sealed, since rewriting a JAR afterwards would invalidate
the seal. A preflight check verifies Apple's two criteria locally, so a missed
binary costs seconds rather than a round trip to the notary service.

Two long-standing defects surfaced while testing and are fixed here: the
bundle identifier defaulted to the main class's package name (kst4contest.view
instead of de.x08.KST4Contest), and every release reported version 1.0 in
Finder because --app-version was never passed. Neither affects existing users:
the app keeps its settings in ~/.praktiKST, independent of the bundle ID.

Both workflows call the same script the local Mac uses, so the two cannot
drift apart. Signing needs a keychain that can answer a UI prompt, which a
runner cannot, so ci-import-cert.sh creates a throwaway keychain whose
password is generated per job and discarded with it. Notarization goes through
an App Store Connect API key and needs no keychain at all.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Sign bundle contents serially

Signing the app image's Mach-O files with "xargs -P 8" passed locally but
failed on a runner: codesign reported "replacing existing signature" and then
"No such file or directory" for that same path. The two libjli.dylib copies are
separate inodes, so this is not hard links being signed twice -- concurrent
codesign runs over one bundle are simply not reliable. Serially costs about a
minute, since each call waits on Apple's timestamp server.

Also stop the matrix from cancelling the other architecture on a failure; that
throws away half the diagnostic information from a failed run.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Document macOS signing from 1.42

The installation guides described the right-click workaround as the normal
first launch. That stays, but as the path for 1.41.1 and older; from 1.42 a
double-click works. Both guides also show how to verify a download with spctl,
so the claim is checkable rather than something to take on faith.

The per-channel download notes distinguish where the channels actually stand:
Nightly is built from main and is signed as of now, while Stable still points
at 1.41.1, so those notes name the version instead of claiming it outright.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 16:48:31 +02:00
Marc Froehlich b0c04d2238 Installation manual refactoring 2026-07-20 23:40:16 +02:00
Rsclub2_2 df0e535fb3 docs: add AUR installation instructions to Wiki 2026-07-14 16:54:19 +02:00
Rsclub2_2 631b661265 fix flatpak key again. 2026-06-27 21:11:13 +02:00
Rsclub2_2 aa016d4772 Add Linux distro and Flatpak artifacts to CI pipelines (#8) (#35)
Fix Pipelines hopefully

again

nochmal ... :)

AAAA

BBBB

fix Flatpack from main

Flatpak again ....

flatpak github packages test

Flatpak?

flatpakref fork-ready

Install docs n fix

Desktop Entries
2026-06-15 17:39:31 +02:00
Rsclub2_2 e35dee55d1 Wintest improvements sked and options (#32)
* Improve Win-Test Integration in UI

* Rename Building Artifacts

* Document Changes

* Win-Test Fix QRG Sked
2026-04-19 13:00:26 +02:00
Rsclub2_2 b16dd1303a Added recommended minimal Resolution of Display 2026-03-27 23:08:33 +01:00
Rsclub2_2 db031bb5e3 Docs EN changed to include new Changes 2026-03-26 01:50:49 +01:00
Rsclub2_2 f93f3acbb0 Wiki Sync Pipelines
Wiki Sync fix

Wiki no longer empty commits

Add files via upload

a
2026-03-26 00:28:00 +01:00