Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 42 additions & 2 deletions docs/explanation/naming-map.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ ledger, where permanent single-language capabilities are recorded as such.
<!-- BEGIN GENERATED FROM naming.toml. Edit the register, not this page. -->

Generated from
[`governance/naming.toml`](https://github.com/idfkit/idfkit-conformance/blob/governance-2026.11/governance/naming.toml)
at `governance-2026.11`, the governance tag this release pins. It governs `idfkit` and
[`governance/naming.toml`](https://github.com/idfkit/idfkit-conformance/blob/governance-2026.12/governance/naming.toml)
at `governance-2026.12`, the governance tag this release pins. It governs `idfkit` and
`@idfkit/core` and `@idfkit/weather` and `@idfkit/language`, and it is read at a pinned
governance-YYYY.N tag of idfkit-conformance, never the default branch. Correct the
register and regenerate; a correction made on this page would be overwritten, and it
Expand Down Expand Up @@ -258,6 +258,8 @@ row marked divergent or excluded links to the entry that says why, and a cell re
| Concept | Python | TypeScript | Kind |
| ------- | ------ | ---------- | ---- |
| load a schema for a version | `get_schema` | `SchemaBundle.load` | [divergent](#load-a-schema-for-a-version) |
| load the schema prose | *absent* | `SchemaBundle.loadProse` | [divergent](#load-the-schema-prose) |
| the schema prose already loaded | *absent* | `SchemaBundle.prose` | [divergent](#the-schema-prose-already-loaded) |
| the supported version list | `ENERGYPLUS_VERSIONS` | `SchemaBundle.versions` | [divergent](#the-supported-version-list) |
| resolve a version string | `find_closest_version` | `resolveVersion` | [divergent](#resolve-a-version-string) |

Expand Down Expand Up @@ -1600,6 +1602,44 @@ bundler-driven app resolves it through `import()`, so the caller constructs a
the object that owns the source because there is no process-wide source that would let
it be a free function. This is the input and output divergence recorded above.

### Load the schema prose

| Python | TypeScript |
| ------ | ---------- |
| *absent* | `SchemaBundle.loadProse` |

JavaScript deduplicates every memo and note of all seventeen schemas into one side file
the manifests carry indices into, and reads it on demand. Python has no counterpart
because it needs none: it ships the full schemas on disk and reads `note` and `memo`
straight off the field record it already holds, so there is nothing to load and no
moment at which to load it.

The same divergence as `SchemaBundle.load` against `get_schema`, and for the same
reason. The prose is roughly 175 KB the parse path never touches, and a reader who only
parses a model should not pay for a sentence of English. Keeping the fetch separate is
what lets the parse path stay unaware the pool exists.

Not a capability difference: `describe_object_type` reports the same prose in both
languages, and the corpus compares a digest over every memo and note of all 858 types.
Only the moment of loading differs.

### The schema prose already loaded

| Python | TypeScript |
| ------ | ---------- |
| *absent* | `SchemaBundle.prose` |

The synchronous half of `SchemaBundle.loadProse`, and the counterpart of
`SchemaBundle.loaded`. Python needs neither: its prose is on the record it already
holds.

It exists because every reader of prose in JavaScript is synchronous.
`describeObjectType` takes a pool rather than fetching one, and every answer in
`@idfkit/language` is a pure function so an editor server can answer a cursor without
holding a thread. A consumer loads once when a document arrives and reads here on the
request path. Without the pair it would either await inside a path it keeps synchronous
or build a second cache beside the one the bundle already has.

### The supported version list

| Python | TypeScript |
Expand Down
4 changes: 2 additions & 2 deletions docs/explanation/parity.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ Ids get added and deprecated. They do not get renamed.
<!-- BEGIN GENERATED FROM parity.toml. Edit the ledger, not this page. -->

Generated from
[`governance/parity.toml`](https://github.com/idfkit/idfkit-conformance/blob/governance-2026.11/governance/parity.toml)
at `governance-2026.11`, the governance tag this release pins. Correct the ledger and
[`governance/parity.toml`](https://github.com/idfkit/idfkit-conformance/blob/governance-2026.12/governance/parity.toml)
at `governance-2026.12`, the governance tag this release pins. Correct the ledger and
regenerate; a correction made on this page would be overwritten, and it would never
reach either library's CI gate.

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ level = "conformance-2026.8"
# idfkit-conformance. Read by docs/hooks/parity_macro.py, scripts/render_parity_page.py and
# scripts/render_naming_map.py through the duplicated scripts/_governance_source.py.
[tool.idfkit.governance]
level = "governance-2026.11"
level = "governance-2026.12"

# Documentation artifact level the TypeScript half of the site renders from, as an immutable tag
# in idfkit-js. It carries the TypeScript examples the pages include and the TypeDoc JSON the
Expand Down
Loading