|
2 | 2 |
|
3 | 3 | All notable changes to this project will be documented in this file.
|
4 | 4 |
|
5 |
| -## [0.3.0] UNRELEASED [(diff with 0.2.1)][unreleased-diff] |
| 5 | +## [0.3.0] - 2025-02-12 - [(diff with 0.2.1)][0.2.1-diff] |
6 | 6 |
|
7 |
| -PubGrub 0.3 improves the interfaces and speeds resolution significantly. |
| 7 | +PubGrub 0.3 has a more flexible interface and speeds resolution significantly. The public API is very different now, we |
| 8 | +recommend starting the migration by implementing the new `DependencyProvider` interface following the |
| 9 | +[Guide](https://pubgrub-rs.github.io/pubgrub/pubgrub/). |
8 | 10 |
|
9 |
| -All public interfaces are now in the root of the crate. |
| 11 | +All public interfaces are now in the root of the crate. |
10 | 12 |
|
11 |
| -In the main interface, [`DependencyProvider`](TODO), `choose_package_version` was split into two methods: `prioritize` |
| 13 | +In the main interface, `DependencyProvider`, `choose_package_version` was split into two methods: `prioritize` |
12 | 14 | for choosing which package to decide next by assigning a priority to each package, and `choose_version`. The generic
|
13 | 15 | parameters became associated types. The version set is configurable by an associated type.
|
14 | 16 |
|
15 |
| -[`Dependencies`](TODO) gained a generic parameter for custom incompatibility type outside version conflicts, such as |
16 |
| -packages not available for the current platform or permission errors. This type is on `DependencyProvider` as |
| 17 | +`Dependencies` gained a generic parameter for custom incompatibility type outside version conflicts, such as packages |
| 18 | +not available for the current platform or permission errors. This type is on `DependencyProvider` as |
17 | 19 | `DependencyProvider::M`.
|
18 | 20 |
|
19 |
| -`pubgrub::range::Range` now lives in its own crate as [`version_ranges::Ranges`](https://docs.rs/version-ranges/0.1/version_ranges/struct.Ranges.html). |
| 21 | +`pubgrub::range::Range` now lives in its own crate as [`version_ranges::Ranges`](https://docs.rs/version-ranges/0.1/version_ranges/struct.Ranges.html). A `Version` can be almost any |
| 22 | +ordered type now, it only needs to support set operations through `VersionSet`. |
20 | 23 |
|
21 | 24 | At a glance, this is the new `DependencyProvider` interface:
|
22 | 25 |
|
@@ -208,10 +211,12 @@ The gist of it is:
|
208 | 211 | - `.gitignore` configured for a Rust project.
|
209 | 212 | - `.github/workflows/` CI to automatically build, test and document on push and pull requests.
|
210 | 213 |
|
| 214 | +[0.3.0]: https://github.com/pubgrub-rs/pubgrub/releases/tag/v0.3.0 |
211 | 215 | [0.2.1]: https://github.com/pubgrub-rs/pubgrub/releases/tag/v0.2.1
|
212 | 216 | [0.2.0]: https://github.com/pubgrub-rs/pubgrub/releases/tag/v0.2.0
|
213 | 217 | [0.1.0]: https://github.com/pubgrub-rs/pubgrub/releases/tag/v0.1.0
|
214 | 218 |
|
215 | 219 | [unreleased-diff]: https://github.com/pubgrub-rs/pubgrub/compare/release...dev
|
| 220 | +[0.2.1-diff]: https://github.com/pubgrub-rs/pubgrub/compare/v0.2.1...v0.3.0 |
216 | 221 | [0.2.0-diff]: https://github.com/pubgrub-rs/pubgrub/compare/v0.2.0...v0.2.1
|
217 | 222 | [0.1.0-diff]: https://github.com/pubgrub-rs/pubgrub/compare/v0.1.0...v0.2.0
|
0 commit comments