diff --git a/README.md b/README.md
new file mode 100644
index 000000000..7648fa239
--- /dev/null
+++ b/README.md
@@ -0,0 +1,68 @@
+[![image](https://img.shields.io/github/v/release/numerique-gouv/django-dsfr.svg)](https://github.com/numerique-gouv/django-dsfr/releases/)
+
+[![image](https://badge.fury.io/py/django-dsfr.svg)](https://pypi.org/project/django-dsfr/)
+
+[![image](https://github.com/numerique-gouv/django-dsfr/actions/workflows/ci-3-8.yml/badge.svg)](https://github.com/numerique-gouv/django-dsfr/actions/workflows/ci-3-8.yml)
+
+[![image](https://github.com/numerique-gouv/django-dsfr/actions/workflows/ci-3-10.yml/badge.svg)](https://github.com/numerique-gouv/django-dsfr/actions/workflows/ci-3-10.yml)
+
+[![image](https://github.com/numerique-gouv/django-dsfr/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/numerique-gouv/django-dsfr/actions/workflows/codeql-analysis.yml)
+
+[![Security Status](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
+
+# Django-DSFR
+
+Django-DSFR is a Django app to integrate the [French government Design System ("Système de design de l’État français")](https://www.systeme-de-design.gouv.fr/).
+
+## Documentation
+
+See the [documentation (in French)](https://numerique-gouv.github.io/django-dsfr/) for details.
+
+Django-DSFR implements the [version 1.12.1 of the DSFR](https://www.systeme-de-design.gouv.fr/a-propos/versions/version-courante)
+(see also the [Github releases page](https://github.com/GouvernementFR/dsfr/releases/))
+
+## Requirements
+
+Tested with Python 3.8 to 3.12 and Django 3.2 to 5.0. Per [vermin](https://github.com/netromdk/vermin), it should work with Python >= 3.6, and it should work with old versions of Django too.
+
+Note: Only supported versions of Django and Python are supported by this project. You can check the supported versions and their end of life on the following pages:
+
+- [Python](https://devguide.python.org/versions/)
+- [Django](https://www.djangoproject.com/download/#supported-versions)
+
+⚠️ Warning: Support for Django < 4.0 and Python < 3.10 will be removed at the end of 2024.
+
+## Quick start
+
+See the [INSTALL.md](INSTALL.md) file.
+
+## History
+
+This app was originally created as a part of [Open
+Collectivités](https://github.com/entrepreneur-interet-general/opencollectivites)
+in 2020, and then maintained as part of
+[Aides-territoires](https://github.com/MTES-MCT/aides-territoires) in
+2022-2023.
+
+It is now maintained as part of
+[\@numerique-gouv](https://github.com/numerique-gouv) alongside the
+Wagtail-based [Sites
+faciles](https://github.com/numerique-gouv/sites-faciles).
+
+## Licence et droit d’utilisation
+
+Le contenu de ce projet est placé sous licence MIT, à l’exception de la
+fonte Marianne. Voir [la licence du
+DSFR](https://github.com/GouvernementFR/dsfr/blob/main/doc/legal/cgu.md).
+
+### ⚠️ Utilisation du DSFR interdite en dehors des sites Internet de l’État
+
+> Il est formellement interdit à tout autre acteur d’utiliser le Système de Design de l’État (les administrations territoriales ou tout autre acteur privé) pour des sites web ou des applications. Le Système de Design de l’État représente l’identité numérique de l’État. En cas d’usage à des fins trompeuses ou frauduleuses, l’État se réserve le droit d’entreprendre les actions nécessaires pour y mettre un terme.
+>
+> Voir les [conditions générales d’utilisation](https://github.com/GouvernementFR/dsfr/blob/main/doc/legal/cgu.md).
+
+### ⚠️ Prohibited Use Outside Government Websites
+
+> This Design System is only meant to be used by official French public
+> services\' websites and apps. Its main purpose is to make it easy to
+> identify governmental websites for citizens. See terms.
diff --git a/README.rst b/README.rst
deleted file mode 100644
index ce251c777..000000000
--- a/README.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-.. image:: https://img.shields.io/github/v/release/numerique-gouv/django-dsfr.svg
- :target: https://github.com/numerique-gouv/django-dsfr/releases/
-.. image:: https://badge.fury.io/py/django-dsfr.svg
- :target: https://pypi.org/project/django-dsfr/
-
-.. image:: https://github.com/numerique-gouv/django-dsfr/actions/workflows/ci-3-8.yml/badge.svg
- :target: https://github.com/numerique-gouv/django-dsfr/actions/workflows/ci-3-8.yml
-.. image:: https://github.com/numerique-gouv/django-dsfr/actions/workflows/ci-3-10.yml/badge.svg
- :target: https://github.com/numerique-gouv/django-dsfr/actions/workflows/ci-3-10.yml
-
-.. image:: https://github.com/numerique-gouv/django-dsfr/actions/workflows/codeql-analysis.yml/badge.svg
- :target: https://github.com/numerique-gouv/django-dsfr/actions/workflows/codeql-analysis.yml
-.. image:: https://img.shields.io/badge/security-bandit-yellow.svg
- :target: https://github.com/PyCQA/bandit
- :alt: Security Status
-
-===========
-Django-DSFR
-===========
-
-Django-DSFR is a Django app to integrate the `French government Design System ("Système de design de l’État français") `_.
-
-Documentation
--------------
-
-See the `documentation (in French) `_ for details.
-
-Django-DSFR implements the `version 1.12.1 of the DSFR `_ (see also the `Github releases page `_)
-
-Requirements
-------------
-Tested with Python 3.8 to 3.12 and Django 3.2 to 5.0. Per `vermin `_, it should work with Python >= 3.6, and it should work with old versions of Django too.
-
-Note: Only supported versions of Django and Python are supported by this project. You can check the supported versions and their end of life on the following pages:
-
-- `Python `_
-- `Django `_
-
-Warning: Support for Django < 4.0 and Python < 3.10 will be removed at the end of 2024.
-
-Quick start
------------
-
-See the `INSTALL.md `_ file.
-
-History
--------
-This app was originally created as a part of `Open Collectivités `_ in 2020, and then maintained as part of `Aides-territoires `_ in 2022-2023.
-
-It is now maintained as part of `@numerique-gouv `_ alongside the Wagtail-based `Sites faciles `_.
-
-
-Licence et droit d’utilisation
--------
-
-Le contenu de ce projet est placé sous licence MIT, à l’exception de la fonte Marianne. Voir `la licence du DSFR `_.
-
-⚠️ Utilisation du DSFR interdite en dehors des sites Internet de l’État
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- Il est formellement interdit à tout autre acteur d’utiliser le Système de Design de l’État (les administrations territoriales ou tout autre acteur privé) pour des sites web ou des applications. Le Système de Design de l’État représente l’identité numérique de l’État. En cas d’usage à des fins trompeuses ou frauduleuses, l'État se réserve le droit d’entreprendre les actions nécessaires pour y mettre un terme.
-
- Voir les `conditions générales d'utilisation `_.
-
-⚠️ Prohibited Use Outside Government Websites
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- This Design System is only meant to be used by official French public services' websites and apps. Its main purpose is to make it easy to identify governmental websites for citizens. See terms.
diff --git a/poetry.lock b/poetry.lock
index 77e72997a..913a2c7a1 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1232,13 +1232,13 @@ files = [
[[package]]
name = "pkginfo"
-version = "1.11.2"
+version = "1.10.0"
description = "Query metadata from sdists / bdists / installed packages."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.6"
files = [
- {file = "pkginfo-1.11.2-py3-none-any.whl", hash = "sha256:9ec518eefccd159de7ed45386a6bb4c6ca5fa2cb3bd9b71154fae44f6f1b36a3"},
- {file = "pkginfo-1.11.2.tar.gz", hash = "sha256:c6bc916b8298d159e31f2c216e35ee5b86da7da18874f879798d0a1983537c86"},
+ {file = "pkginfo-1.10.0-py3-none-any.whl", hash = "sha256:889a6da2ed7ffc58ab5b900d888ddce90bce912f2d2de1dc1c26f4cb9fe65097"},
+ {file = "pkginfo-1.10.0.tar.gz", hash = "sha256:5df73835398d10db79f8eecd5cd86b1f6d29317589ea70796994d49399af6297"},
]
[package.extras]
@@ -1743,19 +1743,19 @@ telegram = ["requests"]
[[package]]
name = "twine"
-version = "4.0.2"
+version = "5.1.1"
description = "Collection of utilities for publishing packages on PyPI"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
files = [
- {file = "twine-4.0.2-py3-none-any.whl", hash = "sha256:929bc3c280033347a00f847236564d1c52a3e61b1ac2516c97c48f3ceab756d8"},
- {file = "twine-4.0.2.tar.gz", hash = "sha256:9e102ef5fdd5a20661eb88fad46338806c3bd32cf1db729603fe3697b1bc83c8"},
+ {file = "twine-5.1.1-py3-none-any.whl", hash = "sha256:215dbe7b4b94c2c50a7315c0275d2258399280fbb7d04182c7e55e24b5f93997"},
+ {file = "twine-5.1.1.tar.gz", hash = "sha256:9aa0825139c02b3434d913545c7b847a21c835e11597f5255842d457da2322db"},
]
[package.dependencies]
importlib-metadata = ">=3.6"
keyring = ">=15.1"
-pkginfo = ">=1.8.1"
+pkginfo = ">=1.8.1,<1.11"
readme-renderer = ">=35.0"
requests = ">=2.20"
requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0"
@@ -1844,4 +1844,4 @@ type = ["pytest-mypy"]
[metadata]
lock-version = "2.0"
python-versions = "^3.8"
-content-hash = "1f0b85963edc3c62ecc883b5cfc132fb5c2ef87b4253d42d00241bbba5402858"
+content-hash = "8af12af7fe8791c83ee4d1df93a2d0511e6b35aa966978e41ca8b63ac4d49e67"
diff --git a/pyproject.toml b/pyproject.toml
index 642ae514c..0de0373db 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -3,7 +3,7 @@ authors = ["Sylvain Boissel "]
description = "Integrate the French government Design System into a Django app"
license = "MIT"
name = "django-dsfr"
-version = "1.4.0"
+version = "1.4.1"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
@@ -29,14 +29,14 @@ classifiers = [
documentation = "https://numerique-gouv.github.io/django-dsfr"
homepage = "https://github.com/numerique-gouv/django-dsfr"
keywords = ["django"]
-readme = "README.rst"
+readme = "README.md"
repository = "https://github.com/numerique-gouv/django-dsfr"
packages = [
{include = "dsfr"},
]
-include = ["LICENSE", "README.rst", "dsfr/static/dsfr/dist/*/*.*"]
+include = ["LICENSE", "README.md", "dsfr/static/dsfr/dist/*/*.*"]
[tool.poetry.dependencies]
Django = ">3.2.5"
@@ -50,7 +50,6 @@ coverage = "^5.5"
django-distill = "^2.9.0"
docutils = "^0.17.1"
pytest = "^7.2.0"
-twine = "^4.0.1"
djlint = "^1.12.0"
black = ">=22.6,<25.0"
django-csp = "^3.7"
@@ -63,6 +62,7 @@ pygments = "^2.16.1"
beautifulsoup4 = "^4.12.2"
lxml = "^5.1.0"
setuptools = "^70.0.0"
+twine = "^5.1.1"
[build-system]
build-backend = "poetry.core.masonry.api"