Skip to content

Commit 1969d42

Browse files
authored
docs: drop the "Unreleased" remarks after 0.5.3 and fix the source-build zip example (#42)
1 parent 3349d83 commit 1969d42

20 files changed

Lines changed: 84 additions & 108 deletions

‎README.md‎

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@ node -v
3838
`vfox search nodejs` lists every release, with the npm that comes with it and a
3939
mark on the ones of an LTS line. In an interactive terminal it lets you pick one.
4040

41-
Behavior that only exists on `main` and not in the latest release is marked
42-
"Unreleased" in the pages below. [docs/changes.md](docs/changes.md) lists it, and
43-
[docs/source-build.md](docs/source-build.md) gets you `main`.
44-
4541
### Example: Ubuntu 26.04
4642

4743
```bash
@@ -70,9 +66,7 @@ The Node.js musl builds need `libstdc++`, and the ones of 26.8.0 and later need
7066
`libatomic` as well. A stock Alpine image has neither, and the plugin does not
7167
install system libraries. The install stops with a message that names the
7268
missing package and the command that installs it (`apk add libatomic`; OpenWrt
73-
calls `libstdc++` the `libstdcpp` package). Unreleased: release 0.5.2 checks for
74-
`libstdc++` only, and a missing `libatomic` shows when `node` fails with `Error
75-
loading shared library libatomic.so.1`. musl builds exist for x64 and arm64
69+
calls `libstdc++` the `libstdcpp` package). musl builds exist for x64 and arm64
7670
only. musl details (OpenWrt, tarball matrix, mirror fallback, which releases
7771
have a build): see [docs/musl.md](docs/musl.md).
7872

@@ -91,10 +85,9 @@ Node.js publishes packages for Linux (x64, arm64, ppc64le, s390x), macOS (x64 an
9185
arm64) and Windows (x64, arm64, and x86 up to 22.x). Not every release has every
9286
one of them: Windows on ARM starts at 19.9.0, Linux arm64 at 4.0.0, Apple silicon
9387
at 16.0.0 (older releases install the x64 package under Rosetta 2). 32-bit ARM
94-
Linux has packages up to 23.11.1. Unreleased: release 0.5.2 cannot install them.
95-
riscv64 and loong64 are not supported. `vfox search` lists every release
96-
whatever your platform is. See [docs/platforms.md](docs/platforms.md) for the
97-
table.
88+
Linux has packages up to 23.11.1. riscv64 and loong64 are not supported.
89+
`vfox search` lists every release whatever your platform is. See
90+
[docs/platforms.md](docs/platforms.md) for the table.
9891

9992
## npm and global packages
10093

‎README_CN.md‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ node -v
3232

3333
`vfox search nodejs` 会列出每个版本及其自带的 npm,属于 LTS 版本线的版本带有标记。在交互式终端里可以从中选一个。
3434

35-
只存在于 `main`、还没进入最新发布版的行为,在下面各页里标有“未发布”。[docs/zh-CN/changes.md](docs/zh-CN/changes.md) 里列出了这些行为,想直接用上 `main`,见 [docs/zh-CN/source-build.md](docs/zh-CN/source-build.md)。
36-
3735
### 示例:Ubuntu 26.04
3836

3937
```bash
@@ -54,15 +52,15 @@ vfox install nodejs@24
5452
vfox use --global nodejs@24
5553
```
5654

57-
Node.js 的 musl 构建需要 `libstdc++`,26.8.0 及以后的构建还需要 `libatomic`。原版 Alpine 镜像两者都没有,而插件不会安装系统库。安装会中止,并给出一条提示,写明缺少哪个包以及安装它的命令(`apk add libatomic`;OpenWrt 把 `libstdc++` 称为 `libstdcpp` 包)。未发布:0.5.2 只检查 `libstdc++`,缺少 `libatomic` 时,要到 `node` 运行失败、报 `Error loading shared library libatomic.so.1` 才能发现。musl 构建只提供 x64 和 arm64。musl 的详细情况(OpenWrt、压缩包对照表、镜像回退、哪些版本有构建)见 [docs/zh-CN/musl.md](docs/zh-CN/musl.md)。
55+
Node.js 的 musl 构建需要 `libstdc++`,26.8.0 及以后的构建还需要 `libatomic`。原版 Alpine 镜像两者都没有,而插件不会安装系统库。安装会中止,并给出一条提示,写明缺少哪个包以及安装它的命令(`apk add libatomic`;OpenWrt 把 `libstdc++` 称为 `libstdcpp` 包)。musl 构建只提供 x64 和 arm64。musl 的详细情况(OpenWrt、压缩包对照表、镜像回退、哪些版本有构建)见 [docs/zh-CN/musl.md](docs/zh-CN/musl.md)。
5856

5957
## 版本与命名
6058

6159
版本就是版本号:`24.21.0`,也可以只写开头的部分,如 `24.21` 和 `24`,它们安装对应版本线的最新版本。`latest` 是所有版本线中最新的版本,不论是否属于 LTS。这里没有 `lts` 别名,请写明版本线(`nodejs@24`)。安装后的版本名就是版本号 `24.21.0`,`vfox uninstall` 需要写完整。`vfox use` 和 `vfox search` 怎样处理这些写法,详见 [docs/zh-CN/versions.md](docs/zh-CN/versions.md)。
6260

6361
## 平台
6462

65-
Node.js 为 Linux(x64、arm64、ppc64le、s390x)、macOS(x64 和 arm64)和 Windows(x64、arm64,以及到 22.x 为止的 x86)发布包。并不是每个版本都有上面所有的包:Windows on ARM 从 19.9.0 起,Linux arm64 从 4.0.0 起,Apple silicon 从 16.0.0 起(更早的版本在 Rosetta 2 下安装 x64 的包)。32 位 ARM Linux 到 23.11.1 为止有包。未发布:0.5.2 无法安装它们。不支持 riscv64 和 loong64。不论你的平台是什么,`vfox search` 都会列出所有版本。表格见 [docs/zh-CN/platforms.md](docs/zh-CN/platforms.md)。
63+
Node.js 为 Linux(x64、arm64、ppc64le、s390x)、macOS(x64 和 arm64)和 Windows(x64、arm64,以及到 22.x 为止的 x86)发布包。并不是每个版本都有上面所有的包:Windows on ARM 从 19.9.0 起,Linux arm64 从 4.0.0 起,Apple silicon 从 16.0.0 起(更早的版本在 Rosetta 2 下安装 x64 的包)。32 位 ARM Linux 到 23.11.1 为止有包。不支持 riscv64 和 loong64。不论你的平台是什么,`vfox search` 都会列出所有版本。表格见 [docs/zh-CN/platforms.md](docs/zh-CN/platforms.md)。
6664

6765
## npm 与全局包
6866

‎docs/changes.md‎

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,18 @@
44

55
What changed in each release, as a user notices it. GitHub's
66
[release pages](https://github.com/version-fox/vfox-nodejs/releases) list the
7-
pull requests. The newest release at the time of writing is 0.5.2, and `main` is
8-
ahead of it by everything under "Unreleased".
9-
[source-build.md](source-build.md) gets you those changes now.
7+
pull requests.
108

11-
## Unreleased
9+
## 0.5.3 (2026-10-20)
1210

1311
- 32-bit ARM Linux installs the `linux-armv7l` package, which Node.js published
1412
up to 23.11.1: `vfox install nodejs@20` works there. vfox's `armv7` build
1513
reports `arm`, and release 0.5.2 asks for `linux-arm`, which does not exist, so
1614
every install on 32-bit ARM ends with `Node.js package
1715
node-v20.19.5-linux-arm.tar.gz is not listed in ...`. From 24 on there is no
1816
package, and the ARMv6 one is never chosen. See
19-
[platforms.md](platforms.md#not-supported).
17+
[platforms.md](platforms.md#not-supported)
18+
([#41](https://github.com/version-fox/vfox-nodejs/pull/41)).
2019
- On musl the install stops when the unpacked `node` cannot run for lack of a
2120
library. After the unpack the plugin runs `node --version` once, and the dynamic
2221
loader names what is missing. The musl packages of 26.8.0 and later need
@@ -27,7 +26,8 @@ ahead of it by everything under "Unreleased".
2726
install succeeds and `node` fails with `Error loading shared library
2827
libatomic.so.1`. The message about `libstdc++` names its command too, where
2928
release 0.5.2 says `It is normally installed automatically`. See
30-
[musl.md](musl.md#requirements).
29+
[musl.md](musl.md#requirements)
30+
([#41](https://github.com/version-fox/vfox-nodejs/pull/41)).
3131
- `.nvmrc` and `.node-version` name a release by its numbers under
3232
`legacyVersionFile.strategy` `latest_installed` and `latest_available`. With
3333
22.9.0 and 22.23.3 installed, `22` selects 22.23.3, where release 0.5.2 selects
@@ -36,14 +36,28 @@ ahead of it by everything under "Unreleased".
3636
nothing for `22.x`. Only a leading `v` is dropped, so `lts/<codename>` works for
3737
a codename with a `v` in it. Text that is no release number (`node`, `(`,
3838
`22[`) is left alone, where release 0.5.2 fails with `unfinished capture at
39-
EOS` and vfox hides the error. See [nvmrc.md](nvmrc.md#how-a-prefix-is-matched).
39+
EOS` and vfox hides the error. See
40+
[nvmrc.md](nvmrc.md#how-a-prefix-is-matched)
41+
([#41](https://github.com/version-fox/vfox-nodejs/pull/41)).
4042
- A failed request for `SHASUMS256.txt` says why: `get checksum failed: HTTP 404
4143
from https://nodejs.org/dist/v24.99.0/SHASUMS256.txt`, or the network error,
4244
such as `x509: certificate signed by unknown authority`. Release 0.5.2 prints
4345
`get checksum failed` and nothing else. See
44-
[troubleshooting.md](troubleshooting.md#messages-from-the-plugin).
45-
- `VFOX_NODEJS_MIRROR` may end in several slashes. Release 0.5.2 strips one.
46-
- The documentation has a Chinese version, see [README_CN.md](../README_CN.md).
46+
[troubleshooting.md](troubleshooting.md#messages-from-the-plugin)
47+
([#41](https://github.com/version-fox/vfox-nodejs/pull/41)).
48+
- `VFOX_NODEJS_MIRROR` may end in several slashes. Release 0.5.2 strips one
49+
([#41](https://github.com/version-fox/vfox-nodejs/pull/41)).
50+
- The documentation has a page for versions and names, platforms, `.nvmrc` and
51+
`.node-version`, npm, troubleshooting, development and the changes, and a
52+
Chinese version, see [README_CN.md](../README_CN.md)
53+
([#41](https://github.com/version-fox/vfox-nodejs/pull/41)).
54+
- The Windows e2e suite runs from the host through `tests/e2e/windows/run.ps1`,
55+
which replaces the Docker Compose runner. The script fetches PowerShell,
56+
PortableGit and Go into a cache that every combo container mounts read-only at
57+
`C:\tools`, so no image runs the PowerShell MSI and the Git installer any
58+
more, and CI starts all the Windows combos at once. See
59+
[e2e.md](e2e.md#windows-11)
60+
([#40](https://github.com/version-fox/vfox-nodejs/pull/40)).
4761

4862
## 0.5.2 (2026-10-17)
4963

‎docs/development.md‎

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,6 @@ fallback when that finds nothing or the request fails.
135135
`vfox` then selects the answer if it is installed. User-facing rules and
136136
examples are in [nvmrc.md](nvmrc.md) and [lts.md](lts.md).
137137

138-
Unreleased: release 0.5.2 matches the query as a Lua pattern against the start of
139-
each release, in the order vfox lists them, and takes the first one that matches.
140-
See [nvmrc.md](nvmrc.md#how-a-prefix-is-matched).
141-
142138
## When Node.js promotes a line to LTS
143139

144140
Each October an even-numbered line gets a codename, see
@@ -253,12 +249,18 @@ Afterwards `plugins/nodejs.json` in
253249
[vfox-plugins](https://github.com/version-fox/vfox-plugins) shows the version
254250
that `vfox add nodejs` serves.
255251

256-
The documentation marks what is newer than the last release with "Unreleased"
257-
("未发布" in Chinese). After a release, move those entries in
258-
[changes.md](changes.md) under the new version and take the remarks out, in both
259-
languages: `grep -rn -i -e unreleased -e 未发布 docs README*`. Also search for
260-
the number of the previous release: a few sentences compare against it without
261-
saying "Unreleased".
252+
While `main` is ahead of the last release, the documentation marks what is newer
253+
with "Unreleased" ("未发布" in Chinese): the entries sit under an "Unreleased"
254+
heading at the top of [changes.md](changes.md), a page that describes the new
255+
behavior adds a remark that starts with "Unreleased: release X.Y.Z" and tells
256+
what the last release does, and the README has a paragraph that explains the
257+
mark and points at [changes.md](changes.md) and
258+
[source-build.md](source-build.md). After a release, move the entries in
259+
[changes.md](changes.md) under the new version, with the pull request of each,
260+
and take the remarks and the README paragraph out, in both languages:
261+
`grep -rn -i -e unreleased -e 未发布 docs README*`. Also search for the number of
262+
the previous release: a few sentences compare against it without saying
263+
"Unreleased".
262264

263265
## Writing the docs
264266

‎docs/mirror.md‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,8 @@ VFOX_NODEJS_MIRROR=https://example.invalid/dist vfox search nodejs
9393
```
9494

9595
On the same mirror `vfox install nodejs@24.21.0` fails with `get checksum failed:
96-
Get "https://example.invalid/dist/v24.21.0/SHASUMS256.txt": ...` (Unreleased:
97-
release 0.5.2 leaves out what follows `failed`). A mirror that serves no
98-
`index.json` at that address fails the search with
96+
Get "https://example.invalid/dist/v24.21.0/SHASUMS256.txt": ...`. A mirror that
97+
serves no `index.json` at that address fails the search with
9998
`Failed to fetch Node.js versions: HTTP 404`, see
10099
[troubleshooting.md](troubleshooting.md#network). vfox caches the search for 12
101100
hours, so after a change run `vfox config cache.availableHookDuration 0` or

‎docs/musl.md‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,11 @@ gets the message without a command. A symbol that the libraries lack, which the
5858
loader reports as `Error relocating ...: symbol not found`, ends in `Node.js
5959
(musl build) cannot run on this system: Error relocating ...`.
6060

61-
Unreleased: release 0.5.2 looks for `libstdc++` only, and its message says `It
62-
is normally installed automatically; install it and reinstall.` instead of
63-
naming the command. It does not look for `libatomic`: the install succeeds, and
64-
`node` then fails.
61+
The loader prints this for a missing `libatomic`, and the hook reads the name of
62+
the library from it. Before 0.5.3 the plugin did not run `node` after the
63+
unpack, so a release that an earlier version of the plugin installed fails with
64+
these lines when you run it. Installing the library is all it needs, there is
65+
nothing to reinstall:
6566

6667
```text
6768
Error loading shared library libatomic.so.1: No such file or directory (needed by /root/.vfox/cache/nodejs/v-26.12.0/nodejs-26.12.0/bin/node)

‎docs/nvmrc.md‎

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,6 @@ Before it looks at the text, the plugin removes all whitespace, drops a leading
7474
the newest release with that codename. A release number may end in `x`, `X` or
7575
`*` for the parts it leaves open: `22.x`, `22.x.x` and `22.*` all mean 22.
7676

77-
Unreleased: release 0.5.2 drops every `v` of the file, so a codename with a `v`
78-
in it does not match, and it does not know `22.x`.
79-
8077
The results on 2026-10-21 with 20.20.2, 22.23.3, 24.21.0, 25.9.0 and 26.12.0
8178
installed, when 24.22.0 is the newest 24.x and 22.23.3 the newest 22.x:
8279

@@ -126,13 +123,6 @@ starts with it:
126123
22.3.0 and 22.23.3 installed, `22` selects 22.23.3 and `22.3` selects 22.3.0.
127124
`vfox use nodejs@22` compares numbers as well.
128125

129-
Unreleased: release 0.5.2 compares text, and takes the first installed release
130-
that starts with it. `22.2` also matches `22.23.3`, and with 22.9.0 and 22.23.3
131-
installed `22` under `latest_installed` selects 22.9.0 (checked with 22.9.0,
132-
22.3.0 and 22.23.3 installed). Keep one release per line installed, or write the
133-
full release number, to get the same answer there. The text is also used as a
134-
Lua pattern, so `22.*` happens to work and `22.x` does not.
135-
136126
## Not finding it
137127

138128
If the release does not switch:

‎docs/platforms.md‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ in [development.md](development.md#refreshing-the-platform-table).
3939
| Linux ppc64le | `linux-ppc64le.tar.gz` | 4.3.2 and later, except 5.0.0 to 5.6.0 |
4040
| Linux s390x | `linux-s390x.tar.gz` | 6.6.0 and later |
4141
| Linux 386 | `linux-x86.tar.gz` | 0.8.6 to 9.11.2, except 0.9.0, 0.11.4 and 0.11.6 |
42-
| Linux arm | `linux-armv7l.tar.gz` | 4.0.0 to 23.11.1, except 8.1.1. Unreleased: release 0.5.2 asks for `linux-arm`, which Node.js never published, so every install fails |
42+
| Linux arm | `linux-armv7l.tar.gz` | 4.0.0 to 23.11.1, except 8.1.1 |
4343
| Linux amd64, musl | `linux-x64-musl.tar.gz` | see [musl.md](musl.md#which-releases-have-a-musl-build) |
4444
| Linux arm64, musl | `linux-arm64-musl.tar.gz` | see [musl.md](musl.md#which-releases-have-a-musl-build) |
4545
| macOS amd64 | `darwin-x64.tar.gz` | 0.8.6 and later, except 0.9.0, 0.11.4 and 0.11.6 |
@@ -65,9 +65,7 @@ above, see [troubleshooting.md](troubleshooting.md#messages-from-the-plugin).
6565
Node.js published up to 23.11.1. From 24 on there is none, and the install
6666
ends with `Node.js package node-v26.12.0-linux-armv7l.tar.gz is not listed in
6767
...`. The ARMv6 package (`linux-armv6l`, 4.0.0 to 11.15.0 on nodejs.org) is
68-
never chosen. Unreleased: release 0.5.2 asks for `linux-arm`, which Node.js
69-
never published, so every install on 32-bit ARM fails with `Node.js package
70-
node-v20.19.5-linux-arm.tar.gz is not listed in ...`.
68+
never chosen.
7169
- **Linux riscv64 and loong64.** nodejs.org has no packages for them. The
7270
[Unofficial Builds](https://github.com/nodejs/unofficial-builds) site has
7371
riscv64 (17.7.1 to 26.0.0) and loong64 (18.18.0 and later), but the plugin

‎docs/source-build.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ and `lib/` at its top level; that is the plugin package contract (see the
1515
[shared workflow documentation](https://github.com/version-fox/plugin-manifest-action)).
1616

1717
A released plugin zip URL also works as `--source`, e.g.
18-
`vfox add --source https://github.com/version-fox/vfox-nodejs/releases/download/v0.0.5/vfox-nodejs_0.0.5.zip`.
18+
`vfox add --source https://github.com/version-fox/vfox-nodejs/releases/download/v0.5.3/vfox-nodejs-0.5.3.zip`.
1919

2020
Prerequisites on all systems: [vfox](https://github.com/version-fox/vfox)
2121
itself plus `git`.

‎docs/troubleshooting.md‎

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ by unknown authority`, `... connection refused`, `... EOF`) means the server
2727
could not be reached: a mirror that is down, a proxy, a TLS problem. See
2828
[Network](#network).
2929

30-
Unreleased: release 0.5.2 prints `get checksum failed` and nothing else, so the
31-
cause is hidden. `vfox search nodejs` asks the same server for the index and
32-
prints the real error.
33-
3430
### `Node.js package node-v19.8.1-win-arm64.zip is not listed in https://nodejs.org/dist/v19.8.1/SHASUMS256.txt`
3531

3632
The release exists, and Node.js published no package for your platform under the
@@ -73,16 +69,11 @@ The message names the package, and the command that installs it on Alpine
7369
after the unpack and nothing is registered. Install the library and run the
7470
install again. See [musl.md](musl.md#requirements).
7571

76-
Unreleased: release 0.5.2 looks for `libstdc++` only, and its message has no
77-
command. A missing `libatomic` shows later, as an error of `node` itself, see
78-
below.
79-
8072
### `Node.js (musl build) cannot run on this system: Error relocating ...`
8173

8274
The unpacked `node` needs a symbol that no library of the system provides. The
83-
install fails after the unpack and nothing is registered. Unreleased: release
84-
0.5.2 does not run `node` after the unpack, and the error shows when you run it.
85-
See [musl.md](musl.md#requirements).
75+
install fails after the unpack and nothing is registered. See
76+
[musl.md](musl.md#requirements).
8677

8778
### `checksum error`
8879

@@ -142,12 +133,13 @@ These come from `node` after a successful install.
142133
- `Error loading shared library libatomic.so.1: No such file or directory`,
143134
followed by `Error relocating ...: __atomic_compare_exchange: symbol not
144135
found`, on Alpine. The musl packages of 26.8.0 and later need `libatomic`:
145-
`apk add libatomic`. Unreleased: the install itself stops with the message
146-
above, and release 0.5.2 gets this far. See [musl.md](musl.md#requirements).
136+
`apk add libatomic`. Since 0.5.3 the install itself stops with the message
137+
above, so this is a release that an earlier version installed. See
138+
[musl.md](musl.md#requirements).
147139
- `Error relocating ... symbol not found` on a musl system, without the
148-
`libatomic` line above. A library is missing or too old. Unreleased: the
149-
install stops with `cannot run on this system`, and release 0.5.2 gets this
150-
far. See [musl.md](musl.md#requirements).
140+
`libatomic` line above. A library is missing or too old. Since 0.5.3 the
141+
install stops with `cannot run on this system` when `node --version` fails
142+
like this. See [musl.md](musl.md#requirements).
151143

152144
## Network
153145

@@ -175,8 +167,7 @@ While `proxy.enable` is `false`, the usual `HTTP_PROXY`, `HTTPS_PROXY` and
175167
as `proxyconnect tcp: dial tcp 127.0.0.1:7890: connect: connection refused`.
176168

177169
The usual failures of `vfox search nodejs`. `vfox install` reports the same cause
178-
after `get checksum failed:`. Unreleased: release 0.5.2 leaves it out, and only
179-
the search prints it:
170+
after `get checksum failed:`:
180171

181172
| After `Failed to fetch Node.js versions:` | Cause |
182173
| --- | --- |

0 commit comments

Comments
 (0)