You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I put it after version numbers and version requirements as it builds on
those two topics.
Unsure whether this fully resolves the concern from rust-lang#15587 of users
coming from other ecosystems that have been burned by library lockfiles
affecting them to know that they won't be subject to that.
Cargo gives the highest priority to versions contained in the [`Cargo.lock` file], when used.
210
+
This is intended to balance reproducible builds with adjusting to changes in the manifest.
211
+
212
+
For example, if you had a package in the resolve graph with:
213
+
```toml
214
+
[dependencies]
215
+
bitflags = "*"
216
+
```
217
+
If at the time your `Cargo.lock` file is generated, the greatest version of
218
+
`bitflags` is `1.2.1`, then the package will use `1.2.1` and recorded in the `Cargo.lock` file.
219
+
220
+
By the time Cargo next runs, `bitflags``1.3.5` is out.
221
+
When resolving dependencies,
222
+
`1.2.1` will still be used because it is present in your `Cargo.lock` file.
223
+
224
+
The package is then edited to:
225
+
```toml
226
+
[dependencies]
227
+
bitflags = "1.3.0"
228
+
```
229
+
`bitflags``1.2.1` does not match this version requirement and so that entry in your `Cargo.lock` file is ignored and version `1.3.5` will now be used and recorded in your `Cargo.lock` file.
230
+
207
231
### Rust version
208
232
209
233
To support developing software with a minimum supported [Rust version],
0 commit comments