@ianwalter/release v5.0.2
@ianwalter/release
CLI workflow for releasing JavaScript packages

About
HEAVILY inspired by np but with the following features:
- Better support for yarn
- A release branch workflow to help with GitHub master branch protections
- Support for multiple (and external) registries
Workflow
- Check and fail if there are uncommited changes in the working directory
- Check and fail if upstream has new commits
- Display commits and prompt for a new semantic version if one wasn't specified as the first arugment
- Check and fail if version tag already exists locally or on remote
- Re-install dependencies
- Run linting if there's a lint script
- Run tests if there's a test script
- If --branchis specified, create a release branch, push it, link to a new PR, and prompt for a confirmation to publish
- Update the version in package.jsonand commit the version bump
- Create a tag and push it up
- Publish the package and display a link to create a new GitHub release with the tag from the previous step
- If --yolois specified, most of checks are skipped and the last 3 steps are executed
Installation
yarn add @ianwalter/release --devCLI Usage
If you've installed release as a develoment dependency you can run it like:
yarn release [version]The version number is optional. If not specified, you will be prompted for one.
- --access, -a <public|restricted>Tells the registry whether this package should be published as public or restricted. Only applies to scoped packages, which default to restricted. If you don’t have a paid account, you must publish with --access public to publish scoped packages.
- --branch, -bSpecifies- releaseshould publish from a release branch. The name of the branch is autogenerated based on the version unless given a value.
- --yolo, -yYou Only Live Once. Disable most of the checks and publish the thing.
- --log-level, -lSpecifies the log level- releasewill use. Set to- debugif you are having trouble!
Multiple Registries
You can specify that your package be published to multiple registries by
configuring release in your package.json, for example:
{
  "release": {
    "registries": [
      "npm",
      "github",
      "https://some.other.registry.com/"
    ]
  }
}You can specify npm for npm and github for GitHub Package Registry.
Otherwise, specify the registry URL.
Release Branch Workflow
GitHub branch protections can make it difficult to commit
version updates to your package.json before publishing. In order to get around
this, you can specify the --branch flag and release will automatically
create a release branch, commit the version update, and link to the pull request
creation page on GitHub. It will then prompt you to confirm before publishing
(unless you added the --yolo flag) so that you can get the PR reviewed. You
can also supply a branch name to --branch if you don't want to use the
generated one.
License
Hippocratic License - See LICENSE
Created by Ian Walter
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago