Releases: ianwalter/release
3.0.1
3.0.0
2.1.0
2.0.1
Commits from v2.0.0 <26efab2> to v2.0.1:
- b4b8c05 Fix #31: access prompt bug
- cb35ac5 Update dependency @ianwalter/bff to ^6.5.0
- e952070 Improving GHA workflow
- 8afe5ac Update dependency @ianwalter/eslint-config to ^2.4.0
- e6853bf Update dependency @ianwalter/renovate-config to ^1.2.0
- 12bff7e Update dependency @ianwalter/eslint-config to ^2.3.0
- cdb1aa4 Update dependency execa to ^2.0.4
2.0.0
@ianwalter/release
CLI workflow for releasing JavaScript packages
About
HEAVILY inspired by np but with the following features:
- Focused on
yarn
(andlerna
in the future) - 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
--branch
is specified, create a release branch, push it, link to a
new PR, and prompt for a confirmation to publish - Update the version in
package.json
and 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
--yolo
is specified, most of checks are skipped and the last 3 steps
are executed
Installation
yarn add @ianwalter/release --dev
CLI 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, -b
Specifiesrelease
should publish from a release branch. The
name of the branch is autogenerated based on the version unless given a value.--yolo, -y
You Only Live Once. Disable most of the checks and publish the
thing.--logLevel, -l
Specifies the log levelrelease
will use. Set to debug if
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.
1.1.10
1.1.9
1.1.8
Commits from v1.1.7 to v1.1.8:
- 482901e Attempting to fix #15: No release body on initial publish
- 3f35160 Fixing scripts conditionals
- fef30ae Adding author to package.json
- 3247af1 Adding npm badge
- 753fa1f Adding npm publish url
- 3cfaf26 Updating readme
- 490b496 Update dependency @ianwalter/bff to ^6.4.0
- c59f7af Adding colon to description markdown