1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
|
# `versions` Changelog
## 6.3.2 (2024-08-09)
#### Fixed
- An edge-case in Version/Mess comparisons. [#25][i25]
[i25]: https://github.com/fosskers/rs-versions/issues/25
## 6.3.1 (2024-08-05)
#### Fixed
- Parsing of `Mess` on a single digit will correctly yield `MChunk::Digits`.
- Improved comparison of `Version`s whose main chunks lead with a letter, e.g. `r23`.
## 6.3.0 (2024-06-15)
#### Changed
- Relaxed argument to `new` functions to accept `S: AsRef<str>`.
## 6.2.0 (2024-03-18)
#### Added
- `Requirement::serialize` for pretty-encoding of version "requirements strings".
## 6.1.0 (2024-01-12)
#### Added
- The `Requirement` type for testing version constraints.
- `Versioning::parse` for usage with `nom`.
- `Versioning::deserialize_pretty` for deserializing directly from raw version strings.
## 6.0.0 (2023-12-06)
While technically a breaking change, most users should not notice.
#### Changed
- The `Err` / `Error` associated types for automatic conversion of strings into
proper version types have been changed from `()` to a proper `Error` enum.
## 5.0.1 (2023-08-13)
#### Changed
- Bumped `itertools` dependency.
## 5.0.0 (2023-05-09)
This introduces a very small, technically breaking change to the API involving a
single type. If you're just doing basic parsing and comparisons and not actually
inspecting the types themselves, you shouldn't notice a difference.
#### Changed
- Versions with `~` in their metadata will now parse as a `Mess`. Example: `12.0.0-3ubuntu1~20.04.5`
## 4.1.0 (2022-04-21)
#### Added
- `FromStr` and `TryFrom` instances for each type.
## 4.0.0 (2022-01-07)
#### Added
- The `Release` type.
#### Changed
- `SemVer` and `Version` have had their prerel field changed to `Release`.
- The `Chunk` type has changed from a struct to an enum.
#### Removed
- The `Unit` type.
#### Fixed
- A bug involving zeroes in `SemVer` prereleases.
- A bug involving the `Display` instance for `Version`.
## 3.0.3 (2021-08-23)
#### Changed
- Upgraded to `nom-7.0`.
## 3.0.2 (2021-05-27)
#### Added
- A proper LICENSE file.
#### Changed
- The `Hash` instance of `SemVer` is now hand-written to uphold the Law that:
```
k1 == k2 -> hash(k1) == hash(k2)
```
## 3.0.1 (2021-05-09)
#### Changed
- Certain parsers are now faster and use less memory.
## 3.0.0 (2021-04-16)
This release brings `versions` in line with version `2.0.0` of the SemVer spec.
The main addition to the spec is the allowance of hyphens in both the prerelease
and metadata sections. As such, **certain versions like 1.2.3+1-1 which
previously would not parse as SemVer now do.**
To accomodate this and other small spec updates, the `SemVer` and `Version`
types have received breaking changes here.
#### Added
- [`Serde`](https://serde.rs/) support through the optional `serde` feature.
- `Versioning::nth` to pick out certain fields of a generically parsed version.
- `Default` is now derived on `Versioning`, `SemVer`, `Version`, `Mess` and
`Chunks` so that it's possible to initialize as a struct's field.
#### Changed
- **Breaking:** `SemVer::meta` and `Version::meta` no longer parse as `Chunks`
but as vanilla `String`s.
- **Breaking:** As a semantic change, `Version`s now expect metadata to come
**after** any prerelease, just as with `SemVer`. `Version` is now thus fairly
similar to `SemVer`, except that is allows letters in more permissive
positions.
#### Fixed
- Two small bugs involving `SemVer`/`Version` comparisons.
## 2.1.0 (2021-03-22)
#### Added
- `SemVer::parse`, `Version::parse`, and `Mess::parse` have been made `pub` so
that these parsers can be integrated into other general `nom` parsers.
## 2.0.2 (2021-01-23)
#### Changed
- Updated to `itertools-0.10`.
## 2.0.1 (2020-11-19)
#### Changed
- Updated to `nom-6.0`.
- Utilize new type linking in docstrings, thanks to the latest stable Rust.
## 2.0.0 (2020-10-21)
#### Changed
- **Breaking:** `Mess::chunk` renamed to `Mess::chunks` to match `Version`.
- **Breaking:** `Mess` now stores smarter `Vec<MChunk>` instead of `String`s.
- `SemVer::to_version` is no longer a lossy conversion, due to the new field in `Version` (see below).
- Most `Display` instances are more efficient.
#### Added
- **Breaking:** The `meta: Option<Chunks>` field for `Version`.
- The `MChunk` type which allows `Mess` to do smarter comparisons.
#### Fixed
- A number of comparison edge cases.
## 1.0.1 (2020-06-15)
#### Changed
- Performance and readability improvements.
## 1.0.0 (2020-06-03)
This is the initial release of the library.
#### Added
- All types, parsers, and tests.
|