62 lines
2.1 KiB
Markdown
62 lines
2.1 KiB
Markdown
# Releasing Decodal
|
|
|
|
Run all commands from the repository root. Publishing requires Cargo, npm, and JSR credentials; validation does not.
|
|
|
|
## Versions
|
|
|
|
- `decodal-derive`: `0.1.3` (already published)
|
|
- Other published Rust crates: `0.3.0`
|
|
- `decodal-wasm` npm/JSR package: `0.2.0`
|
|
- `decodal-codemirror`: `0.2.0`
|
|
|
|
The npm packages advertise the repository's dual `MIT OR Apache-2.0` license.
|
|
JSR metadata uses the single `MIT` identifier required by its publisher; both license files remain included in every package.
|
|
|
|
## Validate
|
|
|
|
```sh
|
|
cargo fmt --check
|
|
cargo test --workspace
|
|
cargo test -p decodal --no-default-features
|
|
cargo clippy --workspace --all-targets -- -D warnings
|
|
cargo clippy -p decodal-wasm --target wasm32-unknown-unknown -- -D warnings
|
|
cargo clippy -p decodal-language-tools --target wasm32-unknown-unknown -- -D warnings
|
|
npm --prefix site/decodal-site run build:wasm
|
|
npm --prefix packages/decodal-codemirror test
|
|
npm --prefix site/decodal-site test
|
|
npm --prefix site/decodal-site run build
|
|
deno check packages/decodal-wasm/mod.ts
|
|
npm pack --dry-run ./packages/decodal-wasm
|
|
deno publish --dry-run --config packages/decodal-wasm/jsr.json
|
|
npm pack --dry-run ./packages/decodal-codemirror
|
|
deno publish --dry-run --config packages/decodal-codemirror/jsr.json
|
|
```
|
|
|
|
## Publish Rust crates
|
|
|
|
Publish in dependency order. Wait for each crate to become available in the crates.io index before continuing.
|
|
Run the corresponding command with `--dry-run` immediately before each real publish.
|
|
|
|
```sh
|
|
cargo publish -p decodal
|
|
cargo publish -p decodal-language-service
|
|
cargo publish -p decodal-language-tools
|
|
cargo publish -p decodal-lsp
|
|
```
|
|
|
|
`decodal-cli` and the Rust `decodal-wasm` wrapper remain repository-only packages.
|
|
|
|
## Publish JavaScript packages
|
|
|
|
The WASM build regenerates and normalizes both committed npm/JSR packages before publishing.
|
|
|
|
```sh
|
|
npm --prefix site/decodal-site run build:wasm
|
|
npm publish ./packages/decodal-wasm
|
|
deno publish --config packages/decodal-wasm/jsr.json
|
|
npm publish ./packages/decodal-codemirror
|
|
deno publish --config packages/decodal-codemirror/jsr.json
|
|
```
|
|
|
|
After both registries accept the release, tag the release commit and update the deployed site.
|