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
|
cd .. && git add station-master
|
||||||
```
|
```
|
||||||
|
|
||||||
Then bump this package's own version in `startos/versions/current.ts` (see
|
Then set this package's version in `startos/versions/current.ts` to **the same number**, as
|
||||||
[Versions](../start-technologies/projects/start-sdk/docs/src/versions.md)) with release notes
|
`<tag>:0` — `versions.md`'s consistency checklist requires the upstream half to match the
|
||||||
naming the Station Master version now bundled — e.g. "Bundles Station Master v0.5.2." — and
|
submodule tag exactly, so v0.5.3 becomes `0.5.3:0`. Give it release notes naming what changed for
|
||||||
rebuild (`make`).
|
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
|
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
|
`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
|
## Getting set up
|
||||||
|
|
||||||
1. Open this service's **Multiplayer Table** interface.
|
1. Run the **Get Join Secret** action from this service's Actions menu, and copy the value it
|
||||||
2. Run the **Get Join Secret** action from this service's Actions menu, and copy the value it
|
|
||||||
returns.
|
returns.
|
||||||
3. Share that secret, and the address you opened the interface at, with everyone you want to
|
2. Share that secret, and this service's address, with everyone you want to play with. Anyone
|
||||||
play with. Anyone holding the secret can create a new game or join one that hasn't started yet.
|
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
|
3. Open this service's **Multiplayer Table** interface. You'll land on the front page, which
|
||||||
someone else created), and enter the join secret when asked.
|
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
|
## Using Station Master
|
||||||
|
|
||||||
### Multiplayer Table
|
### Multiplayer Table
|
||||||
|
|
||||||
Create or join a game, seat players (including filling empty seats with a bot), and start. Once a
|
The front page offers solitaire, the replay viewer, and multiplayer. **Play multiplayer** takes you
|
||||||
game is underway, this same interface is where every player plays their turns and watches the
|
to the lobby: create or join a game, seat players (including filling empty seats with a bot), and
|
||||||
table — there is nothing else to open.
|
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
|
### Get Join Secret
|
||||||
|
|
||||||
|
|||||||
@@ -18,12 +18,12 @@ export const setInterfaces = sdk.setupInterfaces(async ({ effects }) => {
|
|||||||
masked: false,
|
masked: false,
|
||||||
schemeOverride: null,
|
schemeOverride: null,
|
||||||
username: null,
|
username: null,
|
||||||
// `/` serves index.html — the game's marketing splash, identical to the public static
|
// The splash at `/`, which is the front door to all three ways to play: solitaire, the
|
||||||
// solitaire site and with no lobby or Multiplayer button on it (both live on play.html; see
|
// replay viewer, and multiplayer. Its multiplayer door probes `/api/health` on load, so
|
||||||
// src/web/main.ts's `start()` and the door link in index.html). That page makes sense for a
|
// served from here it opens the lobby, and served as a plain static site it says plainly
|
||||||
// stranger landing on the public site, not for someone who just installed a dedicated
|
// that it needs a server. This briefly pointed at `/play.html` instead, back when that door
|
||||||
// multiplayer server — so this interface opens straight at the game screen instead.
|
// was hardcoded to "Coming soon" and the splash was a dead end on a real server.
|
||||||
path: '/play.html',
|
path: '',
|
||||||
query: {},
|
query: {},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk'
|
import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk'
|
||||||
|
|
||||||
export const current = VersionInfo.of({
|
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: {
|
releaseNotes: {
|
||||||
en_US: 'Initial StartOS package, bundling Station Master v0.5.1.',
|
en_US: 'Bundles Station Master v0.5.2: the splash page opens the multiplayer lobby.',
|
||||||
es_ES: 'Paquete inicial para StartOS, con Station Master v0.5.1.',
|
es_ES: 'Incluye Station Master v0.5.2: la página de inicio abre la sala multijugador.',
|
||||||
de_DE: 'Erstes StartOS-Paket, mit Station Master v0.5.1.',
|
de_DE: 'Enthält Station Master v0.5.2: Die Startseite öffnet die Mehrspieler-Lobby.',
|
||||||
pl_PL: 'Pierwszy pakiet dla StartOS, zawiera Station Master v0.5.1.',
|
pl_PL: 'Zawiera Station Master v0.5.2: strona powitalna otwiera poczekalnię trybu wieloosobowego.',
|
||||||
fr_FR: 'Premier paquet StartOS, avec Station Master v0.5.1.',
|
fr_FR: "Inclut Station Master v0.5.2 : la page d'accueil ouvre le salon multijoueur.",
|
||||||
},
|
},
|
||||||
migrations: {
|
migrations: {
|
||||||
up: async ({ effects }) => {},
|
up: async ({ effects }) => {},
|
||||||
|
|||||||
+1
-1
Submodule station-master updated: e76bd77099...62b6ed7e1b
Reference in New Issue
Block a user