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

@rainstormy/updraft

v1.2.0

Published

Updraft updates changelogs and bumps version numbers when you are about to release a new version of your project.

Downloads

84

Readme

Updraft – Release Automation

Updraft prepares a repository for an upcoming release by updating changelogs and bumping version numbers in package.json files.

It saves the changes to the files, but it does not make any Git commits or GitHub releases. You can automate these things in your CI/CD pipeline (it works well with the rainstormy/release actions), or you can do them manually after running the Updraft tool.

Supported file formats:

  • Markdown CHANGELOG.md and AsciiDoc CHANGELOG.adoc in Keep a Changelog format.
  • package.json files.

Command-Line Interface (CLI)

Installation

Install the @rainstormy/updraft package with the package manager of your choice:

npm install --save-dev @rainstormy/updraft
pnpm add --save-dev @rainstormy/updraft
yarn add --dev @rainstormy/updraft

Usage

updraft [options]

Examples (see the Options reference below):

updraft --files 'CHANGELOG.md' 'package.json' --release-version '1.1.0'
updraft \
  --files 'package.json' 'packages/**/package.json' \
  --release-files 'CHANGELOG.md' \
  --check-sequential-release \
  --release-version '2.0.0-beta.1'

GitHub Actions

Usage

Use the rainstormy/updraft action to run Updraft on the file system of the GitHub Actions runner.

Examples (see the Options reference below):

jobs:
  prepare-release:
    runs-on: ubuntu-24.04
    timeout-minutes: 1
    permissions: { }
    steps:
      - name: Check out the repository
        uses: actions/checkout@v4
        #
      - name: Update release artifacts
        uses: rainstormy/updraft@v1
        with:
          files: package.json
          release-files: CHANGELOG.md
          release-version: 1.1.0
jobs:
  prepare-release:
    runs-on: ubuntu-24.04
    timeout-minutes: 1
    permissions: { }
    steps:
      - name: Check out the repository
        uses: actions/checkout@v4
        #
      - name: Update release artifacts
        uses: rainstormy/updraft@v1
        with:
          check-sequential-release: true
          files: |
            package.json
            packages/**/package.json
          release-files: CHANGELOG.md
          release-version: ${{ inputs.version || github.head_ref }}

Options

check-sequential-release

Verify that release-version specifies a valid increment from the latest version detected in each file to be updated.

# CLI:
updraft --check-sequential-release
# GitHub Actions:
with:
  check-sequential-release: true

files

Update the files matching the specified glob patterns whenever release-version is specified.

# CLI:
updraft --files <pattern-1> <pattern-2> <pattern-3>...
# GitHub Actions:
with:
  files: |
    <pattern-1>
    <pattern-2>
    <pattern-3>
    ...

prerelease-files

Update the files matching the specified glob patterns only when release-version has a -prerelease or +buildinfo segment.

# CLI:
updraft --prerelease-files <pattern-1> <pattern-2> <pattern-3>...
# GitHub Actions:
with:
  prerelease-files: |
    <pattern-1>
    <pattern-2>
    <pattern-3>
    ...

release-files

Update the files matching the specified glob patterns only when release-version does not have a -prerelease or +buildinfo segment.

# CLI:
updraft --release-files <pattern-1> <pattern-2> <pattern-3>...
# GitHub Actions:
with:
  release-files: |
    <pattern-1>
    <pattern-2>
    <pattern-3>
    ...

release-version

The semantic version number (SemVer) of the next release on the form <major.minor.patch[-prerelease][+buildinfo]>. The -prerelease and +buildinfo segments are optional.

It accepts any input containing a substring that is a semantic version number, e.g. v2.0.0 or release/1.5.0-rc.0.

# CLI:
updraft --release-version <major.minor.patch[-prerelease][+buildinfo]>
# GitHub Actions:
with:
  release-version: <major.minor.patch[-prerelease][+buildinfo]>