Bundle Station Master v0.5.2, and fix the package version scheme
Submodule pin moves to v0.5.2, which carries the working splash-page
multiplayer door and the GET /api/health probe behind it.
The interface goes back to serving `/` — the splash, which is the front
door to all three ways to play. It pointed at /play.html only because the
splash's multiplayer door was hardcoded to "Coming soon", making the front
page a dead end on a real server; v0.5.2 removes the reason for the
workaround. The splash now probes /api/health on load, so served from here
it opens the lobby and served as a plain static site it says plainly that
it needs a server.
The package version was wrong and is corrected: 1.0.0:0 -> 0.5.2:0. That
1.0.0 was the scaffold's placeholder, left in by mistake — versions.md's
consistency checklist requires the upstream half to match the bundled tag,
which is what makes "bump the pin, bump the version" one mechanical action
rather than a judgement call. No historical version file is needed: the
placeholder carried no migration and was never published anywhere.
The correction is a downgrade in ExVer terms, so StartOS refused to install
over the existing copy ("uninit target range `!` is unsatisfiable"). The
installed package was therefore removed and reinstalled — checked first
that the volume held only an auto-generated join secret and no games. Two
consequences, both one-time and both recorded in UPDATING.md: the join
secret is regenerated, and the host's public domain binding was dropped
with the uninstall and has to be re-added.
Verified on phoenix.local: builds as v0.5.2:0, installs, starts, and serves
/api/health 200 with the right body; the splash carries all three doors
including a live ./play.html?lobby, no "Coming soon" anywhere, all three
ids the probe addresses present, and #lobby rendering on play.html?lobby.
This commit is contained in:
+10
-4
@@ -29,10 +29,16 @@ cd station-master && git fetch --tags && git checkout v<new version>
|
||||
cd .. && git add station-master
|
||||
```
|
||||
|
||||
Then bump this package's own version in `startos/versions/current.ts` (see
|
||||
[Versions](../start-technologies/projects/start-sdk/docs/src/versions.md)) with release notes
|
||||
naming the Station Master version now bundled — e.g. "Bundles Station Master v0.5.2." — and
|
||||
rebuild (`make`).
|
||||
Then set this package's version in `startos/versions/current.ts` to **the same number**, as
|
||||
`<tag>:0` — `versions.md`'s consistency checklist requires the upstream half to match the
|
||||
submodule tag exactly, so v0.5.3 becomes `0.5.3:0`. Give it release notes naming what changed for
|
||||
a player, then rebuild (`make`). Raise the `:0` instead, leaving the upstream half alone, when the
|
||||
change is packaging-only and the bundled game has not moved.
|
||||
|
||||
> The initial release shipped as `1.0.0:0` — the scaffold's placeholder, left in by mistake while
|
||||
> the game was at 0.5.1. It was corrected to `0.5.2:0` before the package was ever published
|
||||
> anywhere, which is the only reason a downgrade was harmless: `0.5.2:0` sorts *below* `1.0.0:0`,
|
||||
> so an installed copy had to be removed rather than updated over.
|
||||
|
||||
If the jump carries a multiplayer protocol or persistence-format change (check the game repo's
|
||||
`CHANGELOG.md` and `docs/architecture/multiplayer.md`), read it before bumping: a running
|
||||
|
||||
+14
-9
@@ -14,21 +14,26 @@ interface below; there is nothing else to install or configure on a player's sid
|
||||
|
||||
## Getting set up
|
||||
|
||||
1. Open this service's **Multiplayer Table** interface.
|
||||
2. Run the **Get Join Secret** action from this service's Actions menu, and copy the value it
|
||||
1. Run the **Get Join Secret** action from this service's Actions menu, and copy the value it
|
||||
returns.
|
||||
3. Share that secret, and the address you opened the interface at, with everyone you want to
|
||||
play with. Anyone holding the secret can create a new game or join one that hasn't started yet.
|
||||
4. In the browser, click **Multiplayer**, then **Create Game** (or **Join Game** with a game code
|
||||
someone else created), and enter the join secret when asked.
|
||||
2. Share that secret, and this service's address, with everyone you want to play with. Anyone
|
||||
holding the secret can create a new game or join one that hasn't started yet.
|
||||
3. Open this service's **Multiplayer Table** interface. You'll land on the front page, which
|
||||
offers three ways in: solitaire, the replay viewer, and multiplayer.
|
||||
4. Click **Play multiplayer**, then **Create Game** (or **Join Game** with a game code someone
|
||||
else created), and enter the join secret when asked.
|
||||
|
||||
## Using Station Master
|
||||
|
||||
### Multiplayer Table
|
||||
|
||||
Create or join a game, seat players (including filling empty seats with a bot), and start. Once a
|
||||
game is underway, this same interface is where every player plays their turns and watches the
|
||||
table — there is nothing else to open.
|
||||
The front page offers solitaire, the replay viewer, and multiplayer. **Play multiplayer** takes you
|
||||
to the lobby: create or join a game, seat players (including filling empty seats with a bot), and
|
||||
start. Once a game is underway, this same interface is where every player plays their turns and
|
||||
watches the table — there is nothing else to open.
|
||||
|
||||
Solitaire runs entirely in your own browser and needs nothing from the server, so it works here
|
||||
exactly as it does on the public Station Master site.
|
||||
|
||||
### Get Join Secret
|
||||
|
||||
|
||||
@@ -18,12 +18,12 @@ export const setInterfaces = sdk.setupInterfaces(async ({ effects }) => {
|
||||
masked: false,
|
||||
schemeOverride: null,
|
||||
username: null,
|
||||
// `/` serves index.html — the game's marketing splash, identical to the public static
|
||||
// solitaire site and with no lobby or Multiplayer button on it (both live on play.html; see
|
||||
// src/web/main.ts's `start()` and the door link in index.html). That page makes sense for a
|
||||
// stranger landing on the public site, not for someone who just installed a dedicated
|
||||
// multiplayer server — so this interface opens straight at the game screen instead.
|
||||
path: '/play.html',
|
||||
// The splash at `/`, which is the front door to all three ways to play: solitaire, the
|
||||
// replay viewer, and multiplayer. Its multiplayer door probes `/api/health` on load, so
|
||||
// served from here it opens the lobby, and served as a plain static site it says plainly
|
||||
// that it needs a server. This briefly pointed at `/play.html` instead, back when that door
|
||||
// was hardcoded to "Coming soon" and the splash was a dead end on a real server.
|
||||
path: '',
|
||||
query: {},
|
||||
})
|
||||
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk'
|
||||
|
||||
export const current = VersionInfo.of({
|
||||
version: '1.0.0:0',
|
||||
// `<upstream>:<downstream>` — the upstream half tracks the bundled Station Master tag exactly
|
||||
// (`versions.md`'s consistency checklist), so bumping the submodule pin and bumping this are one
|
||||
// action. The downstream half moves only for packaging-only changes.
|
||||
version: '0.5.2:0',
|
||||
releaseNotes: {
|
||||
en_US: 'Initial StartOS package, bundling Station Master v0.5.1.',
|
||||
es_ES: 'Paquete inicial para StartOS, con Station Master v0.5.1.',
|
||||
de_DE: 'Erstes StartOS-Paket, mit Station Master v0.5.1.',
|
||||
pl_PL: 'Pierwszy pakiet dla StartOS, zawiera Station Master v0.5.1.',
|
||||
fr_FR: 'Premier paquet StartOS, avec Station Master v0.5.1.',
|
||||
en_US: 'Bundles Station Master v0.5.2: the splash page opens the multiplayer lobby.',
|
||||
es_ES: 'Incluye Station Master v0.5.2: la página de inicio abre la sala multijugador.',
|
||||
de_DE: 'Enthält Station Master v0.5.2: Die Startseite öffnet die Mehrspieler-Lobby.',
|
||||
pl_PL: 'Zawiera Station Master v0.5.2: strona powitalna otwiera poczekalnię trybu wieloosobowego.',
|
||||
fr_FR: "Inclut Station Master v0.5.2 : la page d'accueil ouvre le salon multijoueur.",
|
||||
},
|
||||
migrations: {
|
||||
up: async ({ effects }) => {},
|
||||
|
||||
+1
-1
Submodule station-master updated: e76bd77099...62b6ed7e1b
Reference in New Issue
Block a user