experimenter/schemas
Herraj Luhano 902e80c57d
fix(schemas): Allow firefoxLabsTitle and firefoxLabsDescription to be null in json schema (#11750)
Because

- Json schemas were incorrectly failing validation on `firefoxLabsTitle`
and `firefoxLabsDescription` fields. We need to allow them to be `null`
(omitted).

This commit

- Updates `DesktopNimbusExperiment` and `DesktopNimbusExperiment`
classes' fields mentioned above.
- Updates schema version.
- Generates new TS schema.
- Adds new test (fixture) for this use case.

Fixes #11749
2024-11-12 19:42:20 +00:00
..
mozilla_nimbus_schemas fix(schemas): Allow firefoxLabsTitle and firefoxLabsDescription to be null in json schema (#11750) 2024-11-12 19:42:20 +00:00
schemas fix(schemas): Allow firefoxLabsTitle and firefoxLabsDescription to be null in json schema (#11750) 2024-11-12 19:42:20 +00:00
.dockerignore fix #9271 chore(project): dockerize schemas (#9616) 2023-10-24 20:30:55 +00:00
Dockerfile chore(schemas): Re-order Dockerfile to avoid rebuilding the world (#11679) 2024-11-04 16:21:10 +00:00
LICENSE fix #8848 feat(nimbus): add pypi publishing of schemas package (#8939) 2023-06-15 17:38:01 +00:00
README.md chore(schemas): upgrade to Poetry 1.8.4 (#11646) 2024-10-30 18:03:27 +00:00
VERSION fix(schemas): Allow firefoxLabsTitle and firefoxLabsDescription to be null in json schema (#11750) 2024-11-12 19:42:20 +00:00
generate_json_schema.py feat(schemas): generate .schema.json files for Experimenter and Feature Manifest schemas (#11519) 2024-10-18 20:30:05 +00:00
index.d.ts fix(schemas): Allow firefoxLabsTitle and firefoxLabsDescription to be null in json schema (#11750) 2024-11-12 19:42:20 +00:00
package.json fix(schemas): Allow firefoxLabsTitle and firefoxLabsDescription to be null in json schema (#11750) 2024-11-12 19:42:20 +00:00
poetry.lock chore(deps): Bump polyfactory from 2.17.0 to 2.18.0 in /schemas (#11737) 2024-11-12 16:52:12 +00:00
pyproject.toml fix(schemas): Allow firefoxLabsTitle and firefoxLabsDescription to be null in json schema (#11750) 2024-11-12 19:42:20 +00:00
yarn.lock chore(deps-dev): Bump typescript from 5.5.2 to 5.6.2 in /schemas (#11316) 2024-09-09 20:14:59 +00:00

README.md

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

Building Python Schemas Package

make schemas_build_pypi

Building Typescript Schemas Package

make schemas_build_npm

Schemas

Jetstream

Contains schemas describing analysis results, metadata, and errors from Jetstream.

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 a date-based versioning scheme (CalVer). The format is yyyy.m.MINOR, where m is the non-zero-padded month, and MINOR is an incrementing number starting from 1 for each month. Notably, this MINOR number does NOT correspond to the day of the month. For example, the second release in June of 2023 would have a version of 2023.6.2.

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.