Semantic version
=================

Auto generated by setuptools-scm. File not within the sdist tarball ``.tar.gz``,
but within the wheel ``.whl``

Not tracked by git

When kitting, special attention must be paid to this file!

Be at setuptools-scm mercy (most likely get a development version)

.. code-block:: shell

   python src/drain_swamp/cli_igor.py build --kind="current"

Cease control of the version,

.. code-block:: shell

   python src/drain_swamp/cli_igor.py build --kind="0.0.1"

Giving the opportunity to set: pre, post, release candidate, alpha,
and beta versioning

To validate a version str before attempting to use it

**development version**

.. code-block:: shell

   python -m drain_swamp.cli_igor pretag "0.0.1dev1"

(python equivalent doctest friendly)

.. doctest:: pretag_dev

   >>> from drain_swamp.igor_utils import pretag
   >>> is_success, ver = pretag("0.0.1dev1")
   >>> ver
   '0.0.1.dev1'

**post release development**

.. code-block:: shell

   python src/drain_swamp/cli_igor.py pretag "0.0.1post3dev4"

(python equivalent doctest friendly)

.. doctest:: pretag_postdev

   >>> from drain_swamp.igor_utils import pretag
   >>> is_success, ver = pretag("0.0.1post3dev4")
   >>> ver
   '0.0.1.post3.dev4'

.. code-block:: shell

   python src/drain_swamp/cli_igor.py pretag "0.0.1rc3dev2"

(python equivalent doctest friendly)

.. doctest:: pretag_release_candidate_dev

   >>> from drain_swamp.igor_utils import pretag
   >>> is_success, ver = pretag("0.0.1rc3dev2")
   >>> ver
   '0.0.1rc3.dev2'

**With epoch and local**

Notice single quotes to escape the ``!``

.. code-block:: shell

   python src/drain_swamp/cli_igor.py pretag '1!0.0.1rc3dev2+gasdfgh.d20240501'

(python equivalent doctest friendly)

.. doctest:: pretag_escape_epoch

   >>> from drain_swamp.igor_utils import pretag
   >>> is_success, ver = pretag("1!0.0.1rc3dev2+gasdfgh.d20240501")
   >>> ver
   '0.0.1rc3.dev2'

**alpha development**

.. code-block:: shell

   python src/drain_swamp/cli_igor.py pretag '1!v0.0.1alpha3dev2+gasdfgh.d20240501'

(python equivalent doctest friendly)

.. doctest:: pretag_alpha

   >>> from drain_swamp.igor_utils import pretag
   >>> is_success, ver = pretag("1!v0.0.1alpha3dev2+gasdfgh.d20240501")
   >>> ver
   '0.0.1a3.dev2'

The epoch and local and prepended "v" are stripped. And the remainder is sanitized

.. py:data:: __version__
   :type: str

   The semantic version, e.g. "0.0.1". This is the full semantic string which can
   include development, pre and post releases, and release candidates

.. py:data:: __version_tuple__
   :type: tuple[int | str, ...]

   Full semantic string as a tuple

Aliases --> Unused

.. py:data:: version
   :type: str

   Alias of __version__

.. py:data:: version_tuple
   :type: tuple[int | str, ...]

   Alias of __version_tuple__
