Manifest platform auto-detects as nodejs, not go — pin platform in .mokogitea manifest #753

Open
opened 2026-07-06 01:15:11 +00:00 by jmiller · 0 comments
Owner

Observation

During the first real dev → rc promotion (2026-07-06), pre-release.yml (run 34688) auto-detected the repo platform and logged:

Auto-detected platform: nodejs
if [[ "$PLATFORM" == joomla* ]] ...
::notice::Platform 'nodejs' — non-Joomla, skipping pre-release auto-bump
VERSION=""   STABILITY=""

platform_detect.php classifies MokoGitea as nodejs because of the root package.json (the TypeScript/Vue web frontend), even though MokoGitea is fundamentally a Go server.

Impact

  • Low/none for pre-release itself: release creation there is gated to platform == joomla*, so nodejs and go both skip it — the RC promotion correctly published nothing.
  • But per the versioning strategy, platform routes which version/packaging scheme applies (Joomla stream tags vs npm vs Composer vs Go semver). Being seen as nodejs would route MokoGitea to npm-style versioning rather than the intended scheme. MokoGitea's real release artifacts come from auto-release on merge to main (stable channel, mokogiteafork-YY.MM.PP.zip), so nothing is broken today, but the misclassification is latent risk for any flow that branches on platform.

Options

  1. Per-repo (quick): pin platform: go in the .mokogitea manifest so detection is overridden. Verify against the versioning strategy that go is the correct value for MokoGitea (its releases use YY.MM.PP, not Go semver — the "right" platform value may need confirming).
  2. Systemic (mokocli): teach MokoCLI/cli/platform_detect.php to prefer a primary-language signal (Go module / large .go tree) over a root package.json when both are present, so Go-repos-with-frontends aren't misread as nodejs. Helps every mixed Go+JS repo.

Refs

  • pre-release run 34688 (rc), MokoGitea-Fork#751 (deploy-rc), platform_detect at MokoCLI/cli/platform_detect.php

https://claude.ai/code/session_01Wsno14cxE49MstXFs9G5KT

## Observation During the first real `dev → rc` promotion (2026-07-06), `pre-release.yml` (run 34688) auto-detected the repo platform and logged: ``` Auto-detected platform: nodejs if [[ "$PLATFORM" == joomla* ]] ... ::notice::Platform 'nodejs' — non-Joomla, skipping pre-release auto-bump VERSION="" STABILITY="" ``` `platform_detect.php` classifies MokoGitea as **`nodejs`** because of the root `package.json` (the TypeScript/Vue web frontend), even though MokoGitea is fundamentally a **Go** server. ## Impact - Low/none for `pre-release` itself: release creation there is gated to `platform == joomla*`, so `nodejs` and `go` both skip it — the RC promotion correctly published nothing. - **But** per the versioning strategy, `platform` routes which version/packaging scheme applies (Joomla stream tags vs npm vs Composer vs Go semver). Being seen as `nodejs` would route MokoGitea to npm-style versioning rather than the intended scheme. MokoGitea's real release artifacts come from `auto-release` on merge to `main` (`stable` channel, `mokogiteafork-YY.MM.PP.zip`), so nothing is broken today, but the misclassification is latent risk for any flow that branches on `platform`. ## Options 1. **Per-repo (quick):** pin `platform: go` in the `.mokogitea` manifest so detection is overridden. Verify against the versioning strategy that `go` is the correct value for MokoGitea (its releases use `YY.MM.PP`, not Go semver — the "right" platform value may need confirming). 2. **Systemic (mokocli):** teach `MokoCLI/cli/platform_detect.php` to prefer a primary-language signal (Go module / large .go tree) over a root `package.json` when both are present, so Go-repos-with-frontends aren't misread as `nodejs`. Helps every mixed Go+JS repo. ## Refs - pre-release run 34688 (rc), MokoGitea-Fork#751 (deploy-rc), platform_detect at `MokoCLI/cli/platform_detect.php` https://claude.ai/code/session_01Wsno14cxE49MstXFs9G5KT
Sign in to join this conversation.