From fc230447eec03c0a00b1fca238c0ff294d8e8e6e Mon Sep 17 00:00:00 2001 From: onatozmenn Date: Sat, 15 Aug 2026 01:59:39 +0300 Subject: [PATCH] chore(release): cut 0.2.13 Publish the dual-license choice through Cargo packages, native archives, the wasm artifact and the official MCP Registry metadata. Keep the package license ratchet exact across platforms by comparing normalized text rather than checkout line endings. Closes #985 Co-authored-by: GitHub Copilot --- CHANGELOG.md | 26 +++++++++++++++++ Cargo.lock | 40 +++++++++++++------------- Cargo.toml | 40 +++++++++++++------------- README.md | 6 ++-- crates/deed-driver/tests/publishing.rs | 18 ++++++++---- server.json | 4 +-- 6 files changed, 83 insertions(+), 51 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5121203..c979684 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,32 @@ release notes. ### Tools +- None yet. + +### Measurements + +- None yet. + +## 0.2.13 (2026-08-15) + +### Programs that used to compile and no longer do + +- None yet. + +### Language + +- None yet. + +### Diagnostics + +- None yet. + +### Standard library + +- None yet. + +### Tools + - Cargo packages, release archives and the VS Code extension are available under MIT or Apache-2.0, at the user's option. diff --git a/Cargo.lock b/Cargo.lock index 12b8207..0190d38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,14 +4,14 @@ version = 4 [[package]] name = "deed-ast" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-diagnostics", ] [[package]] name = "deed-codegen" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-diagnostics", "deed-mir", @@ -20,7 +20,7 @@ dependencies = [ [[package]] name = "deed-dap" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-diagnostics", "deed-driver", @@ -31,11 +31,11 @@ dependencies = [ [[package]] name = "deed-diagnostics" -version = "0.2.12" +version = "0.2.13" [[package]] name = "deed-driver" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-ast", "deed-codegen", @@ -54,7 +54,7 @@ dependencies = [ [[package]] name = "deed-effects" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-ast", "deed-diagnostics", @@ -66,15 +66,15 @@ dependencies = [ [[package]] name = "deed-explain" -version = "0.2.12" +version = "0.2.13" [[package]] name = "deed-fetch" -version = "0.2.12" +version = "0.2.13" [[package]] name = "deed-fmt" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-ast", "deed-diagnostics", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "deed-interp" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-ast", "deed-diagnostics", @@ -96,7 +96,7 @@ dependencies = [ [[package]] name = "deed-lang" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-ast", "deed-codegen", @@ -118,14 +118,14 @@ dependencies = [ [[package]] name = "deed-lexer" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-diagnostics", ] [[package]] name = "deed-lsp" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-ast", "deed-diagnostics", @@ -139,7 +139,7 @@ dependencies = [ [[package]] name = "deed-mcp" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-diagnostics", "deed-driver", @@ -150,7 +150,7 @@ dependencies = [ [[package]] name = "deed-mir" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-ast", "deed-diagnostics", @@ -162,7 +162,7 @@ dependencies = [ [[package]] name = "deed-parser" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-ast", "deed-diagnostics", @@ -171,7 +171,7 @@ dependencies = [ [[package]] name = "deed-resolve" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-ast", "deed-diagnostics", @@ -181,11 +181,11 @@ dependencies = [ [[package]] name = "deed-rt" -version = "0.2.12" +version = "0.2.13" [[package]] name = "deed-typeck" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-ast", "deed-diagnostics", @@ -196,7 +196,7 @@ dependencies = [ [[package]] name = "deed-wasm" -version = "0.2.12" +version = "0.2.13" dependencies = [ "deed-ast", "deed-diagnostics", diff --git a/Cargo.toml b/Cargo.toml index f930849..ea8dae3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,7 +24,7 @@ members = [ ] [workspace.package] -version = "0.2.12" +version = "0.2.13" edition = "2024" license = "MIT OR Apache-2.0" repository = "https://github.com/deed-lang/deed" @@ -36,25 +36,25 @@ rust-version = "1.88" # `deed-x.workspace = true`. These have to equal the version above, and # `crates/deed-driver/tests/publishing.rs` says so rather than trusting it. [workspace.dependencies] -deed-ast = { path = "crates/deed-ast", version = "0.2.12" } -deed-codegen = { path = "crates/deed-codegen", version = "0.2.12" } -deed-dap = { path = "crates/deed-dap", version = "0.2.12" } -deed-diagnostics = { path = "crates/deed-diagnostics", version = "0.2.12" } -deed-driver = { path = "crates/deed-driver", version = "0.2.12" } -deed-effects = { path = "crates/deed-effects", version = "0.2.12" } -deed-explain = { path = "crates/deed-explain", version = "0.2.12" } -deed-fetch = { path = "crates/deed-fetch", version = "0.2.12" } -deed-fmt = { path = "crates/deed-fmt", version = "0.2.12" } -deed-interp = { path = "crates/deed-interp", version = "0.2.12" } -deed-lexer = { path = "crates/deed-lexer", version = "0.2.12" } -deed-lsp = { path = "crates/deed-lsp", version = "0.2.12" } -deed-mcp = { path = "crates/deed-mcp", version = "0.2.12" } -deed-mir = { path = "crates/deed-mir", version = "0.2.12" } -deed-parser = { path = "crates/deed-parser", version = "0.2.12" } -deed-resolve = { path = "crates/deed-resolve", version = "0.2.12" } -deed-rt = { path = "crates/deed-rt", version = "0.2.12" } -deed-typeck = { path = "crates/deed-typeck", version = "0.2.12" } -deed-wasm = { path = "crates/deed-wasm", version = "0.2.12" } +deed-ast = { path = "crates/deed-ast", version = "0.2.13" } +deed-codegen = { path = "crates/deed-codegen", version = "0.2.13" } +deed-dap = { path = "crates/deed-dap", version = "0.2.13" } +deed-diagnostics = { path = "crates/deed-diagnostics", version = "0.2.13" } +deed-driver = { path = "crates/deed-driver", version = "0.2.13" } +deed-effects = { path = "crates/deed-effects", version = "0.2.13" } +deed-explain = { path = "crates/deed-explain", version = "0.2.13" } +deed-fetch = { path = "crates/deed-fetch", version = "0.2.13" } +deed-fmt = { path = "crates/deed-fmt", version = "0.2.13" } +deed-interp = { path = "crates/deed-interp", version = "0.2.13" } +deed-lexer = { path = "crates/deed-lexer", version = "0.2.13" } +deed-lsp = { path = "crates/deed-lsp", version = "0.2.13" } +deed-mcp = { path = "crates/deed-mcp", version = "0.2.13" } +deed-mir = { path = "crates/deed-mir", version = "0.2.13" } +deed-parser = { path = "crates/deed-parser", version = "0.2.13" } +deed-resolve = { path = "crates/deed-resolve", version = "0.2.13" } +deed-rt = { path = "crates/deed-rt", version = "0.2.13" } +deed-typeck = { path = "crates/deed-typeck", version = "0.2.13" } +deed-wasm = { path = "crates/deed-wasm", version = "0.2.13" } [workspace.lints.clippy] all = "warn" diff --git a/README.md b/README.md index 350b2f0..b74aa82 100644 --- a/README.md +++ b/README.md @@ -48,9 +48,9 @@ language server are all in that one file. Start with the [tutorial](TUTORIAL.md) if you want one program built up one step at a time. ``` -$ tar xzf deed-v0.2.12-x86_64-unknown-linux-gnu.tar.gz -$ ./deed-v0.2.12-x86_64-unknown-linux-gnu/deed --version -deed 0.2.12 +$ tar xzf deed-v0.2.13-x86_64-unknown-linux-gnu.tar.gz +$ ./deed-v0.2.13-x86_64-unknown-linux-gnu/deed --version +deed 0.2.13 ``` With Rust 1.88 or newer instead, from crates.io or from a clone: diff --git a/crates/deed-driver/tests/publishing.rs b/crates/deed-driver/tests/publishing.rs index cd42ed2..11fbf09 100644 --- a/crates/deed-driver/tests/publishing.rs +++ b/crates/deed-driver/tests/publishing.rs @@ -28,6 +28,12 @@ fn manifest() -> String { std::fs::read_to_string(root().join("Cargo.toml")).expect("the workspace manifest") } +fn normalized_text(path: &Path) -> String { + std::fs::read_to_string(path) + .unwrap_or_else(|error| panic!("could not read {}: {error}", path.display())) + .replace("\r\n", "\n") +} + /// The value of a `key = "value"` line in a section. fn field(text: &str, section: &str, key: &str) -> String { let body = text @@ -88,10 +94,10 @@ fn every_published_crate_offers_the_dual_license() { field(&manifest(), "[workspace.package]", "license"), expected ); - let apache = std::fs::read(root().join("LICENSE")).expect("the Apache license"); - let mit = std::fs::read(root().join("LICENSE-MIT")).expect("the MIT license"); - assert!(apache.starts_with(b" Apache License")); - assert!(mit.starts_with(b"MIT License")); + let apache = normalized_text(&root().join("LICENSE")); + let mit = normalized_text(&root().join("LICENSE-MIT")); + assert!(apache.starts_with(" Apache License")); + assert!(mit.starts_with("MIT License")); let mut inherited = 0; for entry in std::fs::read_dir(root().join("crates")).expect("crates/") { @@ -107,13 +113,13 @@ fn every_published_crate_offers_the_dual_license() { path.display() ); assert_eq!( - std::fs::read(crate_root.join("LICENSE")).expect("the packaged Apache license"), + normalized_text(&crate_root.join("LICENSE")), apache, "{} packages a different Apache license", crate_root.display() ); assert_eq!( - std::fs::read(crate_root.join("LICENSE-MIT")).expect("the packaged MIT license"), + normalized_text(&crate_root.join("LICENSE-MIT")), mit, "{} packages a different MIT license", crate_root.display() diff --git a/server.json b/server.json index 43b7127..da7164d 100644 --- a/server.json +++ b/server.json @@ -9,13 +9,13 @@ "source": "github", "subfolder": "crates/deed-cli" }, - "version": "0.2.12", + "version": "0.2.13", "packages": [ { "registryType": "cargo", "registryBaseUrl": "https://crates.io", "identifier": "deed-lang", - "version": "0.2.12", + "version": "0.2.13", "transport": { "type": "stdio" },