Elegant follows “release early, release often” software development philosophy. In this regard, our release process is fully automated.

We use semantic-release for version management and publishing.

Our semantic release configuration can be viewed here.


It generates the change log automatically, therefore you do not have to update the CHANGELOG.

New Releases and Version Number

semantic-release uses the commit messages to determine the type of changes in the codebase. Following formalized conventions for commit messages, semantic-release automatically determines the next semantic version number, generates a changelog and publishes the release.

Here is an example of the release type that will be done based on a commit messages:

Commit Message Release Type
fix(pencil): stop graphite breaking when too much pressure applied Patch Release
feat(pencil): add ‘graphiteWidth’ option Minor Feature Release
perf(pencil): remove graphiteWidth option

BREAKING CHANGE: The graphiteWidth option has been removed.
The default graphite width of 10mm is always used for performance reasons.
Major Breaking Release

Test Release Process Locally

To test semantic-release locally,

  1. Install yarn
  2. Run yarn semantic-release

It will run the all the checks and steps in dry run mode.

Like this post? Share on: TwitterFacebookEmail

Talha Mansoor Avatar Talha Mansoor is the creator and lead developer of Elegant theme.