Skip to content

Commit 3bcceee

Browse files
authored
Improve makefile, document utils MSRV policy (#6390)
Fixes #3707 I didn't end up trying to generalize the CI. We can figure that out separately if we want. <!-- Thank you for your pull request to ICU4X! Reminder: try to use [Conventional Comments](https://conventionalcomments.org/) to make comments clearer. Please see https://github.com/unicode-org/icu4x/blob/main/CONTRIBUTING.md for general information on contributing to ICU4X. -->
1 parent 5538931 commit 3bcceee

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

.github/workflows/build-test.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,8 @@ jobs:
7676
- name: Check
7777
run: cargo make ci-job-msrv-${{ matrix.behavior }}
7878

79-
msrv-zerofrom:
79+
msrv-utils:
8080
runs-on: ubuntu-latest
81-
# Defined as a matrix so that features can start immediately, but
82-
# be killed if check fails.
83-
strategy:
84-
fail-fast: true
8581
# Set CARGO_HTTP_MULTIPLEXING=false to work around crates.io curl bug:
8682
# <https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/timeout.20investigation>
8783
env:
@@ -99,7 +95,7 @@ jobs:
9995

10096
# Actual job
10197
- name: Check
102-
run: cargo make ci-job-msrv-zerofrom
98+
run: cargo make ci-job-msrv-utils
10399

104100
# ci-job-test
105101
test:

Makefile.toml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,15 @@ exec --fail-on-error rustup install 1.81 --profile minimal
6565
exec --fail-on-error cargo +1.81 check --all-targets --all-features
6666
'''
6767

68-
[tasks.ci-job-msrv-zerofrom]
68+
[tasks.ci-job-msrv-utils]
69+
description = "Check utils that have different MSRVs"
70+
category = "ICU4X Development"
71+
dependencies = [
72+
# This list should be kept in sync with the list in rust_versions.md
73+
"msrv-zerofrom",
74+
]
75+
76+
[tasks.msrv-zerofrom]
6977
description = "Run MSRV tests for the zerofrom MSRV job"
7078
category = "ICU4X Development"
7179
env = { ICU4X_DATA_DIR = "../stubdata" }

documents/process/rust_versions.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,16 @@ While we hope that old ICU4X versions will always compile, this is not always go
1313

1414
The main ICU4X library does not use nightly; however nightly is required for building our FreeRTOS port since it involves building a no_std binary. We shall attempt to keep such ports (and any future nightly-only ICU4X features) building on nightly compilers in a range of 3-6 months in the past and the future, however we cannot make concrete guarantees here.
1515

16+
17+
### Utils crates with different MSRVs
18+
19+
Our "utils" crates (yoke, zerovec, zerofrom, etc) are not versioned alongside ICU4X: they may have major version updates between minor ICU4X releases, and they may choose to have minor version updates between major ICU4X releases.
20+
21+
By default, these crates have the same MSRV as their corresponding ICU4X release, however at times we may give them a lower MSRV for a wider range of compatability.
22+
23+
This is done on an as-requested basis and is best-effort.
24+
25+
Currently, `zerofrom` is the only crate with a lower MSRV.
1626

1727
## For ICU4X developers
1828

0 commit comments

Comments
 (0)