Nimbus Schemas
This directory contains a package of schemas published to various repositories for use by different parts of the Mozilla Nimbus experimentation ecosystem.
Installation/Usage
Prerequisites
- python ^3.10
- poetry ^1.8.4
- node ^16
- yarn ^1.22
Common Operations
From project root (i.e., parent to this directory)
- Build:
make schemas_build - Run linting and tests:
make schemas_check - Code formatting:
make schemas_format
Adding New Schemas
Example
Creating a new sub-package new_stuff
-
Add new directory
mozilla_nimbus_schemas/new_stuffwith schemas inside. -
Add
new_stuffschemas to thenew_stuffdirectory's__init__.pyfile. -
Add
new_stuffto top level__init__.py:from mozilla_nimbus_schemas.new_stuff import * -
Generate Typescript and/or JSON Schemas for
new_stuffby updating thegenerate_json_schema.pyscript like so:a. Import
new_stuffalongside existingmozilla_nimbus_schemasimports, e.g.,from mozilla_nimbus_schemas import experiments, jetstream, new_stuffb. (optional) Add
new_stuffto Typescript generation- Update
TS_SCHEMA_PACKAGESlist, e.g.,TS_SCHEMA_PACKAGES = [experiments, jetstream, new_stuff]
c. (optional) Add
new_stuffto JSON Schema generation- Update
JSON_SCHEMA_PACKAGESlist, e.g.,JSON_SCHEMA_PACKAGES = [experiments, new_stuff]
- Update
-
Build everything with
make schemas_build -
Update the version (see Versioning below).
Schemas
Jetstream
Contains schemas describing analysis results, metadata, and errors from Jetstream.
Experiments
Defines the schemas used for validating the Experimenter v6 API. Previously defined in the now-deprecated nimbus-shared.
Deployment
The build and deployment occurs automatically through CI. A deployment is triggered on merges into the main branch when the version number changes. Schemas are published to various repos for access in different languages.
Versioning
mozilla-nimbus-schemas uses semantic versioning (semver) of major.minor.patch. Previously, we
used a date-based versioning scheme (CalVer), which is why the version is so high (3000+). Any
breaking changes should result in an increase in the major version.
Version Updates
- To update the published package versions, update the
VERSIONfile in this directory.
- From the project root, you can run the helper script:
./scripts/set_schemas_version.sh <version>
- Or write to the file:
echo <version> > ./schemas/VERSION
- Or simply edit the file in any text editor.
- Update the package versions with the new VERSION file:
make schemas_version
Python
Published to PyPI as mozilla-nimbus-schemas
Typescript
Published to NPM as @mozilla/nimbus-schemas
Rust
Not yet implemented.
Release files for mozilla-nimbus-schemas 3005.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mozilla_nimbus_schemas-3005.0.0.tar.gz | 30.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mozilla_nimbus_schemas-3005.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 100.9 kB
Release files / mozilla_nimbus_schemas-3005.0.0.tar.gz
| Download URL | mozilla_nimbus_schemas-3005.0.0.tar.gz |
|---|---|
| Size | 30.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
28bf41e3d71088a22ca823258ec65be7447ba16d52ee2160d85a9f124b1b5db3
|
|
BLAKE2b-256 checksum How to use checksums |
f72b69d4fc7987239d441b8bc299679a1dd814055d84351b2a52afe27a4ee5c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logRelease files / mozilla_nimbus_schemas-3005.0.0-py3-none-any.whl
| Download URL | mozilla_nimbus_schemas-3005.0.0-py3-none-any.whl |
|---|---|
| Size | 70.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
66cc19dee23adaec20ea62e5bd511dd56056dbc7db1ab2c0feb965ce7efbe5c2
|
|
BLAKE2b-256 checksum How to use checksums |
cfb52724d6c8a3f3ddab4fdbf561f48f60248fd3f50bc55a32ba017fc1cd6647
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency log