Files
Decodal/RELEASING.md
T

2.2 KiB

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

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.

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.

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.