npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, πŸ‘‹, I’m Ryan HefnerΒ  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you πŸ™

Β© 2025 – Pkg Stats / Ryan Hefner

semantix

v0.10.7

Published

> *Semantix is a tool that analyzes your repository's commit history and generates the appropriate semantic version based off keywords found in the commit messages* ### Table of Content - [πŸš€ Installation](#installation) - [πŸ”¨ Usage](#usage) - [πŸ“š Com

Readme

semantix

Semantix is a tool that analyzes your repository's commit history and generates the appropriate semantic version based off keywords found in the commit messages

Table of Content

πŸ“ˆ Progress

  • [ ] Generate CHANGELOG.md
  • [x] Generate current and latest version
  • [x] Update package.json with latest version
  • [x] Private repository support
  • [x] Tag release branch with release versions
    • [x] GitLab
    • [x] GitHub
    • [x] Release Notes

Installation

npm install --save semantix

πŸ“ƒBack to Table of Content

Usage

Semantix keeps track of your projects version number and generates release notes/changelogs automatically. All that needs to be done to leverage Semantix is to format your commits in a specific way.

Commit Format

keyword: A predefined string indicating how much to bump the project version.

scope: An optional argument specifying the scope of the commit -- used in the release process to annotate release tags and generate changelogs.

Mapping specific keyword to release types (major, minor, patch) can be customized and defined in a .semantix.yml configuration file.

keyword: πŸ”πŸ₯“πŸŸ
keyword(scope): This is my commit message!

🚨 NOTE: Be careful when merging pull requests and using the squash feature. Commit messages need to maintain their specific format in order to be picked up by the semantix commit parser.

package.json

Example

"scripts": {
    "latest": "semantix latest",
    "next": "semantix next",
    "update": "semantix update",
    "release": "semantix release"
}

Command Line

npx semantix <command> [option]

Commands

latest

Checks repository tags to determine the latest release version.


next

Checks repository tags to determine the latest version and calculates the next release version based off of the commit history after the latest release.


update

Update your package.json with the projects next version.


release

In order to use this feature you must provide a set of environment variables for semantix to use.

Creates a tag and release in your GitLab or GitHub remote repository.

Requirements:

😸 GitHub

|Variable|Name| |:-:|:-:| |Access Token| GITHUB_TOKEN or GH_TOKEN| |GitHub API URL| GITHUB_URL|

🦊 GitLab

|Variable|Name| |:-:|:-:| |Access Token| GITLAB_TOKEN or GL_TOKEN| |GitHub API URL| GITLAB_URL|

Options

|Option|Description| |:----:|:---| |--branch|Specify the branch from which to release.|

πŸ“ƒBack to Table of Content

Order of Precedence

If no additional options are given to semantix then the default values will be used. Otherwise, values will be read from the the command line --options first and the missing variables filled in with the .semantix.yml configuration file.

It is recommended to use .semantix.yml for all your configuration and only use the command line --options as overrides.

Configuration

You may store your configuration and override some defaults in a .semantix.yml file

.semantix.yml

branch: master
release:
    BREAKING: major
    feat: minor
    perf: minor
    refactor: minor
    ci: patch
    init: patch
    chore: patch
    fix: patch
    test: patch
    docs: patch

|Key|Type|Description|Default |---|----|----|:---:| |release|object|Mapping of keywords to semantic version increment amounts.|See example |branch|string|The branch to be considered for releases.|See example

πŸ“ƒBack to Table of Content