- The description file may now be written in reStructuredText, Markdown or
plain text. The file extension should indicate which of these formats it is
.txt). Previously, only reStructuredText was officially supported.
- Multiple links (e.g. documentation, bug tracker) can now be specified in a
new [tool.flit.metadata.urls] section of
- Dependencies are now correctly installed to the target Python when you use
- Dependencies are only installed to the Python where Flit is running if it fails to get the docstring and version number without them.
- The commands deprecated in 0.13—
flit register—have been removed.
Although version 1.0 sounds like a milestone, there’s nothing that makes this release especially significant. It doesn’t represent a step change in stability or completeness. Flit has been gradually maturing for some time, and I chose this point to end the series of 0.x version numbers.
- Better validation of several metadata fields (
home-page), and of the version number.
FLIT_ALLOW_INVALIDenvironment variable to ignore validation failures in case they go wrong.
- The list of valid classifiers is now fetched from Warehouse (https://pypi.org), rather than the older https://pypi.python.org site.
flit sdistsubcommands: use flit build.
flit register: you can no longer register a package separately from uploading it.
- Fix building and installing packages with a
-in the distribution name.
- Fix numbering in README.
New tool to convert
python3 -m flit.tomlify
Use the PAX tar format for sdists, as specified by PEP 517.
- Restore dependency on
- Add some missing options to documentation of
- Rearrange environment variables in the docs.
- Switch the config to
pyproject.tomlby default instead of
flit.ini, and implement the PEP 517 API.
- A new option
--pth-fileallows for development installation on Windows (where
--symlinkusually won’t work).
- Normalise file permissions in the zip file, making builds more reproducible across different systems.
- Sdists (.tar.gz packages) can now also be reproducibly built by setting
- For most modules, Flit can now extract the version number and docstring without importing it. It will still fall back to importing where getting these from the AST fails.
flit buildwill build the wheel from the sdist, helping to ensure that files aren’t left out of the sdist.
- All list fields in the INI file now ignore blank lines (
- Fix the path separator in the
RECORDfile of a wheel built on Windows.
- Some minor fixes to building reproducible wheels.
- If building a wheel fails, the temporary file created will be cleaned up.
- Various improvements to docs and README.
- Explicitly open various files as UTF-8, rather than relying on locale encoding.
- Link to docs from README.
- Better test coverage, and a few minor fixes for problems revealed by tests.
- Fixed a bug causing failed uploads when the password is entered in the terminal.
- A couple of behaviour changes when uploading to warehouse.
- Fixed a bug when you use flit to build an sdist from a subdirectory inside a VCS checkout. The VCS is now correctly detected.
- Fix the rst checker for newer versions of docutils, by upgrading the bundled copy of readme_renderer.
- Flit can now build sdists (tarballs) and upload them to PyPI, if your code is
in a git or mercurial repository. There are new commands:
flit buildbuilds both a wheel and an sdist.
flit publishbuilds and uploads a wheel and an sdist.
- Smarter ways of getting the information needed for upload:
- If you have the keyring package
installed, flit can use it to store your password, rather than keeping it
in plain text in
~/.pypircdoes not already exist, and you are prompted for your username, flit will write it into that file.
- You can provide the information as environment variables:
FLIT_INDEX_URL. Use this to upload packages from a CI service, for instance.
- If you have the keyring package installed, flit can use it to store your password, rather than keeping it in plain text in
- Include ‘LICENSE’ or ‘COPYING’ files in wheels.
- Fix for
flit install --symlinkinside a virtualenv.
- Downstream packagers can use the
FLIT_NO_NETWORKenvironment variable to stop flit downloading data from the network.
flit installfromnow take an optional
--pythonargument, with the path to the Python executable you want to install it for. Using this, you can install modules to Python 2.
- Installing a module normally (without
--symlink) builds a wheel and uses pip to install it, which should work better in some corner cases.
- A new
flit installfromsubcommand to install a project from a source archive, such as from Github.
- Reproducible builds - you can produce byte-for-byte identical wheels.
- A warning for non-canonical version numbers according to PEP 440.
- Fix for installing projects on Windows.
- Better error message when module docstring is only whitespace.
- A new
dev-requiresfield in the config file for development requirements, used when doing
- Added a
flit installto control which dependencies are installed.
- Flit can now be invoked with
python -m flit.
flit installnow ensures requirements specified in
flit.iniare installed, using pip.
- If you specify a description file, flit now warns you if it’s not valid reStructuredText (since invalid reStructuredText is treated as plain text on PyPI).
- Improved the error message for mis-spelled keys in
- A new
flit initcommand to quickly define the essential basic metadata for a package.
- Support for Specifying entry points.
- A new
flit registercommand to register a package without uploading it, for when you want to claim a name before you’re ready to release.
- Added a
--repositoryoption for specifying an alternative PyPI instance.
- Added a
--debugflag to show debug-level log messages.
- Better error messages when the module docstring or
- Users can now specify
dist-namein the config file if they need to use different names on PyPI and for imports.
- Classifiers are now checked against a locally cached list of valid classifiers.
- Packages can be locally installed into environments for development.
- Local installation now creates a PEP 376
.dist-infofolder instead of