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

@muraldevkit/ds-semrel-config

v1.1.0

Published

Mural's design system's configuration files for Semantic Release

Downloads

11

Readme

Mural Design System Semantic Release Configuration

We use Semantic Release for version management and the package release workflow. This package contains the configuration files required by Semantic Release.

Table of Contents

  1. How to release a new package
    1. Running releases locally
  2. Plugin configuration
    1. @semantic-release/commit-analyzer
  3. Testing

How to release a new package

If you want to use this configuration to release a new package within the design system, please follow these steps:

  1. In the new package that you want to release, update package.json devDependencies by manually adding the packages below. Because we need to use * instead of a version number, please don't use npm install.
    "devDependencies": {
    	"@muraldevkit/ds-semrel-config": "*",
    	"@muraldevkit/ds-semrel-manager": "*",
    	"@muraldevkit/ds-semrel-stencil-exports": "*",
    }
  2. Run npm install from the root of the monorepo.
  3. Create a release configuration file within the config folder of your package named release.config.js. You may need to create the folder if it does not already exist. The file should contain the following content:
    /* eslint-disable @typescript-eslint/no-var-requires */
    'use strict';
    
    const releaseConfig = require('@muraldevkit/ds-semrel-config');
    
    module.exports = releaseConfig;
  4. Set up the package.json file:
    • Add a new release object that extends the semantic-release-monorepo package and our newly-created local configuration (described in the previous step).
      "release": {
      	"extends": [
      		"semantic-release-monorepo",
      		"./config/release.config"
      	]
      }
    • Update the scripts object with a consistently-named command that can be executed within the monorepo's workflow.
      "release": "npx semantic-release"
  5. Set up the monorepo root to execute a release across all packages (assuming you are using Lerna):
    "release": "npx lerna run release --concurrency 1 --stream",

Skip this step if that script already exists

Running releases locally

To run the script locally, the branch you are attempting to release must be pushed to the repository first. Once that is done, use:

npm run release

Plugin configuration

In some cases, the plugins called by Semantic Release use custom functions or configuration:

@semantic-release/commit-analyzer

The Semantic Release Commit Analyzer looks at each commit found since the last release and determines if it should trigger a new release and what the release type should be (major, minor, or patch).

The rules used by the plugin are customized by passing a releaseRules array as part of the plugin's configuration object. The design system uses a custom function which takes a configuration object and generates the releaseRules array. The default configuration object is located in config/default-rules.js.

Testing

Jest unit tests can be run within the package directory using:

npm run test

Test files are located in the tests directory and new files should follow the naming convention <scriptToTest>.test.ts.