releasecmd
============================================
|PyPI pkg ver| |Supported Python versions| |CI status| |CodeQL|
.. |PyPI pkg ver| image:: https://badge.fury.io/py/releasecmd.svg
:target: https://badge.fury.io/py/releasecmd
:alt: PyPI package version
.. |Supported Python versions| image:: https://img.shields.io/pypi/pyversions/releasecmd.svg
:target: https://pypi.org/project/releasecmd
:alt: Supported Python versions
.. |CI status| image:: https://github.com/thombashi/releasecmd/actions/workflows/ci.yml/badge.svg
:target: https://github.com/thombashi/releasecmd/actions/workflows/ci.yml
:alt: CI status
.. |CodeQL| image:: https://github.com/thombashi/releasecmd/actions/workflows/github-code-scanning/codeql/badge.svg
:target: https://github.com/thombashi/releasecmd/actions/workflows/github-code-scanning/codeql
:alt: CodeQL
Summary
---------
``releasecmd`` is a ``release`` subcommand for ``setup.py`` (``setuptools.setup``).
The subcommand creates a git tag and pushes and uploads packages to ``PyPI``.
The subcommand class (``releasecmd.ReleaseCommand``) is implemented as a subclass of ``setuptools.Command`` class.
The ``release`` subcommand performs the following tasks:
1. Detect the package version
1. If specified with the ``--version`` option, use that version
2. Retrieve the package version from an installed package if the ``--use-installed-version`` option is specified
3. Find a file that defines the package version (``__version__`` variable)
2. Creates a git tag using the package version information
- Optionally signs the git tag with GPG if the ``--sign`` option is specified
3. Pushes the git tag
4. Upload package files to PyPI using ``twine``.
Installation
============================================
::
pip install releasecmd
Usage
============================================
:setup.py:
.. code-block:: python
import setuptools
from releasecmd import ReleaseCommand
setuptools.setup(
...
cmdclass={"release": ReleaseCommand},
)
Example
============================================
.. code-block::
$ python3 setup.py release
running release
[get the version from ./releasecmd/__version__.py]
[pull git tags]
Already up to date.
[check existing git tags]
[create a git tag: v0.0.15]
[push git tags]
[upload the package to PyPI]
...
prerequisite: package binaries must be in the ``dist/`` directory.
Specify version manually
------------------------------------------------------
You can specify a version manually by ``--version`` option:
.. code-block::
$ python3 setup.py release --version 0.1.0
[create a git tag: v0.1.0]
[pull git tags]
Already up to date.
[check existing git tags]
[push git tags]
[upload packages to PyPI]
Create a GPG signed tag and upload packages
------------------------------------------------------
.. code-block::
$ python3 setup.py release --sign
running release
[get the version from ./releasecmd/__version__.py]
[pull git tags]
Already up to date.
[check existing git tags]
[create a git tag with gpg signing: v0.1.0]
[push git tags]
[upload packages to PyPI]
...
Skip create a git tag and upload packages
------------------------------------------------------
.. code-block::
$ python3 setup.py release --skip-tagging
running release
[get the version from ./releasecmd/__version__.py]
skip git tagging
[upload packages to PyPI]
...
release command options
============================================
::
Options for 'ReleaseCommand' command:
--skip-tagging skip a git tag creation
--skip-uploading skip uploading packages to PyPI
--dry-run don't actually do anything
--sign make a GPG-signed git tag
--verbose show verbose output
--search-dir specify a root directory path to search a version
file. defaults to the current directory.
--tag-template specify git tag format. defaults to 'v{version}'
--use-installed-version use an installed package version as a release
version
--version specify release version
Dependencies
============================================
- Python 3.8+
- `Git <https://git-scm.com/>`__
Raw data
{
"_id": null,
"home_page": "https://github.com/thombashi/releasecmd",
"name": "releasecmd",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "release, setuptools",
"author": "Tsuyoshi Hombashi",
"author_email": "tsuyoshi.hombashi@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/bd/a1/7d9b457e2ee995ec08cad3a75e39a006c94f03325b33a77416bd0f6652a6/releasecmd-0.10.4.tar.gz",
"platform": null,
"description": "releasecmd\n============================================\n\n|PyPI pkg ver| |Supported Python versions| |CI status| |CodeQL|\n\n.. |PyPI pkg ver| image:: https://badge.fury.io/py/releasecmd.svg\n :target: https://badge.fury.io/py/releasecmd\n :alt: PyPI package version\n\n.. |Supported Python versions| image:: https://img.shields.io/pypi/pyversions/releasecmd.svg\n :target: https://pypi.org/project/releasecmd\n :alt: Supported Python versions\n\n.. |CI status| image:: https://github.com/thombashi/releasecmd/actions/workflows/ci.yml/badge.svg\n :target: https://github.com/thombashi/releasecmd/actions/workflows/ci.yml\n :alt: CI status\n\n.. |CodeQL| image:: https://github.com/thombashi/releasecmd/actions/workflows/github-code-scanning/codeql/badge.svg\n :target: https://github.com/thombashi/releasecmd/actions/workflows/github-code-scanning/codeql\n :alt: CodeQL\n\nSummary\n---------\n``releasecmd`` is a ``release`` subcommand for ``setup.py`` (``setuptools.setup``).\nThe subcommand creates a git tag and pushes and uploads packages to ``PyPI``.\n\nThe subcommand class (``releasecmd.ReleaseCommand``) is implemented as a subclass of ``setuptools.Command`` class.\nThe ``release`` subcommand performs the following tasks:\n\n1. Detect the package version\n 1. If specified with the ``--version`` option, use that version\n 2. Retrieve the package version from an installed package if the ``--use-installed-version`` option is specified\n 3. Find a file that defines the package version (``__version__`` variable)\n2. Creates a git tag using the package version information\n - Optionally signs the git tag with GPG if the ``--sign`` option is specified\n3. Pushes the git tag\n4. Upload package files to PyPI using ``twine``.\n \nInstallation\n============================================\n::\n\n pip install releasecmd\n\n\nUsage\n============================================\n\n:setup.py:\n .. code-block:: python\n\n import setuptools\n\n from releasecmd import ReleaseCommand\n\n setuptools.setup(\n ...\n cmdclass={\"release\": ReleaseCommand},\n )\n\n\nExample\n============================================\n.. code-block::\n\n $ python3 setup.py release\n running release\n [get the version from ./releasecmd/__version__.py]\n [pull git tags]\n Already up to date.\n [check existing git tags]\n [create a git tag: v0.0.15]\n [push git tags]\n [upload the package to PyPI]\n ...\n\nprerequisite: package binaries must be in the ``dist/`` directory.\n\n\nSpecify version manually\n------------------------------------------------------\nYou can specify a version manually by ``--version`` option:\n\n.. code-block::\n\n $ python3 setup.py release --version 0.1.0\n [create a git tag: v0.1.0]\n [pull git tags]\n Already up to date.\n [check existing git tags]\n [push git tags]\n [upload packages to PyPI]\n\n\nCreate a GPG signed tag and upload packages\n------------------------------------------------------\n.. code-block::\n\n $ python3 setup.py release --sign\n running release\n [get the version from ./releasecmd/__version__.py]\n [pull git tags]\n Already up to date.\n [check existing git tags]\n [create a git tag with gpg signing: v0.1.0]\n [push git tags]\n [upload packages to PyPI]\n ...\n\nSkip create a git tag and upload packages\n------------------------------------------------------\n.. code-block::\n\n $ python3 setup.py release --skip-tagging\n running release\n [get the version from ./releasecmd/__version__.py]\n skip git tagging\n [upload packages to PyPI]\n ...\n\n\nrelease command options\n============================================\n::\n\n Options for 'ReleaseCommand' command:\n --skip-tagging skip a git tag creation\n --skip-uploading skip uploading packages to PyPI\n --dry-run don't actually do anything\n --sign make a GPG-signed git tag\n --verbose show verbose output\n --search-dir specify a root directory path to search a version\n file. defaults to the current directory.\n --tag-template specify git tag format. defaults to 'v{version}'\n --use-installed-version use an installed package version as a release\n version\n --version specify release version\n\nDependencies\n============================================\n- Python 3.8+\n- `Git <https://git-scm.com/>`__\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "releasecmd is a release subcommand for setup.py (setuptools.setup). the subcommand creates a git tag and pushes and uploads packages to PyPI.",
"version": "0.10.4",
"project_urls": {
"Changelog": "https://github.com/thombashi/releasecmd/releases",
"Homepage": "https://github.com/thombashi/releasecmd",
"Source": "https://github.com/thombashi/releasecmd",
"Tracker": "https://github.com/thombashi/releasecmd/issues"
},
"split_keywords": [
"release",
" setuptools"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f6712747ddb5124a9f3237839f9e4d958038e3021295921a8c1a2d77814dc0f1",
"md5": "e1ea496edfa930dccd005e4d55045d63",
"sha256": "04ff3f4c70ee7ce05c1cb47ac27d74fb3dc45a401b2cc41042a2153a5afd9a79"
},
"downloads": -1,
"filename": "releasecmd-0.10.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e1ea496edfa930dccd005e4d55045d63",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 7394,
"upload_time": "2024-04-30T03:18:32",
"upload_time_iso_8601": "2024-04-30T03:18:32.347840Z",
"url": "https://files.pythonhosted.org/packages/f6/71/2747ddb5124a9f3237839f9e4d958038e3021295921a8c1a2d77814dc0f1/releasecmd-0.10.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bda17d9b457e2ee995ec08cad3a75e39a006c94f03325b33a77416bd0f6652a6",
"md5": "9de940fac5d07c45e206a7a5308570da",
"sha256": "9f5ab60fe4d152983c7f1cf29f6e3588b53b4a4bc42dc218b8ac4fe9cf401b21"
},
"downloads": -1,
"filename": "releasecmd-0.10.4.tar.gz",
"has_sig": false,
"md5_digest": "9de940fac5d07c45e206a7a5308570da",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 11705,
"upload_time": "2024-04-30T03:18:33",
"upload_time_iso_8601": "2024-04-30T03:18:33.605215Z",
"url": "https://files.pythonhosted.org/packages/bd/a1/7d9b457e2ee995ec08cad3a75e39a006c94f03325b33a77416bd0f6652a6/releasecmd-0.10.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-30 03:18:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "thombashi",
"github_project": "releasecmd",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "releasecmd"
}