|PyPI Version| |Python Versions| |License|

setuptools-twine
================

This package adds ``twine_check`` and ``twine_upload`` commands to ``setuptools``. These commands are equivalent to running |twine_check|_ or |twine_upload|_, but always operate on the latest source distribution and wheel generated by ``setup.py sdist`` and ``setup.py bdist_wheel``.

Basic Usage
-----------

Install with pip::

  pip install setuptools-twine

If you only want to simply your workflow that currently uses |twine_check|_ or |twine_upload|_, you can invoke the ``setup.py`` commands manually::

  python setup.py twine_check
  python setup.py twine_upload

Note that you no longer need to specify the ``dist/*`` files as with |twine_check|_ or |twine_upload|_; they are determined automatically from the results of the ``sdist`` and ``bdist_wheel`` commands.

Advanced Usage
--------------

If you're a package author or maintainer looking to automate even more, you can add ``setuptools-twine`` as a |setup_requires|_ dependency in your project's ``setup.cfg``::

  [options]
  setup_requires =
      setuptools-twine

Then, create an |alias|_ command to encapsulate multiple ``setup.py`` commands in one::

  [aliases]
  pypi_upload = clean sdist bdist_wheel twine_check twine_upload

Now, you can build, check, and upload with a single command::

  python setup.py pypi_upload

Roadmap
-------

* Allow passing additional options to ``twine_check`` and ``twine_upload`` commands.
* Allow using only source distributions or wheels, instead of both.
* Allow uploading other output formats in addition to source distributions and wheels.


.. |PyPI Version| image:: https://img.shields.io/pypi/v/setuptools-twine.svg
   :target: https://pypi.python.org/pypi/setuptools-twine
.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/setuptools-twine.svg
   :target: https://pypi.python.org/pypi/setuptools-twine
.. |License| image:: https://img.shields.io/pypi/l/setuptools-twine.svg
   :target: https://pypi.python.org/pypi/setuptools-twine
.. |twine_check| replace:: ``twine check``
.. _twine_check: https://twine.readthedocs.io/en/latest/#twine-check
.. |twine_upload| replace:: ``twine upload``
.. _twine_upload: https://twine.readthedocs.io/en/latest/#twine-upload
.. |setup_requires| replace:: ``setup_requires``
.. _setup_requires: https://setuptools.readthedocs.io/en/latest/userguide/quickstart.html#dependency-management
.. |alias| replace:: ``alias``
.. _alias: https://setuptools.readthedocs.io/en/latest/userguide/commands.html#alias-define-shortcuts-for-commonly-used-commands
