Skip to main content

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

  1. Add new directory mozilla_nimbus_schemas / new_stuff with schemas inside.

  2. Add new_stuff schemas to the new_stuff directory's __init__.py file.

  3. Add new_stuff to top level __init__.py:

    from mozilla_nimbus_schemas.new_stuff import *

  4. Generate Typescript and/or JSON Schemas for new_stuff by updating the generate_json_schema.py script like so:

    a. Import new_stuff alongside existing mozilla_nimbus_schemas imports, e.g.,

    from mozilla_nimbus_schemas import experiments, jetstream, new_stuff

    b. (optional) Add new_stuff to Typescript generation

    • Update TS_SCHEMA_PACKAGES list, e.g.,

      TS_SCHEMA_PACKAGES = [experiments, jetstream, new_stuff]

    c. (optional) Add new_stuff to JSON Schema generation

    • Update JSON_SCHEMA_PACKAGES list, e.g.,

      JSON_SCHEMA_PACKAGES = [experiments, new_stuff]

  5. Build everything with make schemas_build

  6. 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

  1. To update the published package versions, update the VERSION file 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.
  1. 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)

Source distribution for mozilla-nimbus-schemas 3005.0.0
File Size Uploaded
mozilla_nimbus_schemas-3005.0.0.tar.gz 30.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mozilla-nimbus-schemas 3005.0.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

3005.0.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page