mirror of
https://github.com/renovatebot/renovate.git
synced 2026-11-01 10:09:50 +00:00
b637846579
* feat(rust-version): Implement `rust-release-channel` versioning scheme * refactor(rust-version): Adjust `isCompatible()` to return `false` for differing `host` values * refactor(rust-version): Simplify comparisons in `sortParsed()` fn * refactor(rust-version): Extract `sortParsed()` fn to `util.ts`
75 lines
2.0 KiB
Markdown
75 lines
2.0 KiB
Markdown
This versioning scheme handles Rust release channel identifiers as used by rustup and other Rust-related tools.
|
|
|
|
### Supported Formats
|
|
|
|
#### Channel Names (Ranges)
|
|
|
|
- `stable` - matches any stable release (e.g., `1.82.0`)
|
|
- `beta` - matches any beta release (e.g., `1.83.0-beta.5`)
|
|
- `nightly` - matches any dated nightly (requires date, e.g., `nightly-2025-11-24`)
|
|
|
|
#### Versioned Releases
|
|
|
|
- Full versions: `1.82.0`, `1.83.0-beta.5`
|
|
- Version ranges: `1.82` (`1.82.0` <= version < `1.83.0`)
|
|
- Beta ranges: `1.83.0-beta` (matches all beta versions for `1.83.0`)
|
|
|
|
#### Dated Nightlies
|
|
|
|
- `nightly-2025-11-24` - specific nightly release from a date
|
|
- `nightly-2015-05-15` - historical nightlies (pre-Rust 1.0)
|
|
|
|
### Compatibility Groups
|
|
|
|
- **Nightly versions** are only compatible with other nightlies
|
|
- **Stable and beta versions** are compatible with each other
|
|
|
|
This affects which updates Renovate will offer.
|
|
|
|
### Stability
|
|
|
|
Only final releases without prerelease suffixes are considered "stable":
|
|
|
|
- `1.82.0` → stable
|
|
- `1.83.0-beta.5` → not stable
|
|
- `nightly-2025-11-24` → not stable
|
|
|
|
### Range Strategies
|
|
|
|
#### `pin`
|
|
|
|
Always pins to the exact new version:
|
|
|
|
- `stable` → `1.83.0`
|
|
- `nightly` → `nightly-2025-11-24`
|
|
|
|
#### `replace`
|
|
|
|
Maintains the format style of the current value:
|
|
|
|
- `stable` → `stable`
|
|
- `beta` → `beta`
|
|
- `nightly` → `nightly`
|
|
- `nightly-2025-11-23` → `nightly-2025-11-24`
|
|
- `1.82` → `1.83`
|
|
- `1.82.0` → `1.83.0`
|
|
- `1.83.0-beta` → `1.84.0-beta`
|
|
- `1.83.0-beta.1` → `1.83.0-beta.5`
|
|
|
|
### Major/Minor/Patch Extraction
|
|
|
|
For versioned releases:
|
|
|
|
- Extract directly from semver (e.g., `1.82.0` → major=1, minor=82, patch=0)
|
|
- Ignore prerelease part (e.g., `1.83.0-beta.5` → major=1, minor=83, patch=0)
|
|
|
|
For nightlies:
|
|
|
|
- Before 2015-05-15 (Rust 1.0 release): major=0, minor=null, patch=null
|
|
- After 2015-05-15: major=1, minor=null, patch=null
|
|
|
|
### Resources
|
|
|
|
- [Rust Toolchain Concepts](https://rust-lang.github.io/rustup/concepts/toolchains.html)
|
|
- [Rust Release History](https://releases.rs/)
|