From bf7c4e165946f7a5be48c9d7e8abb8e68f066882 Mon Sep 17 00:00:00 2001 From: Skyler Hawthorne Date: Mon, 4 Dec 2023 20:54:18 -0500 Subject: [PATCH] use workspace inheritance for common version (#8925) --- Cargo.lock | 22 +++++++++++----------- Cargo.toml | 5 +++++ VERSION | 1 - docs/releases.md | 17 ++++++++++++----- helix-core/Cargo.toml | 16 ++++++++-------- helix-dap/Cargo.toml | 15 ++++++++------- helix-event/Cargo.toml | 10 +++++----- helix-loader/Cargo.toml | 12 ++++++------ helix-loader/build.rs | 18 ++++++++++++++---- helix-lsp/Cargo.toml | 18 +++++++++--------- helix-parsec/Cargo.toml | 14 +++++++------- helix-term/Cargo.toml | 30 +++++++++++++++--------------- helix-tui/Cargo.toml | 21 ++++++++++----------- helix-vcs/Cargo.toml | 16 ++++++++-------- helix-view/Cargo.toml | 25 +++++++++++++------------ xtask/Cargo.toml | 18 ++++++++++++------ 16 files changed, 143 insertions(+), 115 deletions(-) delete mode 100644 VERSION diff --git a/Cargo.lock b/Cargo.lock index 7d4a2fc9f..1e14ff02f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1048,7 +1048,7 @@ dependencies = [ [[package]] name = "helix-core" -version = "0.6.0" +version = "23.10.0" dependencies = [ "ahash", "arc-swap", @@ -1083,7 +1083,7 @@ dependencies = [ [[package]] name = "helix-dap" -version = "0.6.0" +version = "23.10.0" dependencies = [ "anyhow", "fern", @@ -1098,7 +1098,7 @@ dependencies = [ [[package]] name = "helix-event" -version = "0.6.0" +version = "23.10.0" dependencies = [ "parking_lot", "tokio", @@ -1106,7 +1106,7 @@ dependencies = [ [[package]] name = "helix-loader" -version = "0.6.0" +version = "23.10.0" dependencies = [ "anyhow", "cc", @@ -1125,7 +1125,7 @@ dependencies = [ [[package]] name = "helix-lsp" -version = "0.6.0" +version = "23.10.0" dependencies = [ "anyhow", "futures-executor", @@ -1147,11 +1147,11 @@ dependencies = [ [[package]] name = "helix-parsec" -version = "0.6.0" +version = "23.10.0" [[package]] name = "helix-term" -version = "0.6.0" +version = "23.10.0" dependencies = [ "anyhow", "arc-swap", @@ -1193,7 +1193,7 @@ dependencies = [ [[package]] name = "helix-tui" -version = "0.6.0" +version = "23.10.0" dependencies = [ "bitflags 2.4.1", "cassowary", @@ -1209,7 +1209,7 @@ dependencies = [ [[package]] name = "helix-vcs" -version = "0.6.0" +version = "23.10.0" dependencies = [ "anyhow", "arc-swap", @@ -1225,7 +1225,7 @@ dependencies = [ [[package]] name = "helix-view" -version = "0.6.0" +version = "23.10.0" dependencies = [ "anyhow", "arc-swap", @@ -2610,7 +2610,7 @@ dependencies = [ [[package]] name = "xtask" -version = "0.6.0" +version = "23.10.0" dependencies = [ "helix-core", "helix-loader", diff --git a/Cargo.toml b/Cargo.toml index f2cd9b766..6c006fbb4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,6 +40,11 @@ tree-sitter = { version = "0.20", git = "https://github.com/tree-sitter/tree-sit nucleo = "0.2.0" [workspace.package] +version = "23.10.0" edition = "2021" +authors = ["Blaž Hrastnik "] +categories = ["editor"] +repository = "https://github.com/helix-editor/helix" +homepage = "https://helix-editor.com" license = "MPL-2.0" rust-version = "1.70" diff --git a/VERSION b/VERSION deleted file mode 100644 index f5f8bffe4..000000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -23.10 \ No newline at end of file diff --git a/docs/releases.md b/docs/releases.md index 842886753..e39cfd910 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -1,16 +1,23 @@ ## Checklist Helix releases are versioned in the Calendar Versioning scheme: -`YY.0M(.MICRO)`, for example, `22.05` for May of 2022. In these instructions -we'll use `` as a placeholder for the tag being published. +`YY.0M(.MICRO)`, for example, `22.05` for May of 2022, or in a patch release, +`22.05.1`. In these instructions we'll use `` as a placeholder for the tag +being published. * Merge the changelog PR * Add new `` entry in `contrib/Helix.appdata.xml` with release information according to the [AppStream spec](https://www.freedesktop.org/software/appstream/docs/sect-Metadata-Releases.html) * Tag and push * `git tag -s -m "" -a && git push` * Make sure to switch to master and pull first -* Edit the `VERSION` file and change the date to the next planned release - * Releases are planned to happen every two months, so `22.05` would change to `22.07` +* Edit the `Cargo.toml` file and change the date in the `version` field to the next planned release + * Due to Cargo having a strict requirement on SemVer with 3 or more version + numbers, a `0` is required in the micro version; however, unless we are + publishing a patch release after a major release, the `.0` is dropped in + the user facing version. + * Releases are planned to happen every two months, so `22.05.0` would change to `22.07.0` + * If we are pushing a patch/bugfix release in the same month as the previous + release, bump the micro version, e.g. `22.07.0` to `22.07.1` * Wait for the Release CI to finish * It will automatically turn the git tag into a GitHub release when it uploads artifacts * Edit the new release @@ -57,4 +64,4 @@ versions for convenience: > release. For the full log, check out the git log. Typically, small changes like dependencies or documentation updates, refactors, -or meta changes like GitHub Actions work are left out. \ No newline at end of file +or meta changes like GitHub Actions work are left out. diff --git a/helix-core/Cargo.toml b/helix-core/Cargo.toml index f3797af29..800b7a5d7 100644 --- a/helix-core/Cargo.toml +++ b/helix-core/Cargo.toml @@ -1,22 +1,22 @@ [package] name = "helix-core" -version = "0.6.0" -authors = ["Blaž Hrastnik "] +description = "Helix editor core editing primitives" +include = ["src/**/*", "README.md"] +version.workspace = true +authors.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true -description = "Helix editor core editing primitives" -categories = ["editor"] -repository = "https://github.com/helix-editor/helix" -homepage = "https://helix-editor.com" -include = ["src/**/*", "README.md"] +categories.workspace = true +repository.workspace = true +homepage.workspace = true [features] unicode-lines = ["ropey/unicode_lines"] integration = [] [dependencies] -helix-loader = { version = "0.6", path = "../helix-loader" } +helix-loader = { path = "../helix-loader" } ropey = { version = "1.6.1", default-features = false, features = ["simd"] } smallvec = "1.11" diff --git a/helix-dap/Cargo.toml b/helix-dap/Cargo.toml index b4dd5177e..f7acb0032 100644 --- a/helix-dap/Cargo.toml +++ b/helix-dap/Cargo.toml @@ -1,19 +1,20 @@ [package] name = "helix-dap" -version = "0.6.0" -authors = ["Blaž Hrastnik "] +description = "DAP client implementation for Helix project" +version.workspace = true +authors.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true -description = "DAP client implementation for Helix project" -categories = ["editor"] -repository = "https://github.com/helix-editor/helix" -homepage = "https://helix-editor.com" +categories.workspace = true +repository.workspace = true +homepage.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -helix-core = { version = "0.6", path = "../helix-core" } +helix-core = { path = "../helix-core" } + anyhow = "1.0" log = "0.4" serde = { version = "1.0", features = ["derive"] } diff --git a/helix-event/Cargo.toml b/helix-event/Cargo.toml index 2dd4b512d..c20328246 100644 --- a/helix-event/Cargo.toml +++ b/helix-event/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "helix-event" -version = "0.6.0" -authors = ["Blaž Hrastnik "] +version.workspace = true +authors.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true -categories = ["editor"] -repository = "https://github.com/helix-editor/helix" -homepage = "https://helix-editor.com" +categories.workspace = true +repository.workspace = true +homepage.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/helix-loader/Cargo.toml b/helix-loader/Cargo.toml index b32318d04..1a98e94be 100644 --- a/helix-loader/Cargo.toml +++ b/helix-loader/Cargo.toml @@ -1,14 +1,14 @@ [package] name = "helix-loader" -version = "0.6.0" -description = "A post-modern text editor." -authors = ["Blaž Hrastnik "] +description = "Build bootstrapping for Helix crates" +version.workspace = true +authors.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true -categories = ["editor"] -repository = "https://github.com/helix-editor/helix" -homepage = "https://helix-editor.com" +categories.workspace = true +repository.workspace = true +homepage.workspace = true [[bin]] name = "hx-loader" diff --git a/helix-loader/build.rs b/helix-loader/build.rs index 74ba2a2be..a4562c00c 100644 --- a/helix-loader/build.rs +++ b/helix-loader/build.rs @@ -2,7 +2,17 @@ use std::borrow::Cow; use std::path::Path; use std::process::Command; -const VERSION: &str = include_str!("../VERSION"); +const MAJOR: &str = env!("CARGO_PKG_VERSION_MAJOR"); +const MINOR: &str = env!("CARGO_PKG_VERSION_MINOR"); +const PATCH: &str = env!("CARGO_PKG_VERSION_PATCH"); + +fn get_calver() -> String { + if PATCH == "0" { + format!("{MAJOR}.{MINOR}") + } else { + format!("{MAJOR}.{MINOR}.{PATCH}") + } +} fn main() { let git_hash = Command::new("git") @@ -12,9 +22,10 @@ fn main() { .filter(|output| output.status.success()) .and_then(|x| String::from_utf8(x.stdout).ok()); + let calver = get_calver(); let version: Cow<_> = match &git_hash { - Some(git_hash) => format!("{} ({})", VERSION, &git_hash[..8]).into(), - None => VERSION.into(), + Some(git_hash) => format!("{} ({})", calver, &git_hash[..8]).into(), + None => calver.into(), }; println!( @@ -22,7 +33,6 @@ fn main() { std::env::var("TARGET").unwrap() ); - println!("cargo:rerun-if-changed=../VERSION"); println!("cargo:rustc-env=VERSION_AND_GIT_HASH={}", version); if git_hash.is_none() { diff --git a/helix-lsp/Cargo.toml b/helix-lsp/Cargo.toml index d9507f1b6..66b67f8e5 100644 --- a/helix-lsp/Cargo.toml +++ b/helix-lsp/Cargo.toml @@ -1,21 +1,21 @@ [package] name = "helix-lsp" -version = "0.6.0" -authors = ["Blaž Hrastnik "] +description = "LSP client implementation for Helix project" +version.workspace = true +authors.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true -description = "LSP client implementation for Helix project" -categories = ["editor"] -repository = "https://github.com/helix-editor/helix" -homepage = "https://helix-editor.com" +categories.workspace = true +repository.workspace = true +homepage.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -helix-core = { version = "0.6", path = "../helix-core" } -helix-loader = { version = "0.6", path = "../helix-loader" } -helix-parsec = { version = "0.6", path = "../helix-parsec" } +helix-core = { path = "../helix-core" } +helix-loader = { path = "../helix-loader" } +helix-parsec = { path = "../helix-parsec" } anyhow = "1.0" futures-executor = "0.3" diff --git a/helix-parsec/Cargo.toml b/helix-parsec/Cargo.toml index d2b6105e6..217691219 100644 --- a/helix-parsec/Cargo.toml +++ b/helix-parsec/Cargo.toml @@ -1,14 +1,14 @@ [package] name = "helix-parsec" -version = "0.6.0" -authors = ["Blaž Hrastnik "] +description = "Parser combinators for Helix" +include = ["src/**/*", "README.md"] +version.workspace = true +authors.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true -description = "Parser combinators for Helix" -categories = ["editor"] -repository = "https://github.com/helix-editor/helix" -homepage = "https://helix-editor.com" -include = ["src/**/*", "README.md"] +categories.workspace = true +repository.workspace = true +homepage.workspace = true [dependencies] diff --git a/helix-term/Cargo.toml b/helix-term/Cargo.toml index eaed83754..33594c0f7 100644 --- a/helix-term/Cargo.toml +++ b/helix-term/Cargo.toml @@ -1,16 +1,16 @@ [package] name = "helix-term" -version = "0.6.0" description = "A post-modern text editor." -authors = ["Blaž Hrastnik "] -edition.workspace = true -license.workspace = true -categories = ["editor", "command-line-utilities"] -repository = "https://github.com/helix-editor/helix" -homepage = "https://helix-editor.com" include = ["src/**/*", "README.md"] default-run = "hx" +version.workspace = true +authors.workspace = true +edition.workspace = true +license.workspace = true rust-version.workspace = true +categories.workspace = true +repository.workspace = true +homepage.workspace = true [features] default = ["git"] @@ -23,13 +23,13 @@ name = "hx" path = "src/main.rs" [dependencies] -helix-core = { version = "0.6", path = "../helix-core" } -helix-event = { version = "0.6", path = "../helix-event" } -helix-view = { version = "0.6", path = "../helix-view" } -helix-lsp = { version = "0.6", path = "../helix-lsp" } -helix-dap = { version = "0.6", path = "../helix-dap" } -helix-vcs = { version = "0.6", path = "../helix-vcs" } -helix-loader = { version = "0.6", path = "../helix-loader" } +helix-core = { path = "../helix-core" } +helix-event = { path = "../helix-event" } +helix-view = { path = "../helix-view" } +helix-lsp = { path = "../helix-lsp" } +helix-dap = { path = "../helix-dap" } +helix-vcs = { path = "../helix-vcs" } +helix-loader = { path = "../helix-loader" } anyhow = "1" once_cell = "1.18" @@ -79,7 +79,7 @@ libc = "0.2.150" crossterm = { version = "0.27", features = ["event-stream", "use-dev-tty"] } [build-dependencies] -helix-loader = { version = "0.6", path = "../helix-loader" } +helix-loader = { path = "../helix-loader" } [dev-dependencies] smallvec = "1.11" diff --git a/helix-tui/Cargo.toml b/helix-tui/Cargo.toml index 602fa3e5f..c6af90fc6 100644 --- a/helix-tui/Cargo.toml +++ b/helix-tui/Cargo.toml @@ -1,22 +1,23 @@ [package] name = "helix-tui" -version = "0.6.0" -authors = ["Blaž Hrastnik "] -description = """ -A library to build rich terminal user interfaces or dashboards -""" +description = """A library to build rich terminal user interfaces or dashboards""" +include = ["src/**/*", "README.md"] +version.workspace = true +authors.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true -categories = ["editor"] -repository = "https://github.com/helix-editor/helix" -homepage = "https://helix-editor.com" -include = ["src/**/*", "README.md"] +categories.workspace = true +repository.workspace = true +homepage.workspace = true [features] default = ["crossterm"] [dependencies] +helix-view = { path = "../helix-view", features = ["term"] } +helix-core = { path = "../helix-core" } + bitflags = "2.4" cassowary = "0.3" unicode-segmentation = "1.10" @@ -25,5 +26,3 @@ termini = "1.0" serde = { version = "1", "optional" = true, features = ["derive"]} once_cell = "1.18" log = "~0.4" -helix-view = { version = "0.6", path = "../helix-view", features = ["term"] } -helix-core = { version = "0.6", path = "../helix-core" } diff --git a/helix-vcs/Cargo.toml b/helix-vcs/Cargo.toml index 1152cf9ab..ba38160fd 100644 --- a/helix-vcs/Cargo.toml +++ b/helix-vcs/Cargo.toml @@ -1,19 +1,19 @@ [package] name = "helix-vcs" -version = "0.6.0" -authors = ["Blaž Hrastnik "] +version.workspace = true +authors.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true -categories = ["editor"] -repository = "https://github.com/helix-editor/helix" -homepage = "https://helix-editor.com" +categories.workspace = true +repository.workspace = true +homepage.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -helix-core = { version = "0.6", path = "../helix-core" } -helix-event = { version = "0.6", path = "../helix-event" } +helix-core = { path = "../helix-core" } +helix-event = { path = "../helix-event" } tokio = { version = "1", features = ["rt", "rt-multi-thread", "time", "sync", "parking_lot", "macros"] } parking_lot = "0.12" @@ -29,4 +29,4 @@ log = "0.4" git = ["gix"] [dev-dependencies] -tempfile = "3.8" \ No newline at end of file +tempfile = "3.8" diff --git a/helix-view/Cargo.toml b/helix-view/Cargo.toml index 9fc83d4cf..5fb6d96b5 100644 --- a/helix-view/Cargo.toml +++ b/helix-view/Cargo.toml @@ -1,29 +1,30 @@ [package] name = "helix-view" -version = "0.6.0" -authors = ["Blaž Hrastnik "] +description = "UI abstractions for use in backends" +version.workspace = true +authors.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true -description = "UI abstractions for use in backends" -categories = ["editor"] -repository = "https://github.com/helix-editor/helix" -homepage = "https://helix-editor.com" +categories.workspace = true +repository.workspace = true +homepage.workspace = true [features] default = [] term = ["crossterm"] [dependencies] +helix-core = { path = "../helix-core" } +helix-event = { path = "../helix-event" } +helix-loader = { path = "../helix-loader" } +helix-lsp = { path = "../helix-lsp" } +helix-dap = { path = "../helix-dap" } +helix-vcs = { path = "../helix-vcs" } + bitflags = "2.4" anyhow = "1" -helix-core = { version = "0.6", path = "../helix-core" } -helix-event = { version = "0.6", path = "../helix-event" } -helix-loader = { version = "0.6", path = "../helix-loader" } -helix-lsp = { version = "0.6", path = "../helix-lsp" } -helix-dap = { version = "0.6", path = "../helix-dap" } crossterm = { version = "0.27", optional = true } -helix-vcs = { version = "0.6", path = "../helix-vcs" } # Conversion traits once_cell = "1.18" diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index ed1182947..0a61536fc 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -1,13 +1,19 @@ [package] name = "xtask" -version = "0.6.0" -edition = "2021" +version.workspace = true +authors.workspace = true +edition.workspace = true +license.workspace = true +rust-version.workspace = true +categories.workspace = true +repository.workspace = true +homepage.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -helix-term = { version = "0.6", path = "../helix-term" } -helix-core = { version = "0.6", path = "../helix-core" } -helix-view = { version = "0.6", path = "../helix-view" } -helix-loader = { version = "0.6", path = "../helix-loader" } +helix-term = { path = "../helix-term" } +helix-core = { path = "../helix-core" } +helix-view = { path = "../helix-view" } +helix-loader = { path = "../helix-loader" } toml = "0.7"