SITE_URL, the install scripts' O12_BASE_URL default, site-release's rewrite and the docs name https://012.dev.site; site.md says how the site is hosted and published and what f58b.n.zip serves.
- commit
- 9cad411e2eaed58a5c3d4327c1324ebea291bfc1
- parent
- 79b7fdec3386ac72f43cac013141a6d17897384f
- author
- Dami <dami.etoile@gmail.com>
- kind
- chore risk score 2.1 of 3, Jev's estimate
| M | README.md | 6 | ++-- |
| M | ROADMAP.md | 2 | +- |
| M | docs/ | 28 | +++++++++++----------- |
| M | docs/ | 39 | +++++++++++++++++++++--------- |
| M | docs/ | 6 | ++-- |
| M | scripts/ | 6 | ++-- |
| M | scripts/ | 8 | +++--- |
| M | scripts/ | 6 | ++-- |
| M | website/ | 2 | +- |
@@ -15,11 +15,11 @@ It is one pure-Go binary.
1515 ## Install1616 1717 ```sh18-curl -fsSL https://f58b.n.zip/install.sh | sh # macOS, Linux: into ~/.local/bin18+curl -fsSL https://012.dev.site/install.sh | sh # macOS, Linux: into ~/.local/bin1919 go install github.com/FelineStateMachine/012/cmd/012@latest # or build it with Go 1.272020 ```2121 22-On Windows, `irm https://f58b.n.zip/install.ps1 | iex` in PowerShell.22+On Windows, `irm https://012.dev.site/install.ps1 | iex` in PowerShell.2323 2424 Then run `012`, or `012 budget.012` to open a sheet. F1 shows every2525 shortcut, F10 or Alt+letter opens the menus, and Ctrl+K searches every@@ -107,7 +107,7 @@ Charts show as text here.
107107 108108 - [Documentation](docs/README.md): every guide, for using 012 and for109109 working on it, starting with [getting started](docs/getting-started/README.md);110- also as a site at [f58b.n.zip](https://f58b.n.zip/)110+ also as a site at [012.dev.site](https://012.dev.site/)111111 - [Roadmap](ROADMAP.md)112112 - Working on 012: `make build`, then `make check` before a push; see113113 [testing](docs/contributing/testing.md) and [CLAUDE.md](CLAUDE.md)@@ -133,7 +133,7 @@ needs cgo.
133133 134134 - `make check` before every push; demo tapes (`make demos`); annotated version tags with release notes (v0.2.0 onward; v0.1.0 remains on the Go module proxy): [Testing](docs/contributing/testing.md)135135 - A release checklist (XLSX output opened in Excel, LibreOffice and Google Sheets) and `make dist`, release archives cross-compiled locally with SHA256SUMS: [Releasing](docs/contributing/releasing.md)136-- Installing without Go: `curl -fsSL https://f58b.n.zip/install.sh | sh` (and `install.ps1` on Windows) with the release archives served from the docs site by `make site-release`: [Install and run](docs/getting-started/install.md), [Releasing](docs/contributing/releasing.md#publishing)136+- Installing without Go: `curl -fsSL https://012.dev.site/install.sh | sh` (and `install.ps1` on Windows) with the release archives served from the docs site by `make site-release`: [Install and run](docs/getting-started/install.md), [Releasing](docs/contributing/releasing.md#publishing)137137 - `make stress-report` flags regressions against the last release's run, allowing for noise: [Observability](docs/contributing/observability.md#regressions-against-the-last-release)138138 - Grafana: recent traces and a trace view of the nested spans: [Observability](docs/contributing/observability.md#the-stack)139139 - Every overlay, prompts and formula suggestions behind narrow hosts, most in packages of their own with fake-host tests: [Architecture](docs/contributing/architecture.md#the-ui)@@ -7,8 +7,9 @@ sidebar_position: 8
77 88 A release is an annotated version tag whose message is the release99 notes, and archives of the binaries built from it on a maintainer's10-machine, served with the docs site on the owner's nzip server along11-with the install scripts that download them. The GitHub repository only10+machine, served with the docs site at11+[012.dev.site](site.md#where-it-lives) along with the install scripts12+that download them. The GitHub repository only1213 hosts the code: nothing builds or publishes there.1314 1415 ## Checklist@@ -27,9 +28,8 @@ flowchart TD
2728 tag -->|the module proxy| install[go install ...@v1.2.3]2829 tag --> dist[make dist]2930 dist --> archives[dist/: archives, SHA256SUMS]30- archives --> site[make site-release]31- site --> push[nzip site push website/build public:012]32- push --> live[install.sh, /releases/v1.2.3/ and /releases/latest/ live]31+ archives --> publish[make site-publish]32+ publish --> live[install.sh, /releases/v1.2.3/ and /releases/latest/ live]3333 ```3434 3535 1. **`make check`** passes on the commit to be tagged (see@@ -64,13 +64,12 @@ flowchart TD
6464 ([Publishing](#publishing)):6565 6666 ```sh67- SITE_URL=https://f58b.n.zip make site-release VERSION=v1.2.368- nzip site push website/build public:01267+ make site-publish VERSION=v1.2.36968 ```7069 7170 then check the live copy: `SHA256SUMS` at72- `https://f58b.n.zip/releases/v1.2.3/` matches `dist/SHA256SUMS`, and73- `curl -fsSL https://f58b.n.zip/install.sh | PREFIX=$(mktemp -d) sh`71+ `https://012.dev.site/releases/v1.2.3/` matches `dist/SHA256SUMS`, and72+ `curl -fsSL https://012.dev.site/install.sh | PREFIX=$(mktemp -d) sh`7473 installs a `012` whose `012 version` prints v1.2.3.7574 7675 ## File fixtures@@ -145,11 +144,12 @@ copying them. `SITE_URL` also goes into the copied install scripts, so a
145144 site built for another address serves scripts that download from it.146145 147146 The site serves one release, `VERSION`, under both addresses; earlier148-releases stay installable with `go install ...@v1.2.3`. Every push149-replaces the whole site, so the docs are always published with150-`make site-release` ([The docs site](site.md#where-it-lives)): a push151-of a plain `make site` build leaves the install script without its152-archives.147+releases stay installable with `go install ...@v1.2.3`.148+`make site-publish` deploys the result149+([The docs site](site.md#where-it-lives)). Every deploy replaces the150+whole site, so the docs are always published with the release: a151+deploy of a plain `make site` build leaves the install script without152+its archives.153153 154154 The install scripts live in `scripts/install/`. `install.sh` is POSIX155155 sh (it runs under dash as well as sh) and needs curl or wget, tar, and@@ -21,25 +21,40 @@ the lockfile pins, with install scripts off (no dependency needs one).
2121 To look at the built site as a static host serves it, run2222 `npm run serve` in `website/` after `make site`. `SITE_URL` sets the2323 address canonical links and the sitemap use (`SITE_URL=https://... make24-site`); the site sits at the root of its host.24+site`), [012.dev.site](#where-it-lives) unless set; the site sits at the25+root of its host.2526 2627 ## Where it lives2728 28-The site is published at [f58b.n.zip](https://f58b.n.zip/), a public,29-permanent address on the owner's nzip server, which also serves the30-install scripts and the latest release's archives. To publish a new31-build to the same address:29+The site is published at [012.dev.site](https://012.dev.site/), which30+also serves the install scripts and the latest release's archives. It31+is a Cloudflare Worker with static assets and no code of its own,32+configured in `website/wrangler.jsonc`: the worker `012-site` serves33+`website/build`, `012.dev.site` is its custom domain (Cloudflare keeps34+the DNS record and the certificate), an address that names a page's35+directory without its trailing slash redirects to it, and an address36+with no file gets the site's 404 page. `website/static/_headers` gives37+the files whose extension names no type, `install.ps1` and38+`SHA256SUMS`, a text one. To publish a new build:3239 3340 ```sh34-SITE_URL=https://f58b.n.zip make site-release35-nzip site push website/build public:01241+make site-publish VERSION=v1.2.33642 ```3743 38-`make site-release` is `make site` with the release added39-([Publishing](releasing.md#publishing)); a push of a plain `make site`40-build would take the install script and the archives off the site.41-42-The target keeps its policies (public, no expiry) between pushes.44+`make site-publish` is `make site-release`, which is `make site` with45+the release added ([Publishing](releasing.md#publishing)), followed by46+`wrangler deploy` in `website/`, the version `website/package.json` pins.47+It needs Node 22 or later, which wrangler does, and wrangler logged in48+to the Cloudflare account that holds the `dev.site` zone49+(`npx wrangler login` in `website/`). Every deploy replaces the whole50+site, so a deploy of a plain `make site` build would take the install51+script and the archives off it. A file may be at most 25 MiB, which the52+release archives stay well under.53+54+`f58b.n.zip`, on the owner's nzip server, keeps links to the site55+there working: each page's address serves a page that sends the browser56+on to the same page here, and its `install.sh` and `install.ps1` run57+this site's.4358 4459 ## The build is a docs check4560 @@ -9,7 +9,7 @@ sidebar_position: 2
99 release in `~/.local/bin`:1010 1111 ```sh12-curl -fsSL https://f58b.n.zip/install.sh | sh12+curl -fsSL https://012.dev.site/install.sh | sh1313 ```1414 1515 It picks the archive for your OS and architecture, checks it against the@@ -20,13 +20,13 @@ when that directory isn't writable; `sh -s -- --version v0.3.0` picks a
2020 release. On Windows, in PowerShell:2121 2222 ```powershell23-irm https://f58b.n.zip/install.ps1 | iex23+irm https://012.dev.site/install.ps1 | iex2424 ```2525 2626 which installs `012.exe` into `%LOCALAPPDATA%\Programs\012\bin` and adds2727 that folder to your PATH, without administrator rights. The archives and2828 `SHA256SUMS` are also at29-[f58b.n.zip/releases/latest/](https://f58b.n.zip/releases/latest/) to29+[012.dev.site/releases/latest/](https://012.dev.site/releases/latest/) to3030 download by hand.3131 3232 With Go 1.27 or later, build it from source instead:@@ -2,7 +2,7 @@
22 # docs site's root with the release archives under /releases/; see33 # docs/getting-started/install.md.44 #5-# irm https://f58b.n.zip/install.ps1 | iex5+# irm https://012.dev.site/install.ps1 | iex66 #77 # It picks the archive for this architecture, checks its SHA256 against88 # the release's SHA256SUMS, puts 012.exe in@@ -11,13 +11,13 @@
1111 #1212 # $env:O12_VERSION a release other than the latest, like v1.2.31313 # $env:O12_INSTALL_DIR another folder for 012.exe14-# $env:O12_BASE_URL the site serving /releases/ (https://f58b.n.zip)14+# $env:O12_BASE_URL the site serving /releases/ (https://012.dev.site)1515 1616 $ErrorActionPreference = 'Stop'1717 $ProgressPreference = 'SilentlyContinue'1818 1919 function Install-012 {20- $base = if ($env:O12_BASE_URL) { $env:O12_BASE_URL } else { 'https://f58b.n.zip' }20+ $base = if ($env:O12_BASE_URL) { $env:O12_BASE_URL } else { 'https://012.dev.site' }2121 $version = if ($env:O12_VERSION) { $env:O12_VERSION } else { 'latest' }2222 if ($version -match '^[0-9]') { $version = "v$version" }2323 $dir = if ($env:O12_INSTALL_DIR) { $env:O12_INSTALL_DIR } else { Join-Path $env:LOCALAPPDATA 'Programs\012\bin' }@@ -3,8 +3,8 @@
33 # at the docs site's root with the release archives under /releases/;44 # see docs/getting-started/install.md.55 #6-# curl -fsSL https://f58b.n.zip/install.sh | sh7-# curl -fsSL https://f58b.n.zip/install.sh | sh -s -- --system6+# curl -fsSL https://012.dev.site/install.sh | sh7+# curl -fsSL https://012.dev.site/install.sh | sh -s -- --system88 #99 # It picks the archive for this OS and architecture, checks its SHA2561010 # against the release's SHA256SUMS, and puts 012 in ~/.local/bin, in@@ -14,10 +14,10 @@
1414 #1515 # --version v1.2.3 a release other than the latest (or O12_VERSION)1616 # --system install into /usr/local/bin17-# O12_BASE_URL the site serving /releases/ (https://f58b.n.zip)17+# O12_BASE_URL the site serving /releases/ (https://012.dev.site)1818 set -eu1919 20-base=${O12_BASE_URL:-https://f58b.n.zip}20+base=${O12_BASE_URL:-https://012.dev.site}2121 version=${O12_VERSION:-latest}2222 system=02323 @@ -60,9 +60,9 @@ fi
6060 fi6161 )6262 63-# The scripts name https://f58b.n.zip; a site built for another SITE_URL63+# The scripts name https://012.dev.site; a site built for another SITE_URL6464 # serves scripts that download from itself.65-url=${SITE_URL:-https://f58b.n.zip}65+url=${SITE_URL:-https://012.dev.site}6666 url=${url%/}6767 6868 rm -rf "$site/releases"@@ -78,6 +78,6 @@ for dir in "$version" latest; do
7878 } >"$site/releases/$dir/index.html"7979 done8080 for f in install.sh install.ps1; do81- sed "s|https://f58b\.n\.zip|$url|g" "scripts/install/$f" >"$site/$f"81+ sed "s|https://012\.dev\.site|$url|g" "scripts/install/$f" >"$site/$f"8282 done8383 echo "site-release: $version in website/build/releases/{$version,latest}, install.sh and install.ps1 at the root"@@ -14,7 +14,7 @@ const docsDir = path.join(repoDir, 'docs');
1414 1515 // The site is served at the root of its own host; SITE_URL names that1616 // host for canonical links and the sitemap.17-const url = process.env.SITE_URL || 'https://n.zip';17+const url = process.env.SITE_URL || 'https://012.dev.site';1818 1919 const config: Config = {2020 title: '012',