diff --git a/images/xkcd_standards.png b/images/xkcd_standards.png
new file mode 100644
index 0000000000000000000000000000000000000000..e04c4b681a0e90e471eaf353794970193c38a979
Binary files /dev/null and b/images/xkcd_standards.png differ
diff --git a/versionner-un-code-python.qmd b/versionner-un-code-python.qmd
index b6f78a13932e4a444e773bec781ba5de74ca3961..7042a2467cd67dac3439ab0026fdf44fbf84b4b8 100644
--- a/versionner-un-code-python.qmd
+++ b/versionner-un-code-python.qmd
@@ -539,32 +539,80 @@ La section `[project.urls]` liste les liens à afficher pour le projet et les
 diffèrent selon les documentations, ce qui est troublant :
 
 - URL du dépôt du code : `Repository` ^[[Declaring project metadata](https://packaging.python.org/en/latest/specifications/declaring-project-metadata/#declaring-project-metadata)] ou `Source` ^[[Flit : The pyproject.toml config file](https://flit.pypa.io/en/latest/pyproject_toml.html#urls-table)] ?
+On trouve aussi `URL`, `GitHub`, `GitLab`, ...
 
+L'article [PyPI Project URLs Cheatsheet](https://daniel.feldroy.com/posts/2023-08-pypi-project-urls-cheatsheet)
+évoque des étiquettes trouvées via l'analyse du [code](https://github.com/pypi/warehouse/blob/70eac9796fa1eae24741525688a112586eab9010/warehouse/templates/packaging/detail.html#L20-L62) 
+de [PyPI](https://pypi.org/).
+
+Pourtant le projet [YAPF](https://pypi.org/project/yapf/0.40.2/#description) a
+bien des étiquettes `Docs` et `Issues` mais PyPI n'affiche pas de lien vers les
+URL. Problème de simple quote ^[[TOML String type](https://toml.io/en/v1.0.0#string)] ?
+`Changelog` est pourtant affiché
+
+::: {.notes}
 L'auteur de [PyPI Project URLs Cheatsheet](https://daniel.feldroy.com/posts/2023-08-pypi-project-urls-cheatsheet)
 a obtenu les étiquettes suivantes à partir du [code](https://github.com/pypi/warehouse/blob/70eac9796fa1eae24741525688a112586eab9010/warehouse/templates/packaging/detail.html#L20-L62)
 de [PyPI](https://pypi.org/)
 
-:::: {.columns}
-
-::: {.column width="50%"}
 - `homepage`
 - `repository`
 - `changelog`
 - `docs`, `documentation`
-:::
-
-::: {.column width="50%"}
 - `bugs`, `issues`, `tracker`
 - `dowload`
 - `sponsor`, `funding`, `donate`
 - `mastodon`, `twitter`, `slack`, `reddit`, `discord`, `gitter`
 :::
 
-::::
+# PyPI
+
+[PyPI](https://pypi.org/) est le dépôt officiel pour les packages Python
+
+## Documentation
+
+Voici quelques sources d'information sur [PyPI](https://pypi.org/)
+
+- [documentation utilisateur](https://docs.pypi.org/)
+- [blog](https://blog.pypi.org/)
+- [documentation admin/dev](https://warehouse.pypa.io/)
+- [Python Packaging User Guide](https://packaging.python.org/)
+
+## Authentification
+
+Afin de sécuriser le dépôt face aux packages malveillants,
+[PyPI](https://pypi.org/) a mis en place l'authentification à 2 facteurs (2FA)
+^[[Aide PyPI sur 2FA](https://pypi.org/help/#twofa) : L'authentification à deux
+facteurs rend votre compte plus sécurisé en exigeant deux choses pour pouvoir
+vous connecter : "quelque chose que vous savez" et "quelque chose que vous possédez"]
+et va la rendre obligatoire d'ici fin 2023
+^[[Securing PyPI accounts via Two-Factor Authentication](https://blog.pypi.org/posts/2023-05-25-securing-pypi-with-2fa/)]
+
+> Si vous avez choisi de configurer l'authentification à deux facteurs, vous
+> devrez fournir votre deuxième méthode de vérification d'identité **pendant le
+> processus de connexion**. Cela affecte **uniquement la connexion via un
+> navigateur Web**, et pas (encore) la publication des paquets.<br/>
+> Nous recommandons à tous les personnes utilisant PyPI de **définir au moins
+> deux méthodes d'authentification à deux facteurs** et de **générer des codes de
+> récupération**.
+
+Voir la documentation sur l'utilisation d'un **périphérique de sécurité** ^[[Aide
+utfkey](https://pypi.org/help/#utfkey)] ou d'une **application d'authentification**
+^[[Aide TOTP](https://pypi.org/help/#totp)]
+
+## Test
+
+`PyPI` dispose d'une infrastructure sur laquelle on peut tester l'upload de ses
+packages : [TestPyPI](https://test.pypi.org/]
 
 # Quelques backend pour le build de packages
 
-## Flit 1/2
+![](images/xkcd_standards.png){height="350"}
+
+Les backends se sont multipliés au point qu'il est difficile de savoir lequel
+utiliser.
+
+## Flit 1/3
 
 > [Flit](https://flit.pypa.io/en/latest/) provides a simple way to create and
 > upload pure Python packages and modules to `PyPI`. It focuses on [making the easy things easy](https://flit.pypa.io/en/latest/rationale.html) 
@@ -581,7 +629,7 @@ intégration de JavaScript, ...
 
 `Flit` dépendrait d'un seul développeur ?
 
-## Flit 2/2
+## Flit 2/3
 
 Exemple de fichier `pyproject.toml` généré par `Flit` :
 
@@ -606,6 +654,18 @@ Les métadonnées `version` et `description` sont récupérées dynamiquement :
 [Flit : The pyproject.toml config file](https://flit.pypa.io/en/latest/pyproject_toml.html?highlight=dynamic#new-style-metadata)
 :::
 
+## Flit publish 3/3
+
+Il est intéressant de tester l'upload de son package sur le serveur de test
+[test.pypi.org](https://test.pypi.org/)
+
+Flit requiert alors de configurer l'accès à ce serveur dans le fichier
+`.pypirc` ^[[Flit issue 122](https://github.com/pypa/flit/issues/122)] ce qu'il
+ne fait pas automatiquement contrairement aux upload vers [pypi.org](https://pypi.org/)
+
+- [PyPA : Using TestPyPI](https://packaging.python.org/en/latest/guides/using-testpypi/)
+- [Flit : Controlling package uploads](https://flit.pypa.io/en/latest/upload.html)
+
 ## Hatch 1/2
 
 > [Hatch](https://hatch.pypa.io/latest/) is a unified command-line tool meant