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

@marcoceppi/release-please-bot

v2.0.1

Published

propose releases

Downloads

32

Readme

release-please

A GitHub App built with Probot that proposes releases based on semantic version commits defined by conventionalcommits.org.

This bot wraps the release-please npm package to provide an easy way to integrate with your GitHub repository.

Setup

# Install dependencies
npm install

# Run the bot
npm start

Configuration

To configure the bot, you can create a configuration file: .github/release-please.yml. The contents of this file allow for the following options:

| Name | Description | Type | Default | | ------------------- | -------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------- | | primaryBranch | The primary branch from which releases are started | string | detected from repository | | handleGHRelease | Whether or not to tag releases on GitHub | boolean | false | | manifest | Whether or not this is a manifest release | boolean | false | | manifestConfig | Path to the manifest config | string | release-please-config.json | | manifestFile | Path to the manifest file | string | .release-please-manifest.json | | branches | Additional release branches to track | BranchConfiguration[] | [] |

BranchConfiguration:

| Name | Description | Type | Default | | ------------------- | -------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------- | | branch | The branch from which releases are started | string | required | | handleGHRelease | Whether or not to tag releases on GitHub | boolean | false | | manifest | Whether or not this is a manifest release | boolean | false | | manifestConfig | Path to the manifest config | string | release-please-config.json | | manifestFile | Path to the manifest file | string | .release-please-manifest.json |

Using a manifest config

We highly recommend using a manifest to configure your repository as the newest features will only be configurable there. To configure a manifest, create a release-please-config.json and a .release-please-manifest.json in the root of the repository.

The release-please-config.json contains the configuration for all modules in the repository. If you are converting from configurations in the release-please.yml, then you likely only have a single component in the repository. In this case, you will configure a single package path with ..

Example:

{
  "release-type": "node",
  "packages": {
    ".": {}
  }
}

The .release-please-manifest.json contains a mapping of paths to the current version (latest release of your artifact).

Example:

{
  ".": "1.2.3"
}

For more information on manifest configurations, see the documentation.

Validating the configuration

If the bot is installed, it will create a failing GitHub check on any pull request that modifies the .github/release-please.yml config file. It will validate both the yaml config (schema) and the manifest config (schema) if you are using a manifest config.

Deprecated Options

The following options are still supported, but can also be configured in a manifest configuration file. Future configuration options will only be available in a manifest configuration file. Note that the configuration names are often the "dasherized" versions of these camel-cased names.

| Name | Description | Type | Default | | ------------------- | -------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------- | | releaseLabels | List of labels to add to the release PR. | string[] | null | | releaseType | Release strategy | string | strategy detected from the repository's primary language | | versioning | Versioning strategy | string | default | | bumpMinorPreMajor | Bump minor for breaking changes before GA | boolean | default from underlying release strategy | | bumpPatchForMinorPreMajor | Bump patch for feature changes before GA | boolean | default from underlying release strategy | | packageName | The name of the package to publish to publish to an upstream registry such as npm. | string | the repository name | | path | Create a release from a path other than the repository's root | string | the repository root | | changelogHost | Override the host for the git source | string | https://github.com | | changelogPath | Path to the changelog to write releases notes to when creating a release | string | CHANGELOG.md | | changelogType | Strategy for generating the changelog entries. One of default or github | string | default | | extraFiles | Additional files to track (if language supports it) | string[] | [] | | versionFile | Path to the version file (if language supports it) | string | | | branches | Additional release branches to track | BranchConfiguration[] | [] | | releaseLabel | The label applied to pull request after creating the GitHub release | string | release-please default (autorelease: tagged) | | draft | Whether to create the release as a draft | boolean | false | | draftPullRequest | Whether to create the pull request as a draft | boolean | false | | pullRequestTitlePattern | Customize the pull request title | string | | | monorepoTags | Whether to include the component name in the release | boolean | `false |

BranchConfiguration:

| Name | Description | Type | Default | | ------------------- | -------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------- | | releaseLabels | List of labels to add to the release PR. | string[] | null | | releaseType | Release strategy | string | strategy detected from the repository's primary language | | versioning | Versioning strategy | string | default | | bumpMinorPreMajor | Bump minor for breaking changes before GA | boolean | default from underlying release strategy | | bumpPatchForMinorPreMajor | Bump patch for feature changes before GA | boolean | default from underlying release strategy | | packageName | The name of the package to publish to publish to an upstream registry such as npm. | string | the repository name | | path | Create a release from a path other than the repository's root | string | the repository root | | changelogHost | Override the host for the git source | string | https://github.com | | changelogPath | Path to the changelog to write releases notes to when creating a release | string | CHANGELOG.md | | changelogType | Strategy for generating the changelog entries. One of default or github | string | default | | extraFiles | Additional files to track (if language supports it) | string[] | [] | | versionFile | Path to the version file (if language supports it) | string | | | releaseLabel | The label applied to pull request after creating the GitHub release | string | release-please default (autorelease: tagged) | | draft | Whether to create the release as a draft | boolean | false | | draftPullRequest | Whether to create the pull request as a draft | boolean | false | | pullRequestTitlePattern | Customize the pull request title | string | | | monorepoTags | Whether to include the component name in the release | boolean | false |

Usage

After installing the GitHub app, and creating a .github/release-please.yml configuration, releases should be automatically proposed on commits to the configured branch(es).

Forcing the bot to run

To force a re-run, you may add the release-please:force-run label to any pull request. The bot should respond by running and removing that label.

Handling GitHub releases

The bot can optionally, tag the GitHub releases after a release pull request is merged. To do so, set handleGHRelease to true in your .github/release-please.yml configuration.

Testing

This bot uses nock for mocking requests to GitHub, and snap-shot-it for capturing responses; This allows updates to the API surface to be treated as a visual diff, rather than tediously asserting against each field.

Running tests:

npm run test

To update snapshots:

npm run test:snap

Contributing

If you have suggestions for how release-please could be improved, or want to report a bug, open an issue! We'd love all and any contributions.

For more, check out the Contributing Guide.

License

Apache 2.0 © 2019 Google Inc.