1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
.. _build-semver:
Building semver
===============
.. _PEP 517: https://www.python.org/dev/peps/pep-0517/
.. _PEP 621: https://www.python.org/dev/peps/pep-0621/
.. _A Practical Guide to Setuptools and Pyproject.toml: https://godatadriven.com/blog/a-practical-guide-to-setuptools-and-pyproject-toml/
.. _Declarative config: https://setuptools.rtfd.io/en/latest/userguide/declarative_config.html
This project changed slightly its way how it is built. The reason for this
was to still support the "traditional" way with :command:`setup.py`,
but at the same time try out the newer way with :file:`pyproject.toml`.
As Python 3.6 got deprecated, this project does support from now on only
:file:`pyproject.toml`.
Background information
----------------------
Skip this section and head over to :ref:`build-pyproject-build` if you just
want to know how to build semver.
This section gives some background information how this project is set up.
The traditional way with :command:`setup.py` in this project uses a
`Declarative config`_. With this approach, the :command:`setup.py` is
stripped down to its bare minimum and all the metadata is stored in
:file:`setup.cfg`.
The new :file:`pyproject.toml` contains only information about the build backend, currently setuptools.build_meta. The idea is taken from
`A Practical Guide to Setuptools and Pyproject.toml`_.
Setuptools-specific configuration keys as defined in `PEP 621`_ are currently
not used.
.. _build-pyproject-build:
Building with pyproject-build
-----------------------------
To build semver you need:
* The :mod:`build` module which implements the `PEP 517`_ build
frontend.
Install it with::
pip install build
Some Linux distributions has already packaged it. If you prefer
to use the module with your package manager, search for
:file:`python-build` or :file:`python3-build` and install it.
* The command :command:`pyproject-build` from the :mod:`build` module.
To build semver, run::
pyproject-build
After the command is finished, you can find two files in the :file:`dist` folder: a ``.tar.gz`` and a ``.whl`` file.
|