NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1921 most downloaded on PyPI
Fancy PyPI READMEs with Hatch
Last release 1 years ago
01 May 2025
Release timing varies
gaps range from 3 weeks to 1.3 years
Nearly every release is documented
notes for 12 of 12 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
12 releases · first in 2022
One column per quarter.
$HFPR_PACKAGE_NAME is now replaced by the package name (analogously to $HFPR_VERSION )!
$HFPR_PACKAGE_NAME is now replaced by the package name (analogously to $HFPR_VERSION)!
Full changelog below!
This release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If you would like to join them, go to https://github.com/sponsors/hynek and check out the sweet perks!
Variomedia AG (@variomedia), Tidelift (@tidelift), Klaviyo (@klaviyo), Privacy Solutions GmbH (@privacy-solutions), Andreas Jung (@zopyx), FilePreviews (@filepreviews), Daniel Fortunov (@asqui), and Kevin P. Fleming (@kpfleming).
Buttondown (@buttondown), Christopher Dignam (@chdsbd), Magnus Watn (@magnuswatn), David Cramer (@dcramer), Jesse Snyder (@jessesnyder), Rivo Laks (@rivol), Polar (@polarsource), Mike Fiedler (@miketheman), Duncan Hill (@cricalix), Colin Marquardt (@cmarqu), Pieter Swinkels (@swinkels), Nick Libertini (@libertininick), Brian M. Dennis (@crossjam), Moving Content AG (@moving-content), ProteinQure (@ProteinQure), The Westervelt Company (@westerveltco), Sławomir Ehlert (@slafs), Mostafa Khalil (@khadrawy), Filip Mularczyk (@mukiblejlok), Thomas Klinger (@thmsklngr), Andreas Poehlmann (@ap--), August Trapper Bigelow (@atbigelow), Carlton Gibson (@carltongibson), and Roboflow (@roboflow).
Not to forget 15 more amazing humans who chose to be generous but anonymous!
$HFPR_PACKAGE_NAME is now replaced by the package name in the PyPI readme. The version is not available in CLI mode, therefore it's replaced by the dummy value of your-package. #64This release contains contributions from @hynek, and @robbieaverill.
You can verify this release's artifact attestions using GitHub's CLI tool by downloading the sdist and wheel from PyPI and running:
$ gh attestation verify --owner hynek hatch-fancy-pypi-readme-25.1.0.tar.gzand
$ gh attestation verify --owner hynek hatch-fancy-pypi-readme-25.1.0-py3-none-any.whlThe last release broke scikit-build-core so this one adds a default argument value. No user-visible changes.
The last release broke scikit-build-core so this one adds a default argument value. No user-visible changes.
This release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If you would like to join them, go to https://github.com/sponsors/hynek and check out the sweet perks!
Variomedia AG (@variomedia), Tidelift (@tidelift), FilePreviews (@filepreviews), Daniel Fortunov (@asqui), and Kevin P. Fleming (@kpfleming).
Adam Hill (@adamghill), Dan Groshev (@si14), Magnus Watn (@magnuswatn), David Cramer (@dcramer), Moving Content AG (@moving-content), ProteinQure (@ProteinQure), Jesse Snyder (@jessesnyder), Rivo Laks (@rivol), Ionel Cristian Mărieș (@ionelmc), The Westervelt Company (@westerveltco), Philippe Galvan (@PhilippeGalvan), Birk Jernström (@birkjernstrom), Tim Schilling (@tim-schilling), Chris Withers (@cjw296), Christopher Dignam (@chdsbd), Stefan Hagen (@sthagen), Sławomir Ehlert (@slafs), Mostafa Khalil (@khadrawy), Filip Mularczyk (@mukiblejlok), and Mike Fiedler (@miketheman).
Not to forget 6 more amazing humans who chose to be generous but anonymous!
There's only one change but I think it's really cool: you can now add the package version into your PyPI readme by adding the string $HFPR_VERSION to
There's only one change but I think it's really cool: you can now add the package version into your PyPI readme by adding the string $HFPR_VERSION to it!
This release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If you would like to join them, go to https://github.com/sponsors/hynek and check out the sweet perks!
Variomedia AG (@variomedia), Tidelift (@tidelift), FilePreviews (@filepreviews), Daniel Fortunov (@asqui), and Kevin P. Fleming (@kpfleming).
Adam Hill (@adamghill), Dan Groshev (@si14), Magnus Watn (@magnuswatn), David Cramer (@dcramer), Moving Content AG (@moving-content), ProteinQure (@ProteinQure), Jesse Snyder (@jessesnyder), Rivo Laks (@rivol), Ionel Cristian Mărieș (@ionelmc), The Westervelt Company (@westerveltco), Philippe Galvan (@PhilippeGalvan), Birk Jernström (@birkjernstrom), Tim Schilling (@tim-schilling), Chris Withers (@cjw296), Christopher Dignam (@chdsbd), Stefan Hagen (@sthagen), Sławomir Ehlert (@slafs), Mostafa Khalil (@khadrawy), Filip Mularczyk (@mukiblejlok), and Mike Fiedler (@miketheman).
Not to forget 6 more amazing humans who chose to be generous but anonymous!
$HFPR_VERSION is now replaced by the package version in the PyPI readme. The version is not available in CLI mode, therefore it's replaced by the dummy value of 42.0. #39The only change is that our CLI now also takes the presence of an hatch.toml file into account.
The only change is that our CLI now also takes the presence of an hatch.toml file into account.
The packaging side always supported it.
The only change is a new feature for file fragments: start-at which behaves like start-after , but preserves the string that is searched for.
The only change is a new feature for file fragments: start-at which behaves like start-after, but preserves the string that is searched for.
Here's a real-world example of how it can simplify your configuration.
Full Changelog: 22.7.0...22.8.0
Added start-at in addition to start-after that preserves the string that is looked for. This often removes the need for adding markers because you can define the starting point using a heading that becomes part of the fragment.
For example: start-at = "## License" gives you ## License and everything that follows.
#16
Removed another circular dependency: this time the wonderful jsonschema . The price of building packaging tools is to not use packages.
Removed another circular dependency: this time the wonderful jsonschema. The price of building packaging tools is to not use packages.
No changes in functionality.
There's no changes in this version except that we've returned to a static readme to prevent a circular build dependency and make the life of packagers
There's no changes in this version except that we've returned to a static readme to prevent a circular build dependency and make the life of packagers easier: #13
Many projects use their setup.py to do some searching andreplacing using regular expressions. For example to make GitHub-relative links work on PyPI,
Substitutions!
Many projects use their setup.py to do some searching andreplacing using regular expressions. For example to make GitHub-relative links work on PyPI, or to linkify GitHub user names and issue/pull request numbers.
Now you can do that with hatch-fancy-pypi-readme too!
That change actually landed already in 22.4.0, but I couldn't wait to use it myself – so here we go!
It is now possible to run *regular expression*-based substitutions over the final readme. #9 #11
Support for Python 3.7. While our Python version only applies when building a package, a package is built whenever it is installed. This includes *tox
Support for Python 3.7. While our Python version only applies when building a package, a package is built whenever it is installed. This includes tox environments. hatch-fancy-pypi-readme will always at least support the same Python version as the latest version of Hatchling – Hatch's build backend – does.
To get this version out, we had to stop dog-fooding hatch-fancy-pypi-readme. 😢
We can finally use *hatch-fancy-pypi-readme* for our own ✨fancy✨ PyPI readme!
### Added - Initial release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →