# Releasing Decodal Run all commands from the repository root. Publishing requires Cargo, npm, and JSR credentials; validation does not. ## Versions - `decodal-derive`: `0.2.0` - Other published Rust crates: `0.4.0` - `decodal-wasm` npm/JSR package: `0.3.0` - `decodal-codemirror`: `0.3.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-derive 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.