Files
bottom/schema/README.md
T

39 lines
1.2 KiB
Markdown

# Config JSON Schema
## Generation
These are automatically generated from the code using [`schemars`](https://github.com/GREsau/schemars). The `schemars`
derives are locked behind the `generate_schema` feature flag to avoid building unnecessary code for normal builds.
Meanwhile, the generator itself lives in a separate `scripts/schema_gen` helper crate. You can
generate them like so:
```bash
# Will print out to stdout
cargo run --manifest-path scripts/schema_gen/Cargo.toml
# e.g. for nightly
cargo run --manifest-path scripts/schema_gen/Cargo.toml > schema/nightly/bottom.json
# e.g. for a specific version
cargo run --manifest-path scripts/schema_gen/Cargo.toml -- 0.12.0 > schema/v0.12.0/bottom.json
```
Alternatively, run the `scripts/schema/generate.sh` script (for stable releases) or `scripts/schema/nightly.sh`
(for nightly), which does all of this for you.
## Publication
To publish these schemas:
### Stable
1. Run `scripts/schema/generate.sh <YOUR_VERSION>`.
2. Make a PR and merge it.
3. Then, make a PR to [schemastore](https://github.com/SchemaStore/schemastore) to update the catalog.
[Here's an example of a PR](https://github.com/SchemaStore/schemastore/pull/5242).
### Nightly
1. Run `scripts/schema/nightly.sh`.
2. Make a PR and merge it.