Release boundaries
Windgram has several independent version and publication boundaries. Read the full compatibility policy in Data and package versioning; use this contributor checklist for intentional releases.
npm and JSR package
Section titled “npm and JSR package”The package version in toolkit/package.json governs exported
TypeScript/JavaScript APIs. The same package publishes to JSR as
@azohra/windgram from toolkit/jsr.json, which must carry the
identical version. Before publishing:
- update code, tests, the package README, and affected website docs together;
- regenerate JSON Schemas when the zod contract changed;
- run package tests, typecheck, and build;
- choose a version consistent with the documented pre-1.0 compatibility policy;
- bump
package.jsonandjsr.jsonto that version together; and - create a
toolkit-v<version>tag only after main contains that exact version.
The repository release workflow (release-toolkit.yml) checks tag agreement
with both files, tests, builds, publishes to npm with provenance, and
publishes to JSR — one tag, both JavaScript registries, in lockstep. A
package tag does not bump Python or the dataset schema automatically.
Dataset schema
Section titled “Dataset schema”schemaVersion changes only for a breaking stored-document contract change,
not for a new model, new publication, additive optional field, or package
release. A breaking change requires migration strategy, synchronized publisher
and parser support, regenerated schemas, fixtures, and updated documentation.
Python pipeline
Section titled “Python pipeline”The Python version in pipeline/pyproject.toml describes the provider ingestion and
publication implementation. It advances for deliberate pipeline distribution
changes; it does not mirror npm numbers. Scientific changes to a derived value
must update tests and affected research prose even when the profile shape is
unchanged.
The package publishes to PyPI as windgram on a pipeline-v<version> tag —
the distinct prefix keeps Python releases independent of toolkit-v* package
tags. The repository release workflow (release-pipeline.yml) checks
tag/pyproject agreement, runs the test suite, builds, and publishes via
trusted publishing. Create the tag only after main contains that exact
version.
Data publication
Section titled “Data publication”(referenceTime, generatedAt) identifies a static publication. Republishing a
corrected run is not a software release. Manifests, current profiles, history,
and the run index are generated publisher output and are never edited by hand.
Provider-derived material keeps its attribution independently of code licence or package provenance.