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
@ -57,4 +64,4 @@ versions for convenience:
> release. For the full log, check out the git log. > release. For the full log, check out the git log.
Typically, small changes like dependencies or documentation updates, refactors, Typically, small changes like dependencies or documentation updates, refactors,
or meta changes like GitHub Actions work are left out. or meta changes like GitHub Actions work are left out.

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"
@ -29,4 +29,4 @@ log = "0.4"
git = ["gix"] git = ["gix"]
[dev-dependencies] [dev-dependencies]
tempfile = "3.8" tempfile = "3.8"

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"