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

You can filter the changelog by only showing changes for a specific version:

$ semversioner changelog --version "1.0.0"

Alternatively, you can use the following command to filter changes by the last released version:

$ semversioner changelog --version $(semversioner current-version)

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.11.0

  • minor: Add '--version' filter to the 'changelog' command to display the changelog only for a specific version

0.10.0

  • minor: Add new 'status' command to display the state of the working directory and unreleased changes
  • patch: Fix build and deployment configuration
  • patch: Refactor method names and code for better code readability and testability

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.11.0.tar.gz (9.0 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.11.0-py2.py3-none-any.whl (8.4 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: semversioner-0.11.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6

File hashes

Hashes for semversioner-0.11.0.tar.gz
Algorithm Hash digest
SHA256 6c610dd0f2566883db4f5e0e4ca5de1ba9d0e03ce61c6200732e38506421d915
MD5 033a863f3758f72d8a6f8ddeaa4be3ea
BLAKE2b-256 3a8b79171e005d37c0ae972dc06402ecffda43dc71605d7a2979d25833e910ff

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for semversioner-0.11.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bb99305fd420cae7466c1906c41667f1a959084bb9cea404b539326cac6e97ca
MD5 4055171473ee47692bcbe7bd7b9036d1
BLAKE2b-256 03daaf261af480a3b5fb07728c8241c80e7d74a7dec977adf21d02ef22db32c0

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

This release

0.11.0 This release

2 files

0.10.0

2 files

0.9.0

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