Ditch MSRV policy (#510)

This commit is contained in:
Félix Saparelli 2023-03-02 15:33:39 +13:00 committed by GitHub
parent 6232c213a9
commit 46453a2b35
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 33 additions and 27 deletions

View File

@ -30,19 +30,16 @@ jobs:
- macos - macos
- ubuntu - ubuntu
- windows - windows
toolchain:
- stable
- 1.62.1
name: Test ${{ matrix.platform }} with Rust ${{ matrix.toolchain }} name: Test ${{ matrix.platform }}
runs-on: "${{ matrix.platform }}-latest" runs-on: "${{ matrix.platform }}-latest"
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Configure toolchain - name: Configure toolchain
run: | run: |
rustup toolchain install ${{ matrix.toolchain }} --profile minimal --no-self-update rustup toolchain install --profile minimal --no-self-update stable
rustup default ${{ matrix.toolchain }} rustup default stable
# https://github.com/actions/cache/issues/752 # https://github.com/actions/cache/issues/752
- if: ${{ runner.os == 'Windows' }} - if: ${{ runner.os == 'Windows' }}
@ -59,19 +56,16 @@ jobs:
~/.cargo/registry/index/ ~/.cargo/registry/index/
~/.cargo/registry/cache/ ~/.cargo/registry/cache/
~/.cargo/git/db/ ~/.cargo/git/db/
key: ${{ runner.os }}-cargo-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.lock') }} key: ${{ runner.os }}-cargo-stable-${{ hashFiles('**/Cargo.lock') }}
restore-keys: | restore-keys: |
${{ runner.os }}-cargo-${{ matrix.toolchain }}- ${{ runner.os }}-cargo-stable-
${{ runner.os }}-cargo- ${{ runner.os }}-cargo-
- name: Compilation caching - name: Compilation caching
uses: actions/cache@v3 uses: actions/cache@v3
with: with:
path: target/ path: target/
key: ${{ runner.os }}-target-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.lock') }} key: ${{ runner.os }}-target-stable-${{ hashFiles('**/Cargo.lock') }}
- if: matrix.toolchain != 'stable'
run: echo "flags=--locked" >> $GITHUB_ENV
- name: Run test suite - name: Run test suite
run: cargo test ${{ env.flags }} run: cargo test ${{ env.flags }}

View File

@ -45,7 +45,7 @@ More usage examples: [in the CLI README](./crates/cli/#usage-examples)!
- With [your package manager](./doc/packages.md) for Arch, Debian, Homebrew, Nix, Scoop, Chocolatey… - With [your package manager](./doc/packages.md) for Arch, Debian, Homebrew, Nix, Scoop, Chocolatey…
- From binary with [Binstall](https://github.com/cargo-bins/cargo-binstall): `cargo binstall watchexec-cli` - From binary with [Binstall](https://github.com/cargo-bins/cargo-binstall): `cargo binstall watchexec-cli`
- As [pre-built binary package from Github](https://github.com/watchexec/watchexec/releases/latest) - As [pre-built binary package from Github](https://github.com/watchexec/watchexec/releases/latest)
- From source with Cargo: `cargo install watchexec-cli` - From source with Cargo: `cargo install --locked watchexec-cli`
All options in detail: [in the CLI README](./crates/cli/#installation) All options in detail: [in the CLI README](./crates/cli/#installation)
and [in the manual page](./doc/watchexec.1.ronn). and [in the manual page](./doc/watchexec.1.ronn).

View File

@ -2,6 +2,8 @@
## Next (YYYY-MM-DD) ## Next (YYYY-MM-DD)
- Ditch MSRV policy. The `rust-version` indication will remain, for the minimum estimated Rust version for the code features used in the crate's own code, but dependencies may have already moved on. From now on, only latest stable is assumed and tested for. ([#510](https://github.com/watchexec/watchexec/pull/510))
## v1.1.0 (2023-01-09) ## v1.1.0 (2023-01-09)
- MSRV: bump to 1.61.0 - MSRV: bump to 1.61.0

View File

@ -9,7 +9,6 @@ _The default filterer implementation for Watchexec._
- **[API documentation][docs]**. - **[API documentation][docs]**.
- Licensed under [Apache 2.0][license]. - Licensed under [Apache 2.0][license].
- Minimum Supported Rust Version: 1.61.0 (incurs a minor semver bump).
- Status: maintained. - Status: maintained.
[docs]: https://docs.rs/watchexec-filterer-globset [docs]: https://docs.rs/watchexec-filterer-globset

View File

@ -2,6 +2,8 @@
## Next (YYYY-MM-DD) ## Next (YYYY-MM-DD)
- Ditch MSRV policy. The `rust-version` indication will remain, for the minimum estimated Rust version for the code features used in the crate's own code, but dependencies may have already moved on. From now on, only latest stable is assumed and tested for. ([#510](https://github.com/watchexec/watchexec/pull/510))
## v1.1.0 (2023-01-09) ## v1.1.0 (2023-01-09)
- MSRV: bump to 1.61.0 - MSRV: bump to 1.61.0

View File

@ -9,7 +9,6 @@ _(Sub)filterer implementation for ignore files._
- **[API documentation][docs]**. - **[API documentation][docs]**.
- Licensed under [Apache 2.0][license]. - Licensed under [Apache 2.0][license].
- Minimum Supported Rust Version: 1.61.0 (incurs a minor semver bump).
- Status: maintained. - Status: maintained.
This is mostly a thin layer above the [ignore-files](../../ignore-files) crate, and is meant to be This is mostly a thin layer above the [ignore-files](../../ignore-files) crate, and is meant to be

View File

@ -2,6 +2,8 @@
## Next (YYYY-MM-DD) ## Next (YYYY-MM-DD)
- Ditch MSRV policy. The `rust-version` indication will remain, for the minimum estimated Rust version for the code features used in the crate's own code, but dependencies may have already moved on. From now on, only latest stable is assumed and tested for. ([#510](https://github.com/watchexec/watchexec/pull/510))
## v0.2.0 (2023-01-09) ## v0.2.0 (2023-01-09)
- MSRV: bump to 1.61.0 - MSRV: bump to 1.61.0

View File

@ -9,7 +9,6 @@ _Experimental filterer using tagged filters._
- **[API documentation][docs]**. - **[API documentation][docs]**.
- Licensed under [Apache 2.0][license]. - Licensed under [Apache 2.0][license].
- Minimum Supported Rust Version: 1.61.0 (incurs a minor semver bump).
- Status: maintained. - Status: maintained.
[docs]: https://docs.rs/watchexec-filterer-tagged [docs]: https://docs.rs/watchexec-filterer-tagged

View File

@ -1,7 +1,6 @@
[![Crates.io page](https://badgen.net/crates/v/ignore-files)](https://crates.io/crates/ignore-files) [![Crates.io page](https://badgen.net/crates/v/ignore-files)](https://crates.io/crates/ignore-files)
[![API Docs](https://docs.rs/ignore-files/badge.svg)][docs] [![API Docs](https://docs.rs/ignore-files/badge.svg)][docs]
[![Crate license: Apache 2.0](https://badgen.net/badge/license/Apache%202.0)][license] [![Crate license: Apache 2.0](https://badgen.net/badge/license/Apache%202.0)][license]
![MSRV: 1.58.0 (minor)](https://badgen.net/badge/MSRV/1.58.0%20%28minor%29/0b7261)
[![CI status](https://github.com/watchexec/watchexec/actions/workflows/check.yml/badge.svg)](https://github.com/watchexec/watchexec/actions/workflows/check.yml) [![CI status](https://github.com/watchexec/watchexec/actions/workflows/check.yml/badge.svg)](https://github.com/watchexec/watchexec/actions/workflows/check.yml)
# Ignore files # Ignore files
@ -10,7 +9,6 @@ _Find, parse, and interpret ignore files._
- **[API documentation][docs]**. - **[API documentation][docs]**.
- Licensed under [Apache 2.0][license]. - Licensed under [Apache 2.0][license].
- Minimum Supported Rust Version: 1.58.0 (incurs a minor semver bump).
- Status: done. - Status: done.
[docs]: https://docs.rs/ignore-files [docs]: https://docs.rs/ignore-files

View File

@ -2,6 +2,8 @@
## Next (YYYY-MM-DD) ## Next (YYYY-MM-DD)
- Ditch MSRV policy. The `rust-version` indication will remain, for the minimum estimated Rust version for the code features used in the crate's own code, but dependencies may have already moved on. From now on, only latest stable is assumed and tested for. ([#510](https://github.com/watchexec/watchexec/pull/510))
## v2.1.1 (2023-02-14) ## v2.1.1 (2023-02-14)
## v2.1.0 (2023-01-08) ## v2.1.0 (2023-01-08)

View File

@ -1,7 +1,6 @@
[![Crates.io page](https://badgen.net/crates/v/watchexec)](https://crates.io/crates/watchexec) [![Crates.io page](https://badgen.net/crates/v/watchexec)](https://crates.io/crates/watchexec)
[![API Docs](https://docs.rs/watchexec/badge.svg)][docs] [![API Docs](https://docs.rs/watchexec/badge.svg)][docs]
[![Crate license: Apache 2.0](https://badgen.net/badge/license/Apache%202.0)][license] [![Crate license: Apache 2.0](https://badgen.net/badge/license/Apache%202.0)][license]
![MSRV: 1.61.0 (minor)](https://badgen.net/badge/MSRV/1.61.0%20%28minor%29/0b7261)
[![CI status](https://github.com/watchexec/watchexec/actions/workflows/check.yml/badge.svg)](https://github.com/watchexec/watchexec/actions/workflows/check.yml) [![CI status](https://github.com/watchexec/watchexec/actions/workflows/check.yml/badge.svg)](https://github.com/watchexec/watchexec/actions/workflows/check.yml)
# Watchexec library # Watchexec library
@ -10,7 +9,6 @@ _The library which powers [Watchexec CLI](https://watchexec.github.io) and other
- **[API documentation][docs]**. - **[API documentation][docs]**.
- Licensed under [Apache 2.0][license]. - Licensed under [Apache 2.0][license].
- Minimum Supported Rust Version: 1.61.0 (incurs a minor semver bump).
- Status: maintained. - Status: maintained.
[docs]: https://docs.rs/watchexec [docs]: https://docs.rs/watchexec
@ -86,14 +84,14 @@ struct YourConfigFormat; impl YourConfigFormat { async fn load_from_file(_: &str
The library also exposes a number of components which are available to make your own tool, or to The library also exposes a number of components which are available to make your own tool, or to
make anything else you may want: make anything else you may want:
- **[Command handling](https://docs.rs/watchexec/2.0.0-pre.6/watchexec/command/index.html)**, to - **[Command handling](https://docs.rs/watchexec/2/watchexec/command/index.html)**, to
build a command with an arbitrary shell, deal with grouped and ungrouped processes the same way, build a command with an arbitrary shell, deal with grouped and ungrouped processes the same way,
and supervise a process while also listening for & acting on interventions such as sending signals. and supervise a process while also listening for & acting on interventions such as sending signals.
- **Event sources**: [Filesystem](https://docs.rs/watchexec/2.0.0-pre.6/watchexec/fs/index.html), - **Event sources**: [Filesystem](https://docs.rs/watchexec/2/watchexec/fs/index.html),
[Signals](https://docs.rs/watchexec/2.0.0-pre.6/watchexec/signal/source/index.html), (more to come). [Signals](https://docs.rs/watchexec/2/watchexec/signal/source/index.html), (more to come).
- Finding **[a common prefix](https://docs.rs/watchexec/2.0.0-pre.6/watchexec/paths/fn.common_prefix.html)** - Finding **[a common prefix](https://docs.rs/watchexec/2/watchexec/paths/fn.common_prefix.html)**
of a set of paths. of a set of paths.
- And [more][docs]! - And [more][docs]!
@ -123,3 +121,16 @@ There are also separate, standalone crates used to build Watchexec which you can
- **[Project Origins](https://docs.rs/project-origins)** finds the origin (or root) path of a - **[Project Origins](https://docs.rs/project-origins)** finds the origin (or root) path of a
project, and what kind of project it is. project, and what kind of project it is.
## Rust version (MSRV)
Due to the unpredictability of dependencies changing their MSRV, this library no longer tries to
keep to a minimum supported Rust version behind stable. Instead, it is assumed that developers use
the latest stable at all times.
Applications that wish to support lower-than-stable Rust (such as the Watchexec CLI does) should:
- use a lock file
- recommend the use of `--locked` when installing from source
- provide pre-built binaries (and [Binstall](https://github.com/cargo-bins/cargo-binstall) support) for non-distro users
- avoid using newer features until some time has passed, to let distro users catch up
- consider recommending that distro-Rust users switch to distro `rustup` where available

View File

@ -1,7 +1,6 @@
[![Crates.io page](https://badgen.net/crates/v/project-origins)](https://crates.io/crates/project-origins) [![Crates.io page](https://badgen.net/crates/v/project-origins)](https://crates.io/crates/project-origins)
[![API Docs](https://docs.rs/project-origins/badge.svg)][docs] [![API Docs](https://docs.rs/project-origins/badge.svg)][docs]
[![Crate license: Apache 2.0](https://badgen.net/badge/license/Apache%202.0)][license] [![Crate license: Apache 2.0](https://badgen.net/badge/license/Apache%202.0)][license]
![MSRV: 1.58.0 (minor)](https://badgen.net/badge/MSRV/1.58.0%20%28minor%29/0b7261)
[![CI status](https://github.com/watchexec/watchexec/actions/workflows/check.yml/badge.svg)](https://github.com/watchexec/watchexec/actions/workflows/check.yml) [![CI status](https://github.com/watchexec/watchexec/actions/workflows/check.yml/badge.svg)](https://github.com/watchexec/watchexec/actions/workflows/check.yml)
# Project origins # Project origins
@ -10,7 +9,6 @@ _Resolve project origins and kinds from a path._
- **[API documentation][docs]**. - **[API documentation][docs]**.
- Licensed under [Apache 2.0][license]. - Licensed under [Apache 2.0][license].
- Minimum Supported Rust Version: 1.58.0 (incurs a minor semver bump).
- Status: maintained. - Status: maintained.
[docs]: https://docs.rs/project-origins [docs]: https://docs.rs/project-origins

View File

@ -19,6 +19,6 @@
| Windows | Chocolatey | [`watchexec`](https://community.chocolatey.org/packages/watchexec) | community | `choco install watchexec` | | Windows | Chocolatey | [`watchexec`](https://community.chocolatey.org/packages/watchexec) | community | `choco install watchexec` |
| Windows | MSYS2 mingw | [`mingw-w64-watchexec`](https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-watchexec) | official | `pacman -S mingw-w64-x86_64-watchexec` | | Windows | MSYS2 mingw | [`mingw-w64-watchexec`](https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-watchexec) | official | `pacman -S mingw-w64-x86_64-watchexec` |
| Windows | Scoop | [`watchexec`](https://github.com/ScoopInstaller/Main/blob/master/bucket/watchexec.json) | official | `scoop install watchexec` | | Windows | Scoop | [`watchexec`](https://github.com/ScoopInstaller/Main/blob/master/bucket/watchexec.json) | official | `scoop install watchexec` |
| _Any_ | Crates.io | [`watchexec-cli`](https://crates.io/crates/watchexec-cli) | first-party | `cargo install watchexec-cli` | | _Any_ | Crates.io | [`watchexec-cli`](https://crates.io/crates/watchexec-cli) | first-party | `cargo install --locked watchexec-cli` |
| _Any_ | Binstall | [`watchexec-cli`](https://crates.io/crates/watchexec-cli) | first-party | `cargo binstall watchexec-cli` | | _Any_ | Binstall | [`watchexec-cli`](https://crates.io/crates/watchexec-cli) | first-party | `cargo binstall watchexec-cli` |
| _Any_ | Webi | [`watchexec`](https://webinstall.dev/watchexec/) | third-party | varies (see webpage) | | _Any_ | Webi | [`watchexec`](https://webinstall.dev/watchexec/) | third-party | varies (see webpage) |