use workspace inheritance for common version (#8925)

This commit is contained in:
Skyler Hawthorne 2023-12-04 20:54:18 -05:00 committed by GitHub
parent 44c3d48a94
commit bf7c4e1659
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 143 additions and 115 deletions

22
Cargo.lock generated
View file

@ -1048,7 +1048,7 @@ dependencies = [
[[package]] [[package]]
name = "helix-core" name = "helix-core"
version = "0.6.0" version = "23.10.0"
dependencies = [ dependencies = [
"ahash", "ahash",
"arc-swap", "arc-swap",
@ -1083,7 +1083,7 @@ dependencies = [
[[package]] [[package]]
name = "helix-dap" name = "helix-dap"
version = "0.6.0" version = "23.10.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"fern", "fern",
@ -1098,7 +1098,7 @@ dependencies = [
[[package]] [[package]]
name = "helix-event" name = "helix-event"
version = "0.6.0" version = "23.10.0"
dependencies = [ dependencies = [
"parking_lot", "parking_lot",
"tokio", "tokio",
@ -1106,7 +1106,7 @@ dependencies = [
[[package]] [[package]]
name = "helix-loader" name = "helix-loader"
version = "0.6.0" version = "23.10.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"cc", "cc",
@ -1125,7 +1125,7 @@ dependencies = [
[[package]] [[package]]
name = "helix-lsp" name = "helix-lsp"
version = "0.6.0" version = "23.10.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"futures-executor", "futures-executor",
@ -1147,11 +1147,11 @@ dependencies = [
[[package]] [[package]]
name = "helix-parsec" name = "helix-parsec"
version = "0.6.0" version = "23.10.0"
[[package]] [[package]]
name = "helix-term" name = "helix-term"
version = "0.6.0" version = "23.10.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"arc-swap", "arc-swap",
@ -1193,7 +1193,7 @@ dependencies = [
[[package]] [[package]]
name = "helix-tui" name = "helix-tui"
version = "0.6.0" version = "23.10.0"
dependencies = [ dependencies = [
"bitflags 2.4.1", "bitflags 2.4.1",
"cassowary", "cassowary",
@ -1209,7 +1209,7 @@ dependencies = [
[[package]] [[package]]
name = "helix-vcs" name = "helix-vcs"
version = "0.6.0" version = "23.10.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"arc-swap", "arc-swap",
@ -1225,7 +1225,7 @@ dependencies = [
[[package]] [[package]]
name = "helix-view" name = "helix-view"
version = "0.6.0" version = "23.10.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"arc-swap", "arc-swap",
@ -2610,7 +2610,7 @@ dependencies = [
[[package]] [[package]]
name = "xtask" name = "xtask"
version = "0.6.0" version = "23.10.0"
dependencies = [ dependencies = [
"helix-core", "helix-core",
"helix-loader", "helix-loader",

View file

@ -40,6 +40,11 @@ tree-sitter = { version = "0.20", git = "https://github.com/tree-sitter/tree-sit
nucleo = "0.2.0" nucleo = "0.2.0"
[workspace.package] [workspace.package]
version = "23.10.0"
edition = "2021" edition = "2021"
authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
categories = ["editor"]
repository = "https://github.com/helix-editor/helix"
homepage = "https://helix-editor.com"
license = "MPL-2.0" license = "MPL-2.0"
rust-version = "1.70" rust-version = "1.70"

View file

@ -1 +0,0 @@
23.10

View file

@ -1,16 +1,23 @@
## Checklist ## Checklist
Helix releases are versioned in the Calendar Versioning scheme: Helix releases are versioned in the Calendar Versioning scheme:
`YY.0M(.MICRO)`, for example, `22.05` for May of 2022. In these instructions `YY.0M(.MICRO)`, for example, `22.05` for May of 2022, or in a patch release,
we'll use `<tag>` as a placeholder for the tag being published. `22.05.1`. In these instructions we'll use `<tag>` as a placeholder for the tag
being published.
* Merge the changelog PR * Merge the changelog PR
* Add new `<release>` 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) * Add new `<release>` 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 * Tag and push
* `git tag -s -m "<tag>" -a <tag> && git push` * `git tag -s -m "<tag>" -a <tag> && git push`
* Make sure to switch to master and pull first * Make sure to switch to master and pull first
* Edit the `VERSION` file and change the date to the next planned release * Edit the `Cargo.toml` file and change the date in the `version` field to the next planned release
* Releases are planned to happen every two months, so `22.05` would change to `22.07` * 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 * Wait for the Release CI to finish
* It will automatically turn the git tag into a GitHub release when it uploads artifacts * It will automatically turn the git tag into a GitHub release when it uploads artifacts
* Edit the new release * Edit the new release

View file

@ -1,22 +1,22 @@
[package] [package]
name = "helix-core" name = "helix-core"
version = "0.6.0" description = "Helix editor core editing primitives"
authors = ["Blaž Hrastnik <blaz@mxxn.io>"] include = ["src/**/*", "README.md"]
version.workspace = true
authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
rust-version.workspace = true rust-version.workspace = true
description = "Helix editor core editing primitives" categories.workspace = true
categories = ["editor"] repository.workspace = true
repository = "https://github.com/helix-editor/helix" homepage.workspace = true
homepage = "https://helix-editor.com"
include = ["src/**/*", "README.md"]
[features] [features]
unicode-lines = ["ropey/unicode_lines"] unicode-lines = ["ropey/unicode_lines"]
integration = [] integration = []
[dependencies] [dependencies]
helix-loader = { version = "0.6", path = "../helix-loader" } helix-loader = { path = "../helix-loader" }
ropey = { version = "1.6.1", default-features = false, features = ["simd"] } ropey = { version = "1.6.1", default-features = false, features = ["simd"] }
smallvec = "1.11" smallvec = "1.11"

View file

@ -1,19 +1,20 @@
[package] [package]
name = "helix-dap" name = "helix-dap"
version = "0.6.0" description = "DAP client implementation for Helix project"
authors = ["Blaž Hrastnik <blaz@mxxn.io>"] version.workspace = true
authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
rust-version.workspace = true rust-version.workspace = true
description = "DAP client implementation for Helix project" categories.workspace = true
categories = ["editor"] repository.workspace = true
repository = "https://github.com/helix-editor/helix" homepage.workspace = true
homepage = "https://helix-editor.com"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
helix-core = { version = "0.6", path = "../helix-core" } helix-core = { path = "../helix-core" }
anyhow = "1.0" anyhow = "1.0"
log = "0.4" log = "0.4"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }

View file

@ -1,13 +1,13 @@
[package] [package]
name = "helix-event" name = "helix-event"
version = "0.6.0" version.workspace = true
authors = ["Blaž Hrastnik <blaz@mxxn.io>"] authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
rust-version.workspace = true rust-version.workspace = true
categories = ["editor"] categories.workspace = true
repository = "https://github.com/helix-editor/helix" repository.workspace = true
homepage = "https://helix-editor.com" homepage.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -1,14 +1,14 @@
[package] [package]
name = "helix-loader" name = "helix-loader"
version = "0.6.0" description = "Build bootstrapping for Helix crates"
description = "A post-modern text editor." version.workspace = true
authors = ["Blaž Hrastnik <blaz@mxxn.io>"] authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
rust-version.workspace = true rust-version.workspace = true
categories = ["editor"] categories.workspace = true
repository = "https://github.com/helix-editor/helix" repository.workspace = true
homepage = "https://helix-editor.com" homepage.workspace = true
[[bin]] [[bin]]
name = "hx-loader" name = "hx-loader"

View file

@ -2,7 +2,17 @@ use std::borrow::Cow;
use std::path::Path; use std::path::Path;
use std::process::Command; 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() { fn main() {
let git_hash = Command::new("git") let git_hash = Command::new("git")
@ -12,9 +22,10 @@ fn main() {
.filter(|output| output.status.success()) .filter(|output| output.status.success())
.and_then(|x| String::from_utf8(x.stdout).ok()); .and_then(|x| String::from_utf8(x.stdout).ok());
let calver = get_calver();
let version: Cow<_> = match &git_hash { let version: Cow<_> = match &git_hash {
Some(git_hash) => format!("{} ({})", VERSION, &git_hash[..8]).into(), Some(git_hash) => format!("{} ({})", calver, &git_hash[..8]).into(),
None => VERSION.into(), None => calver.into(),
}; };
println!( println!(
@ -22,7 +33,6 @@ fn main() {
std::env::var("TARGET").unwrap() std::env::var("TARGET").unwrap()
); );
println!("cargo:rerun-if-changed=../VERSION");
println!("cargo:rustc-env=VERSION_AND_GIT_HASH={}", version); println!("cargo:rustc-env=VERSION_AND_GIT_HASH={}", version);
if git_hash.is_none() { if git_hash.is_none() {

View file

@ -1,21 +1,21 @@
[package] [package]
name = "helix-lsp" name = "helix-lsp"
version = "0.6.0" description = "LSP client implementation for Helix project"
authors = ["Blaž Hrastnik <blaz@mxxn.io>"] version.workspace = true
authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
rust-version.workspace = true rust-version.workspace = true
description = "LSP client implementation for Helix project" categories.workspace = true
categories = ["editor"] repository.workspace = true
repository = "https://github.com/helix-editor/helix" homepage.workspace = true
homepage = "https://helix-editor.com"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
helix-core = { version = "0.6", path = "../helix-core" } helix-core = { path = "../helix-core" }
helix-loader = { version = "0.6", path = "../helix-loader" } helix-loader = { path = "../helix-loader" }
helix-parsec = { version = "0.6", path = "../helix-parsec" } helix-parsec = { path = "../helix-parsec" }
anyhow = "1.0" anyhow = "1.0"
futures-executor = "0.3" futures-executor = "0.3"

View file

@ -1,14 +1,14 @@
[package] [package]
name = "helix-parsec" name = "helix-parsec"
version = "0.6.0" description = "Parser combinators for Helix"
authors = ["Blaž Hrastnik <blaz@mxxn.io>"] include = ["src/**/*", "README.md"]
version.workspace = true
authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
rust-version.workspace = true rust-version.workspace = true
description = "Parser combinators for Helix" categories.workspace = true
categories = ["editor"] repository.workspace = true
repository = "https://github.com/helix-editor/helix" homepage.workspace = true
homepage = "https://helix-editor.com"
include = ["src/**/*", "README.md"]
[dependencies] [dependencies]

View file

@ -1,16 +1,16 @@
[package] [package]
name = "helix-term" name = "helix-term"
version = "0.6.0"
description = "A post-modern text editor." description = "A post-modern text editor."
authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
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"] include = ["src/**/*", "README.md"]
default-run = "hx" default-run = "hx"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
rust-version.workspace = true rust-version.workspace = true
categories.workspace = true
repository.workspace = true
homepage.workspace = true
[features] [features]
default = ["git"] default = ["git"]
@ -23,13 +23,13 @@ name = "hx"
path = "src/main.rs" path = "src/main.rs"
[dependencies] [dependencies]
helix-core = { version = "0.6", path = "../helix-core" } helix-core = { path = "../helix-core" }
helix-event = { version = "0.6", path = "../helix-event" } helix-event = { path = "../helix-event" }
helix-view = { version = "0.6", path = "../helix-view" } helix-view = { path = "../helix-view" }
helix-lsp = { version = "0.6", path = "../helix-lsp" } helix-lsp = { path = "../helix-lsp" }
helix-dap = { version = "0.6", path = "../helix-dap" } helix-dap = { path = "../helix-dap" }
helix-vcs = { version = "0.6", path = "../helix-vcs" } helix-vcs = { path = "../helix-vcs" }
helix-loader = { version = "0.6", path = "../helix-loader" } helix-loader = { path = "../helix-loader" }
anyhow = "1" anyhow = "1"
once_cell = "1.18" once_cell = "1.18"
@ -79,7 +79,7 @@ libc = "0.2.150"
crossterm = { version = "0.27", features = ["event-stream", "use-dev-tty"] } crossterm = { version = "0.27", features = ["event-stream", "use-dev-tty"] }
[build-dependencies] [build-dependencies]
helix-loader = { version = "0.6", path = "../helix-loader" } helix-loader = { path = "../helix-loader" }
[dev-dependencies] [dev-dependencies]
smallvec = "1.11" smallvec = "1.11"

View file

@ -1,22 +1,23 @@
[package] [package]
name = "helix-tui" name = "helix-tui"
version = "0.6.0" description = """A library to build rich terminal user interfaces or dashboards"""
authors = ["Blaž Hrastnik <blaz@mxxn.io>"] include = ["src/**/*", "README.md"]
description = """ version.workspace = true
A library to build rich terminal user interfaces or dashboards authors.workspace = true
"""
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
rust-version.workspace = true rust-version.workspace = true
categories = ["editor"] categories.workspace = true
repository = "https://github.com/helix-editor/helix" repository.workspace = true
homepage = "https://helix-editor.com" homepage.workspace = true
include = ["src/**/*", "README.md"]
[features] [features]
default = ["crossterm"] default = ["crossterm"]
[dependencies] [dependencies]
helix-view = { path = "../helix-view", features = ["term"] }
helix-core = { path = "../helix-core" }
bitflags = "2.4" bitflags = "2.4"
cassowary = "0.3" cassowary = "0.3"
unicode-segmentation = "1.10" unicode-segmentation = "1.10"
@ -25,5 +26,3 @@ termini = "1.0"
serde = { version = "1", "optional" = true, features = ["derive"]} serde = { version = "1", "optional" = true, features = ["derive"]}
once_cell = "1.18" once_cell = "1.18"
log = "~0.4" log = "~0.4"
helix-view = { version = "0.6", path = "../helix-view", features = ["term"] }
helix-core = { version = "0.6", path = "../helix-core" }

View file

@ -1,19 +1,19 @@
[package] [package]
name = "helix-vcs" name = "helix-vcs"
version = "0.6.0" version.workspace = true
authors = ["Blaž Hrastnik <blaz@mxxn.io>"] authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
rust-version.workspace = true rust-version.workspace = true
categories = ["editor"] categories.workspace = true
repository = "https://github.com/helix-editor/helix" repository.workspace = true
homepage = "https://helix-editor.com" homepage.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
helix-core = { version = "0.6", path = "../helix-core" } helix-core = { path = "../helix-core" }
helix-event = { version = "0.6", path = "../helix-event" } helix-event = { path = "../helix-event" }
tokio = { version = "1", features = ["rt", "rt-multi-thread", "time", "sync", "parking_lot", "macros"] } tokio = { version = "1", features = ["rt", "rt-multi-thread", "time", "sync", "parking_lot", "macros"] }
parking_lot = "0.12" parking_lot = "0.12"

View file

@ -1,29 +1,30 @@
[package] [package]
name = "helix-view" name = "helix-view"
version = "0.6.0" description = "UI abstractions for use in backends"
authors = ["Blaž Hrastnik <blaz@mxxn.io>"] version.workspace = true
authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
rust-version.workspace = true rust-version.workspace = true
description = "UI abstractions for use in backends" categories.workspace = true
categories = ["editor"] repository.workspace = true
repository = "https://github.com/helix-editor/helix" homepage.workspace = true
homepage = "https://helix-editor.com"
[features] [features]
default = [] default = []
term = ["crossterm"] term = ["crossterm"]
[dependencies] [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" bitflags = "2.4"
anyhow = "1" 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 } crossterm = { version = "0.27", optional = true }
helix-vcs = { version = "0.6", path = "../helix-vcs" }
# Conversion traits # Conversion traits
once_cell = "1.18" once_cell = "1.18"

View file

@ -1,13 +1,19 @@
[package] [package]
name = "xtask" name = "xtask"
version = "0.6.0" version.workspace = true
edition = "2021" 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 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
helix-term = { version = "0.6", path = "../helix-term" } helix-term = { path = "../helix-term" }
helix-core = { version = "0.6", path = "../helix-core" } helix-core = { path = "../helix-core" }
helix-view = { version = "0.6", path = "../helix-view" } helix-view = { path = "../helix-view" }
helix-loader = { version = "0.6", path = "../helix-loader" } helix-loader = { path = "../helix-loader" }
toml = "0.7" toml = "0.7"