Skip to content
Snippets Groups Projects
Commit 32c4ed21 authored by Françoise Conil's avatar Françoise Conil
Browse files

Ajout d'informations sur PyPI

parent 0d58d381
No related branches found
No related tags found
No related merge requests found
images/xkcd_standards.png

50.6 KiB

...@@ -539,32 +539,80 @@ La section `[project.urls]` liste les liens à afficher pour le projet et les ...@@ -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 : 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)] ? - 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) 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) 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/) de [PyPI](https://pypi.org/)
:::: {.columns}
::: {.column width="50%"}
- `homepage` - `homepage`
- `repository` - `repository`
- `changelog` - `changelog`
- `docs`, `documentation` - `docs`, `documentation`
:::
::: {.column width="50%"}
- `bugs`, `issues`, `tracker` - `bugs`, `issues`, `tracker`
- `dowload` - `dowload`
- `sponsor`, `funding`, `donate` - `sponsor`, `funding`, `donate`
- `mastodon`, `twitter`, `slack`, `reddit`, `discord`, `gitter` - `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 # 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 > [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) > 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, ... ...@@ -581,7 +629,7 @@ intégration de JavaScript, ...
`Flit` dépendrait d'un seul développeur ? `Flit` dépendrait d'un seul développeur ?
## Flit 2/2 ## Flit 2/3
Exemple de fichier `pyproject.toml` généré par `Flit` : 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 : ...@@ -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 : 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 1/2
> [Hatch](https://hatch.pypa.io/latest/) is a unified command-line tool meant > [Hatch](https://hatch.pypa.io/latest/) is a unified command-line tool meant
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment