@listen-fire/handbook 0.12.0-rc.6 → 0.12.0-rc.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,20 +23,32 @@ something reads like a special case, look for the position and the edge.
23
23
 
24
24
  ### language-versions
25
25
 
26
- Read the two-word name on an automation — "Quiet Heron", "Bright Otter", the current "Dancing Wren" — as
27
- the version of this language its text is written in. The automation validates,
28
- saves and runs as that version, and an edit never changes it; a new automation
29
- is written in the current version. So check an edit to an existing automation
30
- as the version it is written in, not as the current one.
31
-
32
- A warning on an automation says something keeps it on an older version: the
33
- current version reports errors for its text, or marks a construct whose meaning
34
- differs between the two versions, which blocks the move as surely as an error.
26
+ An automation is pinned to the language release its text was written against,
27
+ a version such as \`0.12.0\`. The automation validates, saves and runs under that
28
+ pin, and an edit never changes it; a new automation is pinned to the current
29
+ release. So check an edit to an existing automation under the release it is
30
+ pinned to, not the current one.
31
+
32
+ A release reads a pin that has its own compatibility key (the minor while the
33
+ version starts with 0, so \`0.12.0\` and \`0.12.3\` read alike; the major from 1.0)
34
+ and refuses any other by name:
35
+
36
+ - a pin newer than the engine is refused; upgrade the engine
37
+ - a pin of an older key is refused; validate the text under the current release,
38
+ then upgrade it
39
+
40
+ An \`lf\` project pins in \`lf.yaml\`'s \`engine:\` (\`lf init\` writes the current
41
+ release; \`lf upgrade\` moves it). An embedder pins with the run input's
42
+ \`languageVersion\`; absent means the engine's own release.
43
+
44
+ A warning on an automation says something keeps it on an older release: the
45
+ current release reports errors for its text, or marks a construct whose meaning
46
+ differs between the two releases, which blocks the move as surely as an error.
35
47
  Other warnings, such as cost notes, never block. The automation keeps running as
36
48
  it always has.
37
49
 
38
- To upgrade one, repair what the current version reports — in text that still
39
- validates as the older version — then upgrade it: the check runs again, shows
50
+ To upgrade one, repair what the current release reports — in text that still
51
+ validates under the older pin — then upgrade it: the check runs again, shows
40
52
  what it finds, and moves the automation only when that is clean and the move is
41
53
  confirmed. Only an upgrade someone requests moves an automation; a new release
42
54
  never does.
@@ -110,7 +110,7 @@ function spelling(entry) {
110
110
  const CORE_SPELLING = { EXTRACT: 'extract', EXTRACTONE: 'extractOne' };
111
111
  /** `Text.join` for `JOIN` — the name an author writes. */
112
112
  function builtinName(entry) {
113
- return spelling(entry)?.v5 ?? CORE_SPELLING[entry.name] ?? entry.name;
113
+ return spelling(entry)?.current ?? CORE_SPELLING[entry.name] ?? entry.name;
114
114
  }
115
115
  const settingsParam = (keys) => ({ name: `settings { ${keys} }`, type: 'options', optional: true });
116
116
  /** The registry's parameters in the order the author writes them. */
@@ -133,7 +133,7 @@ function writtenParams(entry) {
133
133
  }
134
134
  /** A summary names built-ins as the author writes them. */
135
135
  function builtinSummary(entry) {
136
- return (0, surface_1.spellMessage)(entry.summary, movement_lang_1.CURRENT_LANGUAGE_VERSION);
136
+ return (0, surface_1.spellMessage)(entry.summary);
137
137
  }
138
138
  /** `Text.join(collection: any, separator?: text) → text` — generated, never written. */
139
139
  function builtinSignature(entry) {
@@ -62,7 +62,7 @@ const NOT_RECOMMENDED = [
62
62
  label: 'a `movement` declaration — declare with `function`',
63
63
  },
64
64
  { pattern: /\bONLY\(\s*extract\(/i, label: '`only(extract(…))` — write `extractOne(…)`' },
65
- // Language version 5's surface: the spellings it replaced, outside walk brackets.
65
+ // The current surface: the spellings it replaced, outside walk brackets.
66
66
  { pattern: /\bERROR\(/, label: '`ERROR(…)` — write `fail(…)`' },
67
67
  { pattern: /\(credentials:/, label: 'an adapter construction — write `connect attio using acme`' },
68
68
  { pattern: /\bIF\b[^\n]*\bTHEN\b/, label: '`IF … THEN … ELSE … END` — write `c ? a : b`' },
package/dist/testing.js CHANGED
@@ -116,10 +116,10 @@ function admitProbe(claim, catalog = exports.HANDBOOK_CATALOG) {
116
116
  catalog: files
117
117
  ? { ...catalog, files: Object.fromEntries(Object.entries(files).map(([path, source]) => [path, { source }])) }
118
118
  : catalog,
119
- languageVersion: movement_lang_1.CURRENT_LANGUAGE_VERSION,
119
+ languageVersion: movement_lang_1.LANGUAGE_VERSION,
120
120
  });
121
121
  }
122
122
  /** Only the parse the engine performs first: MOVENG_PARSE when it refuses. */
123
123
  function parseProbe(claim) {
124
- movement_engine_1.programCheck.parsePinned({ source: claim.probe, languageVersion: movement_lang_1.CURRENT_LANGUAGE_VERSION });
124
+ movement_engine_1.programCheck.parsePinned({ source: claim.probe, languageVersion: movement_lang_1.LANGUAGE_VERSION });
125
125
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@listen-fire/handbook",
3
3
  "license": "Apache-2.0",
4
- "version": "0.12.0-rc.6",
4
+ "version": "0.12.0-rc.7",
5
5
  "description": "The movement language's handbook: the hand-written chapters, the front page, the routes into them and the language search over them. A host adds its own systems' and plugins' sections on top (the platform assembles system:* and plugin:* chapters). `testing` is the catalog every shown example is checked against, for a host's tests of its own sections.",
6
6
  "engines": {
7
7
  "node": "22.20.0"
@@ -21,9 +21,9 @@
21
21
  },
22
22
  "type": "commonjs",
23
23
  "dependencies": {
24
- "@listen-fire/engine": "^0.12.0-rc.6",
25
- "@listen-fire/movement-lang": "^0.12.0-rc.6",
26
- "@listen-fire/engine-contracts": "^0.12.0-rc.6"
24
+ "@listen-fire/engine": "^0.12.0-rc.7",
25
+ "@listen-fire/movement-lang": "^0.12.0-rc.7",
26
+ "@listen-fire/engine-contracts": "^0.12.0-rc.7"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/jest": "29.5.14",