Compare commits

...

11 Commits

Author SHA1 Message Date
Félix Saparelli 9f1f2e9d04
chore: Release 2024-05-16 14:20:58 +12:00
Félix Saparelli 0e393c25cf
update changelog 2024-05-16 14:20:36 +12:00
Luca Barbato 2026c52abd
feat: Add git-describe support (#832) 2024-05-15 13:02:25 +00:00
Félix Saparelli 72f069a847
chore: Release 2024-04-30 20:41:43 +12:00
Adit 4affed6fff
fix(cli): recursive paths provided by user getting treated non-recursively (#828) 2024-04-30 07:10:28 +00:00
Félix Saparelli e0084e69f8
fix ci again 2024-04-28 19:14:21 +12:00
Félix Saparelli 592b712c95
chore: Release 2024-04-28 18:55:23 +12:00
Félix Saparelli c9a3b9df00
chore: Release 2024-04-28 18:53:42 +12:00
Félix Saparelli e63d37f601
chore: Release 2024-04-28 18:52:50 +12:00
Félix Saparelli 14e6294f5a
chore: Release 2024-04-28 18:51:48 +12:00
Félix Saparelli 234d606563
chore: Release 2024-04-28 18:50:18 +12:00
23 changed files with 211 additions and 38 deletions

View File

@ -197,9 +197,15 @@ jobs:
tool: cross
- name: Build
run: ${{ matrix.cross && 'cross' || 'cargo' }} build --package watchexec-cli --release --locked --target ${{ matrix.target }}
shell: bash
run: |
${{ matrix.cross && 'cross' || 'cargo' }} build \
-p watchexec-cli \
--release --locked \
--target ${{ matrix.target }}
- name: Make manpage
shell: bash
run: |
cargo run -p watchexec-cli \
${{ (!matrix.cross) && '--release --target' || '' }} \
@ -207,6 +213,7 @@ jobs:
--locked -- --manual > doc/watchexec.1
- name: Make completions
shell: bash
run: |
bin/completions \
${{ (!matrix.cross) && '--release --target' || '' }} \

View File

@ -3,8 +3,8 @@ message: |
If you use this software, please cite it using these metadata.
title: "Watchexec: a tool to react to filesystem changes, and a crate ecosystem to power it"
version: "2.0.0"
date-released: 2024-04-20
version: "2.1.1"
date-released: 2024-04-30
repository-code: https://github.com/watchexec/watchexec
license: Apache-2.0

49
Cargo.lock generated
View File

@ -488,7 +488,7 @@ dependencies = [
[[package]]
name = "bosion"
version = "1.0.3"
version = "1.1.0"
dependencies = [
"gix",
"time",
@ -1317,6 +1317,7 @@ dependencies = [
"gix-glob",
"gix-hash",
"gix-hashtable",
"gix-index",
"gix-lock",
"gix-macros",
"gix-object",
@ -1354,6 +1355,15 @@ dependencies = [
"winnow 0.6.6",
]
[[package]]
name = "gix-bitmap"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a371db66cbd4e13f0ed9dc4c0fea712d7276805fccc877f77e96374d317e87ae"
dependencies = [
"thiserror",
]
[[package]]
name = "gix-chunk"
version = "0.4.8"
@ -1513,6 +1523,33 @@ dependencies = [
"parking_lot",
]
[[package]]
name = "gix-index"
version = "0.32.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "881ab3b1fa57f497601a5add8289e72a7ae09471fc0b9bbe483b628ae8e418a1"
dependencies = [
"bitflags 2.5.0",
"bstr",
"filetime",
"fnv",
"gix-bitmap",
"gix-features",
"gix-fs",
"gix-hash",
"gix-lock",
"gix-object",
"gix-traverse",
"gix-utils",
"hashbrown 0.14.3",
"itoa",
"libc",
"memmap2",
"rustix",
"smallvec",
"thiserror",
]
[[package]]
name = "gix-lock"
version = "13.1.1"
@ -1988,7 +2025,7 @@ dependencies = [
[[package]]
name = "ignore-files"
version = "3.0.0"
version = "3.0.1"
dependencies = [
"dunce",
"futures",
@ -4007,7 +4044,7 @@ checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
[[package]]
name = "watchexec"
version = "4.0.0"
version = "4.1.0"
dependencies = [
"async-priority-channel",
"async-recursion",
@ -4032,7 +4069,7 @@ dependencies = [
[[package]]
name = "watchexec-cli"
version = "2.0.0"
version = "2.1.1"
dependencies = [
"ahash",
"argfile",
@ -4097,7 +4134,7 @@ dependencies = [
[[package]]
name = "watchexec-filterer-globset"
version = "4.0.0"
version = "4.0.1"
dependencies = [
"ignore",
"ignore-files",
@ -4111,7 +4148,7 @@ dependencies = [
[[package]]
name = "watchexec-filterer-ignore"
version = "4.0.0"
version = "4.0.1"
dependencies = [
"dunce",
"ignore",

View File

@ -2,6 +2,10 @@
## Next (YYYY-MM-DD)
## v1.1.0 (2024-05-16)
- Add `git-describe` support (#832, by @lu-zero)
## v1.0.3 (2024-04-20)
- Deps: gix 0.62

View File

@ -1,6 +1,6 @@
[package]
name = "bosion"
version = "1.0.3"
version = "1.1.0"
authors = ["Félix Saparelli <felix@passcod.name>"]
license = "Apache-2.0 OR MIT"
@ -22,6 +22,7 @@ features = ["macros", "formatting"]
version = "0.62.0"
optional = true
default-features = false
features = ["revision"]
[features]
default = ["git", "reproducible", "std"]

View File

@ -15,7 +15,7 @@ In your `Cargo.toml`:
```toml
[build-dependencies]
bosion = "1.0.3"
bosion = "1.1.0"
```
In your `build.rs`:

View File

@ -8,6 +8,24 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "ahash"
version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
dependencies = [
"cfg-if",
"once_cell",
"version_check",
"zerocopy",
]
[[package]]
name = "allocator-api2"
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
[[package]]
name = "anstream"
version = "0.6.13"
@ -82,7 +100,7 @@ checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
[[package]]
name = "bosion"
version = "1.0.2"
version = "1.0.3"
dependencies = [
"gix",
"time",
@ -211,6 +229,18 @@ version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
[[package]]
name = "filetime"
version = "0.2.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
dependencies = [
"cfg-if",
"libc",
"redox_syscall",
"windows-sys",
]
[[package]]
name = "flate2"
version = "1.0.28"
@ -221,6 +251,12 @@ dependencies = [
"miniz_oxide",
]
[[package]]
name = "fnv"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "form_urlencoded"
version = "1.2.1"
@ -247,6 +283,7 @@ dependencies = [
"gix-glob",
"gix-hash",
"gix-hashtable",
"gix-index",
"gix-lock",
"gix-macros",
"gix-object",
@ -284,6 +321,15 @@ dependencies = [
"winnow",
]
[[package]]
name = "gix-bitmap"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a371db66cbd4e13f0ed9dc4c0fea712d7276805fccc877f77e96374d317e87ae"
dependencies = [
"thiserror",
]
[[package]]
name = "gix-chunk"
version = "0.4.8"
@ -443,6 +489,33 @@ dependencies = [
"parking_lot",
]
[[package]]
name = "gix-index"
version = "0.32.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "881ab3b1fa57f497601a5add8289e72a7ae09471fc0b9bbe483b628ae8e418a1"
dependencies = [
"bitflags 2.5.0",
"bstr",
"filetime",
"fnv",
"gix-bitmap",
"gix-features",
"gix-fs",
"gix-hash",
"gix-lock",
"gix-object",
"gix-traverse",
"gix-utils",
"hashbrown",
"itoa",
"libc",
"memmap2",
"rustix",
"smallvec",
"thiserror",
]
[[package]]
name = "gix-lock"
version = "13.1.1"
@ -702,6 +775,10 @@ name = "hashbrown"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
dependencies = [
"ahash",
"allocator-api2",
]
[[package]]
name = "heck"
@ -1076,6 +1153,12 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
name = "version_check"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "walkdir"
version = "2.5.0"
@ -1255,3 +1338,23 @@ checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352"
dependencies = [
"memchr",
]
[[package]]
name = "zerocopy"
version = "0.7.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
version = "0.7.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
dependencies = [
"proc-macro2",
"quote",
"syn",
]

View File

@ -13,6 +13,9 @@ struct Args {
#[clap(long)]
dates: bool,
#[clap(long)]
describe: bool,
}
fn main() {
@ -23,17 +26,15 @@ fn main() {
"{}",
Bosion::long_version_with(&[("extra", "field"), ("custom", "1.2.3"),])
);
} else
if args.features {
} else if args.features {
println!("Features: {}", Bosion::CRATE_FEATURE_STRING);
} else
if args.dates {
} else if args.dates {
println!("commit date: {}", Bosion::GIT_COMMIT_DATE);
println!("commit datetime: {}", Bosion::GIT_COMMIT_DATETIME);
println!("build date: {}", Bosion::BUILD_DATE);
println!("build datetime: {}", Bosion::BUILD_DATETIME);
} else if args.describe {
println!("commit description: {}", Bosion::GIT_COMMIT_DESCRIPTION);
} else {
println!("{}", Bosion::LONG_VERSION);
}

View File

@ -145,6 +145,9 @@ pub struct GitInfo {
/// The datetime of the current commit, in the format `YYYY-MM-DD HH:MM:SS`, at UTC.
pub git_datetime: String,
/// The `git describe` equivalent output
pub git_description: String,
}
#[cfg(feature = "git")]
@ -163,6 +166,7 @@ impl GitInfo {
git_shorthash: head.short_id().err_string()?.to_string(),
git_date: timestamp.format(DATE_FORMAT).err_string()?,
git_datetime: timestamp.format(DATETIME_FORMAT).err_string()?,
git_description: head.describe().format().err_string()?.to_string(),
})
}
}

View File

@ -74,6 +74,7 @@ pub fn gather_to(filename: &str, structname: &str, public: bool) {
git_shorthash,
git_date,
git_datetime,
git_description,
..
}) = git
{
@ -104,6 +105,11 @@ pub fn gather_to(filename: &str, structname: &str, public: bool) {
/// This is the date and time (`YYYY-MM-DD HH:MM:SS`) of the commit that was built. Same
/// caveats as with `GIT_COMMIT_HASH` apply.
pub const GIT_COMMIT_DATETIME: &'static str = {git_datetime:?};
/// The git description
///
/// This is the string equivalent to what `git describe` would output
pub const GIT_COMMIT_DESCRIPTION: &'static str = {git_description:?};
"
), format!("{crate_version} ({git_shorthash} {git_date}) {crate_feature_string}\ncommit-hash: {git_hash}\ncommit-date: {git_date}\nbuild-date: {build_date}\nrelease: {crate_version}\nfeatures: {crate_feature_list}"))
} else {
@ -244,6 +250,7 @@ pub fn gather_to_env_with_prefix(prefix: &str) {
git_shorthash,
git_date,
git_datetime,
git_description,
..
}) = git
{
@ -251,5 +258,6 @@ pub fn gather_to_env_with_prefix(prefix: &str) {
println!("cargo:rustc-env={prefix}GIT_COMMIT_SHORTHASH={git_shorthash}");
println!("cargo:rustc-env={prefix}GIT_COMMIT_DATE={git_date}");
println!("cargo:rustc-env={prefix}GIT_COMMIT_DATETIME={git_datetime}");
println!("cargo:rustc-env={prefix}GIT_COMMIT_DESCRIPTION={git_description}");
}
}

View File

@ -1,6 +1,6 @@
[package]
name = "watchexec-cli"
version = "2.0.0"
version = "2.1.1"
authors = ["Félix Saparelli <felix@passcod.name>", "Matt Green <mattgreenrocks@gmail.com>"]
license = "Apache-2.0"
@ -69,7 +69,7 @@ features = ["log", "env_logger"]
optional = true
[dependencies.ignore-files]
version = "3.0.0"
version = "3.0.1"
path = "../ignore-files"
[dependencies.miette]
@ -85,7 +85,7 @@ version = "1.4.0"
path = "../project-origins"
[dependencies.watchexec]
version = "4.0.0"
version = "4.1.0"
path = "../lib"
[dependencies.watchexec-events]
@ -98,7 +98,7 @@ version = "3.0.0"
path = "../signals"
[dependencies.watchexec-filterer-globset]
version = "4.0.0"
version = "4.0.1"
path = "../filterer/globset"
[dependencies.tokio]
@ -130,7 +130,7 @@ mimalloc = "0.1.39"
embed-resource = "2.4.0"
[build-dependencies.bosion]
version = "1.0.3"
version = "1.1.0"
path = "../bosion"
[dev-dependencies]

View File

@ -1243,7 +1243,7 @@ pub async fn get_args() -> Result<(Args, Option<WorkerGuard>)> {
canonicalize(project_origin.join(path)).into_diagnostic()
}
}
.map(WatchedPath::non_recursive)
.map(WatchedPath::recursive)
})
.chain(take(&mut args.non_recursive_paths).into_iter().map(|path| {
{

View File

@ -3,7 +3,7 @@
<assemblyIdentity
type="win32"
name="Watchexec.Cli.watchexec"
version="2.0.0.0"
version="2.1.1.0"
/>
<trustInfo>

View File

@ -2,6 +2,8 @@
## Next (YYYY-MM-DD)
## v4.0.1 (2024-04-28)
- Hide fmt::Debug spew from ignore crate, use `full_debug` feature to restore.
## v4.0.0 (2024-04-20)

View File

@ -1,6 +1,6 @@
[package]
name = "watchexec-filterer-globset"
version = "4.0.0"
version = "4.0.1"
authors = ["Matt Green <mattgreenrocks@gmail.com>", "Félix Saparelli <felix@passcod.name>"]
license = "Apache-2.0"
@ -20,11 +20,11 @@ ignore = "0.4.18"
tracing = "0.1.40"
[dependencies.ignore-files]
version = "3.0.0"
version = "3.0.1"
path = "../../ignore-files"
[dependencies.watchexec]
version = "4.0.0"
version = "4.1.0"
path = "../../lib"
[dependencies.watchexec-events]
@ -32,7 +32,7 @@ version = "3.0.0"
path = "../../events"
[dependencies.watchexec-filterer-ignore]
version = "4.0.0"
version = "4.0.1"
path = "../ignore"
[dev-dependencies]

View File

@ -2,6 +2,8 @@
## Next (YYYY-MM-DD)
## v4.0.1 (2024-04-28)
## v4.0.0 (2024-04-20)
- Deps: watchexec 4

View File

@ -1,6 +1,6 @@
[package]
name = "watchexec-filterer-ignore"
version = "4.0.0"
version = "4.0.1"
authors = ["Félix Saparelli <felix@passcod.name>"]
license = "Apache-2.0"
@ -22,11 +22,11 @@ normalize-path = "0.2.1"
tracing = "0.1.40"
[dependencies.ignore-files]
version = "3.0.0"
version = "3.0.1"
path = "../../ignore-files"
[dependencies.watchexec]
version = "4.0.0"
version = "4.1.0"
path = "../../lib"
[dependencies.watchexec-events]

View File

@ -2,6 +2,8 @@
## Next (YYYY-MM-DD)
## v3.0.1 (2024-04-28)
- Hide fmt::Debug spew from ignore crate, use `full_debug` feature to restore.
## v3.0.0 (2024-04-20)

View File

@ -1,6 +1,6 @@
[package]
name = "ignore-files"
version = "3.0.0"
version = "3.0.1"
authors = ["Félix Saparelli <felix@passcod.name>"]
license = "Apache-2.0"

View File

@ -2,6 +2,8 @@
## Next (YYYY-MM-DD)
## v4.1.0 (2024-04-28)
- Feature: non-recursive watches with `WatchedPath::non_recursive()`
- Fix: `config.pathset()` now preserves `WatchedPath` attributes
- Refactor: move `WatchedPath` to the root of the crate (old path remains as re-export for now)

View File

@ -1,6 +1,6 @@
[package]
name = "watchexec"
version = "4.0.0"
version = "4.1.0"
authors = ["Félix Saparelli <felix@passcod.name>", "Matt Green <mattgreenrocks@gmail.com>"]
license = "Apache-2.0"
@ -43,7 +43,7 @@ version = "2.0.0"
path = "../supervisor"
[dependencies.ignore-files]
version = "3.0.0"
version = "3.0.1"
path = "../ignore-files"
[dependencies.project-origins]

View File

@ -1,6 +1,6 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH watchexec 1 "watchexec 2.0.0"
.TH watchexec 1 "watchexec 2.1.1"
.SH NAME
watchexec \- Execute commands when watched files change
.SH SYNOPSIS
@ -582,6 +582,6 @@ Use @argfile as first argument to load arguments from the file \*(Aqargfile\*(Aq
Didn\*(Aqt expect this much output? Use the short \*(Aq\-h\*(Aq flag to get short help.
.SH VERSION
v2.0.0
v2.1.1
.SH AUTHORS
Félix Saparelli <felix@passcod.name>, Matt Green <mattgreenrocks@gmail.com>

View File

@ -861,7 +861,7 @@ Didnt expect this much output? Use the short -h flag to get short help.
# VERSION
v2.0.0
v2.1.1
# AUTHORS