mirror of
https://github.com/ClementTsang/bottom.git
synced 2026-09-29 05:55:44 +00:00
39 lines
1.2 KiB
Markdown
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.
|