Changelog
This project follows the semantic versioning and pre-release versioning schemes recommended by the Python Packaging Authority.
Twine 3.5.0 (2021-11-02)
Features
Bugfixes
Twine 3.4.2 (2021-07-20)
Bugfixes
Twine 3.4.1 (2021-03-16)
Bugfixes
Fix a regression that was causing some namespace packages with dots in them fail to upload to PyPI. (#745)
Twine 3.4.0 (2021-03-15)
Features
Twine 3.3.0 (2020-12-23)
Features
Bugfixes
Improved Documentation
Twine 3.2.0 (2020-06-24)
Features
Improve display of HTTP errors during upload (#666)
Print packages and signatures to be uploaded when using
--verbose
option (#652)Use red text when printing errors on the command line (#649)
Require repository URL scheme to be
http
orhttps
(#602)Add type annotations, checked with mypy, with PEP 561 support for users of Twine’s API (#231)
Bugfixes
Twine 3.1.1 (2019-11-27)
Bugfixes
Restore
--non-interactive
as a flag not expecting an argument. (#548)
Twine 3.1.0 (2019-11-23)
Features
Add support for specifying
--non-interactive
as an environment variable. (#547)
Twine 3.0.0 (2019-11-18)
Features
When a client certificate is indicated, all password processing is disabled. (#336)
Add
--non-interactive
flag to abort upload rather than interactively prompt if credentials are missing. (#489)Twine now unconditionally requires the keyring library and no longer supports uninstalling
keyring
as a means to disable that functionality. Instead, usekeyring --disable
keyring functionality if necessary. (#524)Add Python 3.8 to classifiers. (#518)
Bugfixes
More robust handling of server response in
--skip-existing
(#332)
Twine 2.0.0 (2019-09-24)
Features
Twine now requires Python 3.6 or later. Use pip 9 or pin to “twine<2” to install twine on older Python versions. (#437)
Bugfixes
Require requests 2.20 or later to avoid reported security vulnerabilities in earlier releases. (#491)
Twine 1.15.0 (2019-09-17)
Features
Improved output on
check
command: Prints a message when there are no distributions given to check. Improved handling of errors in a distribution’s markup, avoiding messages flowing through to the next distribution’s errors. (#488)
Twine 1.14.0 (2019-09-06)
Features
Bugfixes
Fail more gracefully when encountering bad metadata (#341)
Twine 1.13.0 (2019-02-13)
Features
Bugfixes
Restore prompts while retaining support for suppressing prompts. (#452)
Avoid requests-toolbelt to 0.9.0 to prevent attempting to use openssl when it isn’t available. (#447)
Use io.StringIO instead of StringIO. (#444)
Only install pyblake2 if needed. (#441)
Use modern Python language features. (#436)
Specify python_requires in setup.py (#435)
Use https URLs everywhere. (#432)
Fix –skip-existing for Nexus Repos. (#428)
Remove unnecessary usage of readme_render.markdown. (#421)
Don’t crash if there’s no package description. (#412)
Fix keyring support. (#408)
Misc
Refactor tox env and travis config. (#439)
Twine 1.12.1 (2018-09-24)
Bugfixes
Fix regression with upload exit code (#404)
Twine 1.12.0 (2018-09-24)
Features
Bugfixes
Avoid MD5 when Python is compiled in FIPS mode (#367)
Twine 1.11.0 (2018-03-19)
Features
Bugfixes
Misc
Twine 1.10.0 (2018-03-07)
Features
Bugfixes
Degrade gracefully when keyring is unavailable (#315)
Fix changelog formatting (#299)
Fix syntax highlighting in
README
(#298)Fix Read the Docs, tox, Travis configuration (#297)
Fix Travis CI and test configuration (#286)
Print progress to
stdout
, notstderr
(#268)Fix
--repository[-url]
help text (#265)Remove obsolete registration guidance (#200)
Twine 1.9.1 (2017-05-27)
Bugfixes
Blacklist known bad versions of Requests. (#253)
Twine 1.9.0 (2017-05-22)
Bugfixes
Misc
Twine will now resolve passwords using the keyring if available. Module can be required with the
keyring
extra.Twine will use
hashlib.blake2b
on Python 3.6+ instead of pyblake2
Twine 1.8.1 (2016-08-09)
Misc
Check if a package exists if the URL is one of:
https://pypi.python.org/pypi/
https://upload.pypi.org/
https://upload.pypi.io/
This helps people with
https://upload.pypi.io
still in their.pypirc
file.
Twine 1.8.0 (2016-08-08)
Features
Switch from upload.pypi.io to upload.pypi.org. (#201)
Retrieve configuration from the environment as a default. (#144)
Repository URL will default to
TWINE_REPOSITORY
Username will default to
TWINE_USERNAME
Password will default to
TWINE_PASSWORD
Allow the Repository URL to be provided on the command-line (
--repository-url
) or via an environment variable (TWINE_REPOSITORY_URL
). (#166)Generate Blake2b 256 digests for packages if
pyblake2
is installed. Users can usepython -m pip install twine[with-blake2]
to havepyblake2
installed with Twine. (#171)
Misc
Generate SHA256 digest for all packages by default.
Stop testing on Python 2.6.
Warn users if they receive a 500 error when uploading to
*pypi.python.org
(#199)
Twine 1.7.4 (2016-07-09)
Bugfixes
Correct a packaging error.
Twine 1.7.3 (2016-07-08)
Bugfixes
Fix uploads to instances of pypiserver using
--skip-existing
. We were not properly checking the return status code on the response after attempting an upload. (#195)
Misc
Avoid attempts to upload a package if we can find it on Legacy PyPI.
Twine 1.7.2 (2016-07-05)
Bugfixes
Twine 1.7.1 (2016-07-05)
Bugfixes
Clint was not specified in the wheel metadata as a dependency. (#187)
Twine 1.7.0 (2016-07-04)
Features
Support
--cert
and--client-cert
command-line flags and config file options for feature parity with pip. This allows users to verify connections to servers other than PyPI (e.g., local package repositories) with different certificates. (#142)Add progress bar to uploads. (#152)
Allow
--skip-existing
to work for 409 status codes. (#162)Implement retries when the CDN in front of PyPI gives us a 5xx error. (#167)
Switch Twine to upload to pypi.io instead of pypi.python.org. (#177)
Bugfixes
Allow passwords to have
%
s in them. (#186)
Twine 1.6.5 (2015-12-16)
Bugfixes
Bump requests-toolbelt version to ensure we avoid ConnectionErrors (#155)
Twine 1.6.4 (2015-10-27)
Bugfixes
Twine 1.6.3 (2015-10-05)
Bugfixes
Twine 1.6.2 (2015-09-28)
Bugfixes
Upload signatures with packages appropriately (#132)
As part of the refactor for the 1.6.0 release, we were using the wrong name to find the signature file.
This also uncovered a bug where if you’re using twine in a situation where
*
is not expanded by your shell, we might also miss uploading signatures to PyPI. Both were fixed as part of this.
Twine 1.6.1 (2015-09-18)
Bugfixes
Fix signing support for uploads (#130)
Twine 1.6.0 (2015-09-14)
Features
Allow the user to specify the location of their
.pypirc
(#97)Support registering new packages with
twine register
(#8)Add the
--skip-existing
flag totwine upload
to allow users to skip releases that already exist on PyPI. (#115)Upload wheels first to PyPI (#106)
Large file support via the
requests-toolbelt
(#104)
Bugfixes
Twine 1.5.0 (2015-03-10)
Features
Support commands not named “gpg” for signing (#29)
Bugfixes
Misc
Add lower-limit to requests dependency
Twine 1.4.0 (2014-12-12)
Features
Bugfixes
Expand globs and check for existence of dists to upload (#65)
Fix issue uploading packages with
_
s in the name (#47)List registered commands in help text (#34)
Use
pkg_resources
to load registered commands (#32)Prevent ResourceWarning from being shown (#28)
Add support for uploading Windows installers (#26)
Twine 1.3.0 (2014-03-31)
Features
Additional functionality.
Twine 1.2.2 (2013-10-03)
Features
Basic functionality.