Skip to main content

Semversioner

The easiest way to manage semantic versioning in your project and generate CHANGELOG.md file automatically.

Semversioner will provide the tooling to automate semver release process for libraries, docker images, etc.

This project was inspired by the way AWS manages their versioning for AWS-cli.

Semantic Versioning

The semantic versioning spec involves several possible variations, but to simplify, in Semversioner we are using the three-part version number:

<major>.<minor>.<patch>

Constructed with the following guidelines:

  • Breaking backward compatibility or major features bumps the major (and resets the minor and patch).
  • New additions without breaking backward compatibility bumps the minor (and resets the patch).
  • Bug fixes and misc changes bumps the patch.

An example would be 1.0.0

How it works

At any given time, the .semversioner/ directory looks like:

.semversioner
└── next-release
    ├── minor-20181227010225.json
    └── major-20181228010225.json
├── 1.1.0.json
├── 1.1.1.json
├── 1.1.2.json

The release process takes everything in next-release and aggregates them all together in a single JSON file for that release (e.g 1.12.0.json). This JSON file is a list of all the individual JSON files from next-release.

Install

$ pip install semversioner

Usage

Bumping the version

In your local environment your will use the CLI to create the different changeset files that will be committed with your code. For example:

$ semversioner add-change --type patch --description "Fix security vulnerability with authentication."

Then, in your CI/CD tool you will need to release (generating automatically version number) and creating the the changelog file.

$ semversioner release

Generating Changelog

As a part of your CI/CD workflow, you will be able to generate the Changelog file with all changes.

$ semversioner changelog > CHANGELOG.md

License

Copyright (c) 2020 Raul Gomis. MIT licensed, see LICENSE file.


Made with ♥ by Raul Gomis <https://twitter.com/rgomis>.

Changelog

Note: version releases in the 0.x.y range may introduce breaking changes.

0.9.0

  • minor: Deprecated .changes directory in favour of .semversioner directory
  • patch: Internal refactor to improve code quality and test coverage

0.8.1

  • patch: Fix installer error when referencing to LICENSE file

0.8.0

  • minor: Enabled autocompletion by default

0.7.1

  • patch: Improve docs for open source

0.7.0

  • minor: Fail with error code when no changes are provided in the release command

0.6.16

  • patch: Fix bug: add require module in setup.py

0.6.15

  • patch: Fix packaging for LICENSE
  • patch: Improve README.md documentation
  • patch: Use jinja2 template engine internally to generate the changelog

0.6.14

  • patch: Update docs

0.6.13

  • patch: Fix README.md

0.6.12

  • patch: Fix long description content type

0.6.11

  • patch: Add README.md file

0.6.10

  • patch: Fix code consistency

0.6.9

  • patch: Fix packaging

0.6.8

  • patch: Tag the repository when releasing

0.6.7

  • patch: Fix tests and improve coverage

0.6.6

  • minor: Initial version

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

semversioner-0.9.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

semversioner-0.9.0-py2.py3-none-any.whl (7.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file semversioner-0.9.0.tar.gz.

File metadata

  • Download URL: semversioner-0.9.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for semversioner-0.9.0.tar.gz
Algorithm Hash digest
SHA256 21c5ce62e5e6e1c6784fbca1b2c87838d8fe903641b621a94da914255d4f3bca
MD5 80d5e8b1fae951c7ea5a7cd98d510ecb
BLAKE2b-256 938bd7e0e0dd5d1cf929848f93dd73df0b90a32a3d2fef5501f61c9196ee3b83

See more details on using hashes here.

File details

Details for the file semversioner-0.9.0-py2.py3-none-any.whl.

File metadata

  • Download URL: semversioner-0.9.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for semversioner-0.9.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 91ca6626e4c6e180249609e2cde8c52b1b95bc4a8087e0232f0bf1559a32fdef
MD5 aa576a16ed0445b42aca85439121a776
BLAKE2b-256 54bfdcd6e0529b09ac6585ed75e2041e7baee5f42e85ca9e7cf4e7a322a4c471

See more details on using hashes here.

Release history Release notifications | RSS feed

3.0.3

2 files

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

2.2.0

2 files

2.1.2

2 files

2.1.1

2 files

2.1.0

2 files

2.0.8

2 files

2.0.7

2 files

2.0.6

2 files

2.0.5

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

1.7.0

2 files

1.6.0

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.1

2 files

1.4.0

2 files

1.3.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

This release

0.9.0 This release

2 files

0.8.1

1 file

0.8.0

1 file

0.7.1

1 file

0.7.0

1 file

0.6.16

1 file

0.6.15

1 file

0.6.14

1 file

0.6.13

1 file

0.6.12

1 file

0.6.11

1 file

0.6.10

1 file

0.6.9

1 file

0.6.8

1 file

0.6.7

1 file

0.6.6

1 file

0.6.5

1 file

0.6.4

1 file

0.6.3

1 file

0.6.2

1 file

0.6.1.52

1 file

0.6.1.0

1 file

0.6.0.50

1 file

0.6.0.49

1 file

0.6.0

1 file

0.5.0

1 file

0.4.0

1 file

0.3.0

1 file

0.2.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page