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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@alanscodelog/semantic-release-config

v5.0.3

Published

My preferred semantic release config.

Downloads

68

Readme

Release NPM Version (with latest tag)

My preferred semantic release config:

Features

  • Support for 0.0.0 versioned releases.
  • Shows the full commit body in the release notes.
  • Uses semantic-release/git to commit the version change (makes packages in monorepos easier to handle).

Install

yarn add -D @alanscodelog/semantic-release-config
// package.json
{
	"release": {
		"extends": "@alanscodelog/semantic-release-config",
		"assets": [
			// { path: "", label: "" }
		]
		// see notes below regarding the passing of global options
	}
}

Types

typename Changelog Header (release type)

Shown in Changelog

feat :star: New Features (minor)

fix :bug: Fixes (patch)

revert :arrow_backward: Reverts (patch)

docs :book: Documentation` (not released) - not released because they'd get built and published to github pages anyways

docs(readme) (patch) - published so npm's readme gets updated

perf :rocket: Performance Improvements (patch)

The commit body is shown by default, this can be disabled by setting the SEMANTIC_RELEASE_HIDE_COMMIT_BODY environment variable to TRUE, or per commit by adding <!--skip-release-notes--> to the commit body.

0.0.0 Versioned Releases

Workaround for semantic-release's lack of 0.0.0 versioning (see).

For the following to work there must be an initial commit tagged v0.0.0 (I usually just make this empty. After, a v0feat: initial commit can be made and semantic release will release it as v0.0.1. So long as you use v0* release types or any release type that is only a patch, you will stay in major version 0.

v0feat :star: New Features (patch)

v0fix :bug: Fixes (patch) - technically a regular fix would also work

v0breaking :warning: BREAKING CHANGES (minor) - use this tag for breaking changes, it looks like a breaking change in release logs but isn't really one for semantic-release.

Do NOT use BREAKING CHANGES in the commit text, it will cause a major version bump.

Hidden from the Changelog

I set changelog headers just in case I want to unhide them.

tests :white_check_mark: Tests (patch)

chore :wrench: Chores (patch)

deps :link: Dependency Updates (patch)

ci :arrows_counterclockwise: CI (patch)

build :hammer: Build (patch)

style :art: Code Style (patch)

refactor :package: Code Refactoring (patch)

[any](no-release) (not released)

Branches

  • any maintenance branches (x.x.x)
  • master
  • alpha
  • beta

Personally I try to stick with master and beta to keep things simple.

Plugins Used

@semantic-release/commit-analyzer
@semantic-release/release-notes-generator
@semantic-release/git
@semantic-release/github
@semantic-release/npm

Notes

  • The @semantic-release/github and @semantic-release/npm plugins are used in the config without options so global options will be passed down to them, but, for other plugins, it doesn't seem possible to override any options that were already passed down to them.

  • Additionally note the debug flag for semantic-release does not seem to reflect the passing of this global options. I have filed an issue regarding all this here