bumpify


Namebumpify JSON
Version 0.3.0 PyPI version JSON
download
home_pagehttps://github.com/mwiatrzyk/bumpify
SummarySemantic versioning automation tool for software projects
upload_time2024-05-19 07:32:10
maintainerNone
docs_urlNone
authorMaciej Wiatrzyk
requires_python<4.0,>=3.8
licenseMIT
keywords semantic versioning cli tool
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![PyPI - Version](https://img.shields.io/pypi/v/bumpify)
![PyPI - Downloads](https://img.shields.io/pypi/dm/bumpify)
![PyPI - License](https://img.shields.io/pypi/l/bumpify)

# Bumpify

Semantic versioning automation tool for software projects.

## About

Bumpify is a CLI tool that analyzes VCS changelog of your project and generates
next semantic version of it. Despite the fact that the tool is written in
Python, it can be used to automate versioning of any project, written in any
language, and any technology.

Bumpify works with conventional commits, as defined here:

https://www.conventionalcommits.org/en/v1.0.0/

And follows semantic versioning rules that can be found here:

https://semver.org/

## Installation

### Using ``pip``

This is recommended option if you want to use this tool only inside your
virtual Python environment as a development dependency of the project you work
on:

```
$ pip install bumpify
```

### Using ``pipx``

This is recommended option if you want this tool to be available system wide:

```
$ pipx install bumpify
```

## Usage

### Creating initial configuration

Bumpify reads its configuration from a configuration file, that by default will
be created inside project's root directory and named ``.bumpify.toml``.

To create initial configuration for your project, proceed to the root directory
of your project and type:

```
$ bumpify init
```

That command will interactively guide you through the process of creating
initial configuration file.

Alternatively, you can also take a look at config file that Bumpify itself is
using:

https://github.com/mwiatrzyk/bumpify/blob/main/.bumpify.toml

Yes, Bumpify is also versioned with Bumpify :-)

### Create a new version

Once the project is configured, you can start using the tool. To bump the
version and create new release just run following command:

```
$ bumpify bump
```

The ``bump`` command will, among other things, do following:

1. Check if version tags are present.
2. Create initial version in no version tags are found.
3. Create next version if version tags are found. The new version is calculated
   by analyzing VCS changelog between last version and VCS repository HEAD.
   Only **conventional commits** are currently taken into account, all other
   formats are ignored.
4. Write new version to all configured **version files**.
5. Create or update all configured **changelog files**.
6. Create so called **bump commit** and add all modified files to it.
7. Tag the bump commit with a **version tag**.

Bumpify will not push the commit and the tag to the upstream; you will have to
do it on your own, as this is out of scope of Bumpify.

I strongly recommend calling ``bumpify bump`` from one of the final CI steps of
your project.

## Glossary

### Conventional commit

A normalized format of a commit message that can be later parsed by tools like
Bumpify and interpreted accordingly.

Here's an example:

    feat: add support for Markdown changelog

Thanks to conventional commits Bumpify knows what changes are breaking changes,
what are new features, and what are bug fixes. Based on that the tool can
calculate next version and generate changelog.

Check here for more details:

https://www.conventionalcommits.org/en/v1.0.0/

### Version file

Project's file containing project's version string. Version files are used to
store project's version value, which must be adjusted on each version bump.
There can be several such files inside a project and all should be known to
Bumpify to avoid version integrity problems.

### Changelog file

The file with release history of the project.

It is automatically created or updated on each version bump. Bumpify can create
several changelog files, with different formats.

Currently supported changelog file formats are Markdown and JSON.

### Bump commit

A commit created once version was bumped with message containing information
about previous and new version. For example:

```
bump: 0.1.0 -> 0.2.0
```

The format of a bump commit can be changed in the config file.

### Version tag

Each bump commit is tagged with a version tag. For example:

```
v1.2.3
```

The format of this tag can be changed in the config file.

## License

The project is licensed under the terms of the MIT license.

## Author

Maciej Wiatrzyk <maciej.wiatrzyk@gmail.com>

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/mwiatrzyk/bumpify",
    "name": "bumpify",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": "semantic, versioning, cli, tool",
    "author": "Maciej Wiatrzyk",
    "author_email": "maciej.wiatrzyk@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/30/e1/577229a021d8d5e91c273eee1aaf3422587ea119ad0679978cb4907be337/bumpify-0.3.0.tar.gz",
    "platform": null,
    "description": "![PyPI - Version](https://img.shields.io/pypi/v/bumpify)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/bumpify)\n![PyPI - License](https://img.shields.io/pypi/l/bumpify)\n\n# Bumpify\n\nSemantic versioning automation tool for software projects.\n\n## About\n\nBumpify is a CLI tool that analyzes VCS changelog of your project and generates\nnext semantic version of it. Despite the fact that the tool is written in\nPython, it can be used to automate versioning of any project, written in any\nlanguage, and any technology.\n\nBumpify works with conventional commits, as defined here:\n\nhttps://www.conventionalcommits.org/en/v1.0.0/\n\nAnd follows semantic versioning rules that can be found here:\n\nhttps://semver.org/\n\n## Installation\n\n### Using ``pip``\n\nThis is recommended option if you want to use this tool only inside your\nvirtual Python environment as a development dependency of the project you work\non:\n\n```\n$ pip install bumpify\n```\n\n### Using ``pipx``\n\nThis is recommended option if you want this tool to be available system wide:\n\n```\n$ pipx install bumpify\n```\n\n## Usage\n\n### Creating initial configuration\n\nBumpify reads its configuration from a configuration file, that by default will\nbe created inside project's root directory and named ``.bumpify.toml``.\n\nTo create initial configuration for your project, proceed to the root directory\nof your project and type:\n\n```\n$ bumpify init\n```\n\nThat command will interactively guide you through the process of creating\ninitial configuration file.\n\nAlternatively, you can also take a look at config file that Bumpify itself is\nusing:\n\nhttps://github.com/mwiatrzyk/bumpify/blob/main/.bumpify.toml\n\nYes, Bumpify is also versioned with Bumpify :-)\n\n### Create a new version\n\nOnce the project is configured, you can start using the tool. To bump the\nversion and create new release just run following command:\n\n```\n$ bumpify bump\n```\n\nThe ``bump`` command will, among other things, do following:\n\n1. Check if version tags are present.\n2. Create initial version in no version tags are found.\n3. Create next version if version tags are found. The new version is calculated\n   by analyzing VCS changelog between last version and VCS repository HEAD.\n   Only **conventional commits** are currently taken into account, all other\n   formats are ignored.\n4. Write new version to all configured **version files**.\n5. Create or update all configured **changelog files**.\n6. Create so called **bump commit** and add all modified files to it.\n7. Tag the bump commit with a **version tag**.\n\nBumpify will not push the commit and the tag to the upstream; you will have to\ndo it on your own, as this is out of scope of Bumpify.\n\nI strongly recommend calling ``bumpify bump`` from one of the final CI steps of\nyour project.\n\n## Glossary\n\n### Conventional commit\n\nA normalized format of a commit message that can be later parsed by tools like\nBumpify and interpreted accordingly.\n\nHere's an example:\n\n    feat: add support for Markdown changelog\n\nThanks to conventional commits Bumpify knows what changes are breaking changes,\nwhat are new features, and what are bug fixes. Based on that the tool can\ncalculate next version and generate changelog.\n\nCheck here for more details:\n\nhttps://www.conventionalcommits.org/en/v1.0.0/\n\n### Version file\n\nProject's file containing project's version string. Version files are used to\nstore project's version value, which must be adjusted on each version bump.\nThere can be several such files inside a project and all should be known to\nBumpify to avoid version integrity problems.\n\n### Changelog file\n\nThe file with release history of the project.\n\nIt is automatically created or updated on each version bump. Bumpify can create\nseveral changelog files, with different formats.\n\nCurrently supported changelog file formats are Markdown and JSON.\n\n### Bump commit\n\nA commit created once version was bumped with message containing information\nabout previous and new version. For example:\n\n```\nbump: 0.1.0 -> 0.2.0\n```\n\nThe format of a bump commit can be changed in the config file.\n\n### Version tag\n\nEach bump commit is tagged with a version tag. For example:\n\n```\nv1.2.3\n```\n\nThe format of this tag can be changed in the config file.\n\n## License\n\nThe project is licensed under the terms of the MIT license.\n\n## Author\n\nMaciej Wiatrzyk <maciej.wiatrzyk@gmail.com>\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Semantic versioning automation tool for software projects",
    "version": "0.3.0",
    "project_urls": {
        "Homepage": "https://github.com/mwiatrzyk/bumpify",
        "Repository": "https://github.com/mwiatrzyk/bumpify"
    },
    "split_keywords": [
        "semantic",
        " versioning",
        " cli",
        " tool"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a74f4a4f6a0b3469118a9046ec24620e5ff76f7f061ae62126e0d2b0403c2f01",
                "md5": "91f623559f14528cb2d35626c7d2e439",
                "sha256": "a3ddcf87f01eb1aafbee5125d4cfdc57680e6aa9b6b9025fdd46f807584919ff"
            },
            "downloads": -1,
            "filename": "bumpify-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "91f623559f14528cb2d35626c7d2e439",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 56605,
            "upload_time": "2024-05-19T07:32:09",
            "upload_time_iso_8601": "2024-05-19T07:32:09.305695Z",
            "url": "https://files.pythonhosted.org/packages/a7/4f/4a4f6a0b3469118a9046ec24620e5ff76f7f061ae62126e0d2b0403c2f01/bumpify-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "30e1577229a021d8d5e91c273eee1aaf3422587ea119ad0679978cb4907be337",
                "md5": "357a82b706ee8e116886a4b750ed296c",
                "sha256": "4626cb8b403a4e7cc578c48a51f55227ea0d200210e4bb865f59a53ec92a96a2"
            },
            "downloads": -1,
            "filename": "bumpify-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "357a82b706ee8e116886a4b750ed296c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 38922,
            "upload_time": "2024-05-19T07:32:10",
            "upload_time_iso_8601": "2024-05-19T07:32:10.542873Z",
            "url": "https://files.pythonhosted.org/packages/30/e1/577229a021d8d5e91c273eee1aaf3422587ea119ad0679978cb4907be337/bumpify-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-19 07:32:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mwiatrzyk",
    "github_project": "bumpify",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "circle": true,
    "lcname": "bumpify"
}
        
Elapsed time: 0.40684s