docs(scripts): record the Node pin decision at the constant (#208)
The last open item on #208, and the only one that needed a person rather than a patch. Local runs stay pinned to 26.7.0 while CI and the production image run 20, and CI on 20 is the backstop.
The comment said this was "an open decision rather than an oversight", which was true when it was written and is not any more. Left as-is it would read to the next person as something still to settle, and they would either re-litigate it or quietly change the pin.
What the decision costs is written down rather than glossed: passing locally does not mean it ships, because a post-20 syntax or node: API is caught after a push rather than before one. That is the whole of the trade, and it is acceptable precisely because it is known — the failure mode this file's own docstring warns about is the one nobody knew they were exposed to.
Items 1, 2, 3 and 5 were already done in 06933ae and the commits around it: the alias check fails closed on a positive match, three stale documents were corrected, the throw quotes `nvm install $Version`, Use-NodeLatest is gone, DEFAULT_NODE_VERSION sits beside NODE_VERSION rather than being duplicated in two scripts, and the floor check runs before the switch where it can actually fire.
Closes #208
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -135,8 +135,12 @@ $script:DEFAULT_NODE_VERSION = '18.16.1'
|
||||
# not free: post-20 syntax and node: APIs pass here and fail in the pipeline, and
|
||||
# Node 26 ships an npm that can touch the lockfile in ways CI's npm reads
|
||||
# differently. The `engines` field in both package.json files records the floor
|
||||
# machine-readably; nothing yet catches "too new for where this ships". See #208
|
||||
# part 4, which is an open decision rather than an oversight.
|
||||
# machine-readably.
|
||||
#
|
||||
# Settled in #208 part 4: the pin stays at 26.7.0 and CI on 20 is the backstop.
|
||||
# The cost is knowing that "it passed locally" does not mean it ships — a post-20
|
||||
# API is caught after a push rather than before one. That is accepted rather than
|
||||
# unnoticed, which is the only reason this paragraph is here.
|
||||
|
||||
<#
|
||||
Switches to the pinned version and insists it clears the floor.
|
||||
|
||||
Reference in New Issue
Block a user