Skip to content

Commit 06a99aa

Browse files
author
hg-anssi
committed
dependencies updates
1 parent 6881847 commit 06a99aa

File tree

2 files changed

+38
-24
lines changed

2 files changed

+38
-24
lines changed

src/en/libraries.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,30 @@ this repository should be justified, and developers should validate the
1212
correct application of rules from the current guide in their 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 the latest compatible version and also the latest general
21-
version.
19+
The dependency resolution mechanism relies on the `Cargo.toml` and `Cargo.lock` files.
2220

23-
<div class="reco" id="LIBS-OUTDATED" type="Rule" title="Check for outdated dependencies versions (cargo-outdated)">
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*.
2423

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.
24+
Therefore, updating dependencies occurs at several levels.
2825

29-
</div>
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+
```
3038

31-
[cargo-outdated]: https://github.com/kbknapp/cargo-outdated
3239

3340
## Cargo-audit
3441

src/fr/libraries.md

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +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-
<div class="reco" id="LIBS-OUTDATED" type="Règle" title="Vérification des dépendances obsolètes (cargo-outdated)">
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*.
2525

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é.
26+
Aussi, la mise à jour des dépendances intervient à plusieurs niveau.
3027

31-
</div>
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
3237

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

3542
## Cargo-audit
3643

0 commit comments

Comments
 (0)