Skip to content

Commit e49a9da

Browse files
author
hg-anssi
committed
dependencies updates
1 parent 62442b0 commit e49a9da

File tree

2 files changed

+42
-24
lines changed

2 files changed

+42
-24
lines changed

src/en/libraries.md

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,30 @@ this repository should be justified, and the developer should validate the
1212
correct application of rules from the current guide in its code. Several tools
1313
can aid in that task.
1414

15-
## Cargo-outdated
15+
## Dependency Updates
1616

17-
[Cargo-outdated] tool allows one to easily manage dependencies versions.
17+
Updating third-party libraries is essential to ensure that any potential vulnerabilities are properly addressed.
1818

19-
For a given crate, it lists current dependencies versions (using its
20-
`Cargo.toml`), and checks latest compatible version and also latest general
21-
version.
19+
The dependency resolution mechanism relies on the `Cargo.toml` and `Cargo.lock` files.
2220

23-
> **Rule {{#check LIBS-OUTDATED | Check for outdated dependencies versions (cargo-outdated)}}**
24-
>
25-
> The `cargo-outdated` tool must be used to check dependencies status. Then,
26-
> each outdated dependency must be updated or the choice of the version must be
27-
> justified.
21+
* The `Cargo.toml` file lists the constraints defined by the developers.
22+
* The `Cargo.lock` file records the resolution of these constraints by Cargo *at a given point in time*.
23+
24+
Therefore, updating dependencies occurs at several levels.
25+
26+
* The `Cargo.toml` file can be updated to use a new version of a dependency.
27+
On the next build, the `Cargo.lock` file will be updated accordingly.
28+
* For a given `Cargo.toml` file, dependency resolution by Cargo can change between two points in time.
29+
Indeed, new versions of dependencies may have been published in the meantime.
30+
Thus, to update dependencies while keeping the constraints from `Cargo.toml`, you can update the `Cargo.lock` file using the `cargo update` command,
31+
which is equivalent to deleting the `Cargo.lock` file and rebuilding it, or applying `cargo generate-lockfile`. <!-- verified by the test, but is this always the case? -->
32+
33+
The `cargo update` command also allows you to update only a subset of dependencies. For example:
34+
35+
```
36+
cargo update serde clap
37+
```
2838

29-
[cargo-outdated]: https://github.com/kbknapp/cargo-outdated
3039

3140
## Cargo-audit
3241

src/fr/libraries.md

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,32 @@ de ce dépôt doit donc être justifié, et le développeur doit également vali
1212
bon respect des règles du présent guide sur le code correspondant. Plusieurs
1313
outils peuvent l'aider dans cette tâche.
1414

15-
## Cargo-outdated
15+
## Mise à jour des dépendances
1616

17-
L'outil [Cargo-outdated] permet de faciliter la gestion des versions des
18-
dépendances.
17+
La mise à jour des bibliothèques tierces est primordiale pour assurer la bonne
18+
correction d'éventuelles vulnérabilités.
1919

20-
Pour une *crate* donnée, l'outil liste les versions utilisées des dépendances
21-
(dépendances listées dans le fichier `Cargo.toml`), et vérifie s'il s'agit de la
22-
dernière version compatible disponible ainsi que la dernière version en général.
20+
Le mécanisme de résolution des dépendances s'appuie sur les fichiers `Cargo.toml` et
21+
`Cargo.lock`.
2322

24-
> **Règle {{#check LIBS-OUTDATED | Vérification des dépendances obsolètes (cargo-outdated)}}**
25-
>
26-
> L'outil `cargo-outdated` doit être utilisé pour vérifier le statut des
27-
> dépendances. Ensuite, chaque dépendance importée en version obsolète doit
28-
> être mise à jour ou bien, le cas échéant, le choix de la version doit être
29-
> justifié.
23+
* Le fichier `Cargo.toml` liste les contraintes imposées par les développeur
24+
* Le fichier `Cargo.lock` trace la résolution de ces contraintes par Cargo *à un moment donnée*.
25+
26+
Aussi, la mise à jour des dépendances intervient à plusieurs niveau.
27+
28+
* Le fichier `Cargo.toml` peut être mis à jour pour utiliser une nouvelle version d'une dépendance.
29+
À la prochaine compilation, le fichier `Cargo.lock` sera mis à jour en conséquence.
30+
* Pour un fichier `Cargo.toml` donné, la résolution des dépendances par cargo peut changer entre deux instants.
31+
En effet, de nouvelles version de dépendances on pu être publiées dans ce lapse de temps.
32+
Aussi, pour mettre à jour les dépendances tout en conservant les contraintes de `Cargo.toml`, on
33+
peut mettre à jour le fichier `Cargo.lock` grâce à la commande `cargo update`,
34+
ce qui revient à supprimer le fichier `Cargo.lock` et le reconstruire ou d'appliquer `cargo generate-lockfile`. <!-- vérifié par le test mais est-ce tout le temps le cas ? -->
35+
36+
La commande `cargo update` permet aussi de ne mettre à jour qu'une partie des dépendances. Par exemple
3037

31-
[cargo-outdated]: https://github.com/kbknapp/cargo-outdated
38+
```
39+
cargo update serde clap
40+
```
3241

3342
## Cargo-audit
3443

0 commit comments

Comments
 (0)