Minimalistic, opinionated, and predictable release automation tool.

Overview

Release library logo

Release

Minimalistic, opinionated, and predictable release automation tool.

General idea

Think Prettier but for automated releases: minimalistic, opinionated, and, most of all, predictable. This tool combines the usual expectations from a release manager but brings practicality to the table.

Here's the publishing pipeline this tool implements:

  1. Analyzes commits since the latest published release.
  2. Determines next package version based on Conventional Commits specification.
  3. Runs the publishing script.
  4. Creates release a tag and a release commit in Git.
  5. Creates a new release on GitHub.
  6. Pushes changes to GitHub.
  7. Comments on relevant GitHub issues and pull requests.

While this sounds like what any other release tool would do, the beauty lies in details. Let's take a more detailed look then at what this tool does differently.

Defaults

The workflow above is the default (and the only) behavior.

That's the release process I personally want for all of my libraries, and that's why it's the default behavior for this tool. If you wish for the release automation tool to do something differently or skip certain steps, then this tool is not for you. I want a predictable, consistent release process, and that's largely achieved by the predictable release workflow for all my projects.

Release commits

A release tag and a release commit are automatically created.

commit cee5327f0c7fc9048de7a18ef7b5339acd648a98 (tag: v1.2.0)
Author: GitHub Actions <[email protected]>
Date:   Thu Apr 21 12:00:00 2022 +0100

    chore(release): v1.2.0

Release is a part of the project's history so it's crucial to have explicit release marker in Git presented by a release commit and a release tag.

Respects publishing failures

If publishing fails, no release commits/tags will be created or pushed to Git.

Here's an average experience you'd have if your release (read "publishing to NPM") fails with an average release manager in the wild:

  1. Process is terminated but the release tags/commits have already been created and pushed to remote.
  2. You need to manually revert the release commit.
  3. You need to manually delete the release tag from everywhere.
  4. You need to manually delete any other side-effects your release has (i.e. GitHub release).

For an automated tooling there's sure a lot of the word "manual" in this scenario. The worst part is that you cannot just "retry" the release—you need to clean up all the artifacts the release manager has left you otherwise it'll treat the release as successful, stating there's nothing new to release.

The bottom line is: failed releases happen. The package registry may be down, your publishing credentials may be wrong, or the entire internet may just decide to take a hiccup. The tooling you use should acknowledge that and support you in those failure cases, not leave you on your own to do manual cleanup chores after the automated solution.

Opinionated behaviors

  • GitHub-only. This tool is designed for projects hosted on GitHub.
  • Release tag has the following format: v${version} (i.e. v1.2.3).
  • Release commit has the following format: chore(release): v${version}.
  • Does not generate or update the CHANGELOG file. This tool generates automatic release notes from your commits and creates a new GitHub release with those notes. Use GitHub releases instead of changelogs.

Limitations

  • This tool does not support ! (exclamation mark) as a commit message modifier indicating breaking changes. Please always include the BREAKING CHANGE indicator in the commit's body if you wish to indicate a breaking change.

Getting started

Install

npm install @ossjs/release --save-dev

Create configuration

Create a configuration file at the root of your repository:

touch ossjs.release.config.js

Open the newly created file and specify the script command that publishes your package:

// ossjs.release.config.js
module.exports = {
  script: 'npm publish',
}

Generate GitHub Personal Access Token

Generate a Personal Access Token for your GitHub user with the following permissions:

  • repo
  • admin:repo_hook
  • admin:org_hook

Expose the generated access token in the GITHUB_TOKEN environmental variable in your local and/or CI environment. This tool uses the GITHUB_TOKEN variable to communicate with GitHub on your behalf: read and write releases, post comments on relevant issues, etc.

Create a release

Commit and push your changes following the Conventional Commit message structure. Once done, run the following command to generate the next release automatically:

release publish

Congratulations! 🎉 You've successfully published your first release!

Configuration

This tool expects a configuration file at ossjs.release.config.js. The configuration file must export an object of the following shape:

{
  /**
   * The publishing script to run.
   * @example "npm publish"
   */
  script: string
}

API

publish

Publishes a new version of the package.

Options

Option name Type Description
--dry-run, -d boolean Creates a release in a dry-run mode. Note: this still requires a valid GITHUB_TOKEN environmental variable, as the dry-run mode will perform read operations on your repository.

Example

release publish

notes

Generates release notes and creates a new GitHub release for the given release tag.

This command is designed to recover from a partially failed release process, as well as to generate changelogs for old releases.

  • This command requires an existing (merged) release tag;
  • This command accepts past release tags;
  • This command has no effect if a GitHub release for the given tag already exists.

Arguments

Argument name Type Description
tag string Tag name of the release.

Example

# Generate release notes and create a GitHub release
# for the release tag "v1.0.3".
release notes v1.0.3

show

Displays information about a particular release.

Release information includes the following:

  • Commit associated with the release tag;
  • Release status (public/draft/unpublished);
  • GitHub release URL if present.

Arguments

Argument name Type Description
tag string (Optional) Tag name of the release to show.

Example

# Display info about the latest release.
release show
# Display info about a specific release.
release show v0.19.2

Recipes

This tool exposes a CLI which you can use with any continuous integration providers. No need to install actions, configure things, and pray for it to work.

{
  "name": "my-package",
  "scripts": {
    "release": "release publish"
  }
}

GitHub Actions

Before you proceed, make sure you've generated GitHub Personal Access Token. Create a new repository/organization secret called CI_GITHUB_TOKEN and use your Personal Access Token as the value for that secret.

You will be using secrets.CI_GITHUB_TOKEN instead of the default secrets.GITHUB_TOKEN in the workflow file in order to have correct GitHub permissions during publishing. For example, your Personal Access Token will allow for Release to push release commits/tags to protected branches, while the default secrets.GITHUB_TOKEN will not.

# .github/workflows/release.yml
name: release
on:
  push:
    branches: [main]
jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          # Fetch the entire commit history to include all commits.
          # By default, "actions/checkout" checks out the repository
          # at the commit that's triggered the workflow. This means
          # that the "@ossjs/release" may not be able to read older
          # commits that may affect the next release version number.
          fetch-depth: 0

          # Provide your custom "CI_GITHUB_TOKEN" secret that holds
          # your GitHub Personal Access Token.
          token: ${{ secrets.CI_GITHUB_TOKEN }}

      - uses: actions/setup-node@v3
        with:
          always-auth: true
          registry-url: https://registry.npmjs.org

      # Configure the Git user that'd author release commits.
      - name: Setup Git
        run: |
          git config --local user.name "GitHub Actions"
          git config --local user.email "[email protected]"

      - run: npm ci
      - run: npm test

      - run: npm run release
        with:
          # Set the "GITHUB_TOKEN" environmental variable
          # required by "@ossjs/release" to communicate with GitHub.
          GITHUB_TOKEN: ${{ secrets.CI_GITHUB_TOKEN }}

          # Set the "NODE_AUTH_TOKEN" environmental variable
          # that "actions/setup-node" uses as the "_authToken"
          # in the generated ".npmrc" file to authenticate
          # publishing to NPM registry.
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

Usage with Yarn

Running yarn publish will prompt you for the next release version. Use the --new-version option and provide it with the RELEASE_VERSION environmental variable injected by Release that indicates the next release version based on your commit history.

// ossjs.release.config.js
module.exports = {
  script: 'yarn publish --new-version $RELEASE_VERSION',
}

Yarn also doesn't seem to respect the NODE_AUTH_TOKEN environment variable. Please use the NPM_AUTH_TOKEN variable instead:

- run: npm run release
  with:
    GITHUB_TOKEN: ${{ secrets.CI_GITHUB_TOKEN }}

    # Use the "NPM_AUTH_TOKEN" instead of "NODE_AUTH_TOKEN".
    NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

Comparison

Below you see how Release compares to other tools. Keep in mind that I'm only comparing how those tools work by default because that's the only thing I care about. Unlike Release, other tools here can satisfy different use-cases through configuration, which is both a blessing and a curse.

Release Semantic Release Auto Changesets
First-class citizen CLI Commit Pull request (labels) Changeset
Derives next version from commits
Creates a GitHub release
Creates a release commit in Git 1
Comments on relevant GitHub issues
Comments on relevant GitHub pull requests ?
Reverts tags/commits if publishing fails ? ?
Supports monorepos
Supports dry run

1 - requires additional plugins.

Comments
  • Bump @types/mocha from 9.0.0 to 9.1.0

    Bump @types/mocha from 9.0.0 to 9.1.0

    Bumps @types/mocha from 9.0.0 to 9.1.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 2
  • Bump shx from 0.3.3 to 0.3.4

    Bump shx from 0.3.3 to 0.3.4

    Bumps shx from 0.3.3 to 0.3.4.

    Changelog

    Sourced from shx's changelog.

    Change Log

    Unreleased

    Full Changelog

    Closed issues:

    • New release with ShellJS v0.8.4 #185

    Merged pull requests:

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 2
  • Bump mocha from 9.1.3 to 9.2.2

    Bump mocha from 9.1.3 to 9.2.2

    Bumps mocha from 9.1.3 to 9.2.2.

    Release notes

    Sourced from mocha's releases.

    v9.2.2

    9.2.2 / 2022-03-11

    Please also note our announcements.

    :bug: Fixes

    :nut_and_bolt: Other

    v9.2.1

    9.2.1 / 2022-02-19

    Please also note our announcements.

    :bug: Fixes

    v9.2.0

    9.2.0 / 2022-01-24

    Please also note our announcements.

    :tada: Enhancements

    :nut_and_bolt: Other

    v9.1.4

    9.1.4 / 2022-01-14

    Please also note our announcements.

    :bug: Fixes

    :nut_and_bolt: Other

    ... (truncated)

    Changelog

    Sourced from mocha's changelog.

    9.2.2 / 2022-03-11

    :bug: Fixes

    :nut_and_bolt: Other

    9.2.1 / 2022-02-19

    :bug: Fixes

    9.2.0 / 2022-01-24

    :tada: Enhancements

    :nut_and_bolt: Other

    9.1.4 / 2022-01-14

    :bug: Fixes

    :nut_and_bolt: Other

    Commits
    • 24b5243 build(v9.2.2): release
    • 22a1560 build(v9.2.2): update CHANGELOG [ci skip]
    • 632e602 chore: update dependencies (#4843)
    • 241964b fix: wrong error thrown while loading reporter (#4842)
    • 22f9306 fix(dry-run): potential call-stack crash with 'dry-run' option (#4839)
    • 547ffd7 build(v9.2.1): release
    • ca7432a build(v9.2.1): update CHANGELOG [ci skip]
    • 86305cf fix: wrong error thrown while loading config files (#4832)
    • 11c4560 fix: configurable max diff size (#4799)
    • 509938d doc: fix to show sponsors in narrow view (#4793)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 2
  • Bump chai from 4.3.4 to 4.3.6

    Bump chai from 4.3.4 to 4.3.6

    Bumps chai from 4.3.4 to 4.3.6.

    Release notes

    Sourced from chai's releases.

    v4.3.6

    Update loupe to 2.3.1

    v4.3.5

    • build chaijs fca5bb1
    • build(deps-dev): bump codecov from 3.1.0 to 3.7.1 (#1446) 747eb4e
    • fix package.json exports 022c2fa
    • fix: package.json - deprecation warning on exports field (#1400) 5276af6
    • feat: use chaijs/loupe for inspection (#1401) (#1407) c8a4e00

    https://github.com/chaijs/chai/compare/v4.3.4...v4.3.5

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 2
  • Bump @oclif/plugin-plugins from 2.0.11 to 2.1.0

    Bump @oclif/plugin-plugins from 2.0.11 to 2.1.0

    Bumps @oclif/plugin-plugins from 2.0.11 to 2.1.0.

    Release notes

    Sourced from @​oclif/plugin-plugins's releases.

    v2.1.0

    2.1.0 (2022-01-28)

    Features

    v2.0.12

    2.0.12 (2022-01-06)

    Bug Fixes

    Changelog

    Sourced from @​oclif/plugin-plugins's changelog.

    2.1.0 (2022-01-28)

    Features

    2.0.12 (2022-01-06)

    Bug Fixes

    Commits
    • b87acb2 chore(release): 2.1.0 [ci skip]
    • e7da757 chore: update circle config
    • 734b552 feat: remove cli-ux (#405)
    • f889267 Merge pull request #404 from oclif/dependabot-npm_and_yarn-follow-redirects-1...
    • ff200af chore(deps): bump follow-redirects from 1.14.4 to 1.14.7
    • 7f3199f Merge pull request #403 from oclif/dependabot-npm_and_yarn-shelljs-0.8.5
    • 4d434ed chore(deps): bump shelljs from 0.8.4 to 0.8.5
    • 1da8317 chore(release): 2.0.12 [ci skip]
    • dcc0cd5 fix: bump @​oclif/core (#402)
    • 0c2021d Merge pull request #337 from oclif/dependabot-npm_and_yarn-types-fs-extra-9.0.13
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 2
  • Bump typescript from 4.5.3 to 4.6.3

    Bump typescript from 4.5.3 to 4.6.3

    Bumps typescript from 4.5.3 to 4.6.3.

    Release notes

    Sourced from typescript's releases.

    TypeScript 4.6.3

    This release includes fixes for

    For the complete list of fixed issues, check out the

    Downloads are available on:

    TypeScript 4.6.2

    For release notes, check out the release announcement.

    For the complete list of fixed issues, check out the

    Downloads are available on:

    TypeScript 4.6 RC

    For release notes, check out the release announcement.

    For the complete list of fixed issues, check out the

    Downloads are available on:

    TypeScript 4.6 Beta

    For release notes, check out the release announcement.

    For the complete list of fixed issues, check out the

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 2
  • Bump @types/chai from 4.3.0 to 4.3.1

    Bump @types/chai from 4.3.0 to 4.3.1

    Bumps @types/chai from 4.3.0 to 4.3.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 2
  • Bump ts-node from 10.4.0 to 10.7.0

    Bump ts-node from 10.4.0 to 10.7.0

    Bumps ts-node from 10.4.0 to 10.7.0.

    Release notes

    Sourced from ts-node's releases.

    v10.7.0

    Questions about this release? Ask in the official discussion thread: #1680

    Added

    • Adds --esm flag, option, and ts-node-esm binary (#1258, #1655)
      • Enables full esm support; no need for --loader nor NODE_OPTIONS
      • Use shebang #!/usr/bin/env ts-node-esm, run ts-node --esm, or add to your tsconfig.json: "ts-node": {"esm": true}

    Changed

    • Unflag ESM json modules on node >=17.5.0 (#1661, #1665) @​Jamesernator
      • no longer requires --experimental-json-modules
    • Lazy-load dependencies to improve startup responsiveness. (#1676)

    Fixed

    • Fixed bug where "compiler", "transpiler", and swc backend would not resolve relative to the tsconfig.json that declared them (#1662, #1655)
      • Enables reusable tsconfig.json shared via node module to include necessary dependencies

    https://github.com/TypeStrong/ts-node/compare/v10.6.0...v10.7.0 https://github.com/TypeStrong/ts-node/milestone/11

    v10.6.0

    Questions about this release? Ask in the official discussion thread: #1666

    Added

    • Adds workaround for extensionless entrypoints with ESM loader (#1649, #1654)
      • You can now combine tools such as mocha with --loader ts-node/esm, where previously node would throw [ERR_UNKNOWN_FILE_EXTENSION]
      • node has a bug where combining --loader with an extensionless entrypoint causes this error nodejs/node#33226
      • Some tools, for example mocha, have an extensionless entrypoint. (source, source)
      • Combining NODE_OPTIONS=--loader ts-node/esm with these tools causes this error. mochajs/mocha#4645
      • node intends to fix this bug in a future release: nodejs/node#41711
      • In the interim, we have implemented a workaround in ts-node.
    • Adds support for target "ES2022" in moduleTypes overrides (#1650)

    Fixed

    • Fixed bug where --swc and other third-party transpilers did not respect moduleTypes overrides (#1651, #1652, #1660)
    • Fixed bug where node flags were not preserved correctly in process.execArgv (#1657, #1658)
      • This affected child_process.fork(), since it uses process.execArgv to create a similar child runtime.
      • With this fix, child_process.fork() will preserve both node flags and ts-node hooks.
    • Fixed compatibility TypeScript 4.7's API changes (#1647, #1648)

    https://github.com/TypeStrong/ts-node/compare/v10.5.0...v10.6.0 https://github.com/TypeStrong/ts-node/milestone/9

    v10.5.0

    ... (truncated)

    Commits
    • f5b6e2d 10.7.0
    • 29a15bc update api-extractor report
    • e842c11 Rebuild readme for 10.7.0
    • 2163398 Merge docs into main for 10.7.0
    • 0792067 ts-node-esm / --esm to spawn a child process; decouple config loading fro...
    • f35a120 lazy-load dependencies to improve responsiveness when they aren't used (#1676)
    • 20cbbf5 Allow json modules to be resolved in Node >=17.5.0 without flag (#1665)
    • 30f03e1 10.6.0
    • 4e1af52 update apiextractor report prior to the release of 10.6.0
    • 89bde51 Issue #1651 followup (#1660)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 2
  • Bump @oclif/core from 1.0.10 to 1.7.0

    Bump @oclif/core from 1.0.10 to 1.7.0

    Bumps @oclif/core from 1.0.10 to 1.7.0.

    Release notes

    Sourced from @​oclif/core's releases.

    v1.7.0

    1.7.0 (2022-04-11)

    Features

    • move console.log to single class method (#400) (2ccb274)

    v1.6.4

    1.6.4 (2022-03-31)

    Bug Fixes

    v1.6.3

    1.6.3 (2022-03-23)

    Bug Fixes

    • use plugin alias if available (245d841)

    v1.6.2

    1.6.2 (2022-03-23)

    Bug Fixes

    • load correct plugin when using dynamic help (#394) (15c1fbe)

    v1.6.1

    1.6.1 (2022-03-17)

    Bug Fixes

    • set id to alias when adding commands (#390) (84ab722)

    v1.6.0

    1.6.0 (2022-03-14)

    Features

    • POC for allowing flexible command taxonomy (#376) (c47c6c6)

    v1.5.3

    1.5.3 (2022-03-09)

    ... (truncated)

    Changelog

    Sourced from @​oclif/core's changelog.

    1.7.0 (2022-04-11)

    Features

    • move console.log to single class method (#400) (2ccb274)

    1.6.4 (2022-03-31)

    Bug Fixes

    1.6.3 (2022-03-23)

    Bug Fixes

    • use plugin alias if available (245d841)

    1.6.2 (2022-03-23)

    Bug Fixes

    • load correct plugin when using dynamic help (#394) (15c1fbe)

    1.6.1 (2022-03-17)

    Bug Fixes

    • set id to alias when adding commands (#390) (84ab722)

    1.6.0 (2022-03-14)

    Features

    • POC for allowing flexible command taxonomy (#376) (c47c6c6)

    1.5.3 (2022-03-09)

    Bug Fixes

    • rid core of transient refs to cli-ux (#379) (a593a27)

    1.5.2 (2022-03-04)

    ... (truncated)

    Commits
    • 9ab87d3 chore(release): 1.7.0 [ci skip]
    • 2ccb274 feat: move console.log to single class method (#400)
    • a4b83e6 chore(release): 1.6.4 [ci skip]
    • 8ecc8f4 fix: dynamic help (#395)
    • 8ca7c9b chore(release): 1.6.3 [ci skip]
    • 245d841 fix: use plugin alias if available
    • 8c7c44d chore(release): 1.6.2 [ci skip]
    • 15c1fbe fix: load correct plugin when using dynamic help (#394)
    • 5a4a27b chore(release): 1.6.1 [ci skip]
    • 84ab722 fix: set id to alias when adding commands (#390)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 2
  • Bump @types/node from 16.11.12 to 16.11.27

    Bump @types/node from 16.11.12 to 16.11.27

    Bumps @types/node from 16.11.12 to 16.11.27.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 2
  • Bump @oclif/plugin-help from 5.1.10 to 5.1.12

    Bump @oclif/plugin-help from 5.1.10 to 5.1.12

    Bumps @oclif/plugin-help from 5.1.10 to 5.1.12.

    Release notes

    Sourced from @​oclif/plugin-help's releases.

    v5.1.12

    5.1.12 (2022-03-07)

    Bug Fixes

    v5.1.11

    5.1.11 (2022-02-01)

    Bug Fixes

    Changelog

    Sourced from @​oclif/plugin-help's changelog.

    5.1.12 (2022-03-07)

    Bug Fixes

    5.1.11 (2022-02-01)

    Bug Fixes

    Commits
    • 3b8ecdc chore(release): 5.1.12 [ci skip]
    • d1b24b0 fix: types package.json (#375)
    • bc501f1 Merge pull request #370 from oclif/dependabot-npm_and_yarn-oclif-2.5.0
    • 2bfc643 chore(deps-dev): bump oclif from 2.4.1 to 2.5.0
    • e6e3010 Merge pull request #371 from oclif/dependabot-npm_and_yarn-typescript-4.6.2
    • 6644f5d chore(deps-dev): bump typescript from 4.5.5 to 4.6.2
    • a9c5155 Merge pull request #372 from oclif/dependabot-npm_and_yarn-oclif-test-2.1.0
    • dc7bb8e chore(deps-dev): bump @​oclif/test from 2.0.3 to 2.1.0
    • 5cce15c Merge pull request #373 from oclif/dependabot-npm_and_yarn-oclif-core-1.3.6
    • 26e69cc chore(deps): bump @​oclif/core from 1.3.0 to 1.3.6
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 2
Releases(v0.4.0)
  • v0.4.0(Sep 17, 2022)

  • v0.3.2(Jul 24, 2022)

  • v0.3.1(Jul 22, 2022)

    v0.3.1 (2022-07-22)

    Bug Fixes

    • createReleaseTag: only push the tag being created right now (#39) (dcfa47c354ba446e09c82278d3aa2cb67d606cfe)
    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(May 12, 2022)

    v0.3.0 (2022-05-12)

    Features

    • getReleaseNotes: add "BREAKING CHANGES" section (#28) (a586889238e859c090a63f68b65a4176d3775f5b)

    Bug Fixes

    • getReleaseNotes: use "YYYY-MM-DD" date format (#27) (5009e241d74ffe1ed4cb0714097c298f2b3650a9)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.2(May 11, 2022)

    v0.2.2 (11/05/2022)

    Bug Fixes

    • validateAccessToken: improve error message (#25) (4c5cf7aac5623f876164811f9d0f118336370560)
    • getReleaseRefs: support issues without body (#24) (dd5ff304b8bdbf1da6138fa8685b34d01a2a9248)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.1(May 8, 2022)

  • v0.2.0(May 8, 2022)

  • v0.1.1(May 8, 2022)

    v0.1.1 (08/05/2022)

    Features

    • add "setNpmAuthToken" function (9b9e63508d473298e542bd8ae12e780760e1863b)
    • parseCommits: include footnote (96e640b3d86789e8752c30c0bf43bba6561edc48)
    • publish: support dry-run mode (#16) (41a3afe0066a1b61a12a3ccc364acf17c11b89ed)
    • demand "ossjs.release.config.js" config file (bae12426afb65fe78f6e2fea88ac694cbac2874a)
    • publish: comment on github issues (#15) (6138e4a9aa56c454d4c23f04b2c5f84e9ebc7219)
    • add "show" command (#14) (4a57076889454b4530822d9b772a92b98a805044)
    • use "pino" logger (e21f79ed2475de84390d683bffb51a15f05a886c)
    • getReleaseNotes: include commit hash in release item (5b46649908d14ba2b05ed8f96cfb14228f59cbc3)
    • set tag format to "v{version}" (ec351f5c2d0297cb2d49605d9c5a1850ff9b76ae)
    • stash and pop changes during revert (e8d1bcbc42d1064199bd18f6c2ddd64f07463eb3)
    • getRelease: add text response in errors (d3fcb1c246e914dbb9ed0505701ece3c926d4397)
    • revert changes in case of errors (b794b17ed91d54ae6443d0c5a838885b78e2ab5a)
    • push release to github (c6900c280230fa640f8746f4a8a788a7ef3d012e)
    • commit, tag, and push release (bec6c20f7c6a8e980483a89c96ae2fbd3d5e9ea5)

    Bug Fixes

    • publish: forward "process.env" to publish script (b2f488cd4bd22a4ccfcf7f18bee98422ea84a66e)
    • publish: print release script env, errors (e0be17ef22c30449ab740f892ba8e42121c8cc44)
    • publish: fix skip comments indent (02114bd360c995c8768b09611e924a4087bb3c0d)
    • publish: list commit has first (373696c1bf73b52d9cb03fe7d3ca63660133b18b)
    • getTags: list only merged tags (5f5867c5139203b47314d449fe06270cc2344e71)
    • publish: improve commits/parsed commits logs (044901f8365fd9463bc732725f6b5a2dc9ff7d2b)
    • getCommits: list all commits without "after" (9425d4066a0b620dc3264586e914fa5481720a90)
    • parseOriginUrl: support the lack of ".git" suffix (96872d4ab07c991f8ed0ee2f694846488aed5ea8)
    • publish: log version over tag (23b6b2ee8144ffd898326a5e3965358257e2d130)
    • commit: use current git user (c7c529282c5c5dfabb435cd6b00603d934d15a93)
    • createRelease: use correct import for logger (28d8970b26627d90eb0967e32c7ed925f209a6af)
    • use [email protected] as commit author (e03ba0b9e106187c293e8985d2217dee27d53dcf)
    • getReleaseNotes: use tag in the release heading (9baa1fadbc8b3b2840d644851463d1247c5e05d6)
    • getReleaseNotes: retain strict order of sections (b4e32f2b64cf3bda5acf8629af6316eb3ef241b0)
    • createRelease: return html_url of the release (9b454fb51b31dc2d145b08ec4cf0b0c181fd4aa2)
    • push tags right away (7b9200cb7573209a6d495311dbe23502dc8de676)
    • handle push errors (eff317a215e7a2540cd415517f1fb51d3095a4de)
    • push as the last thing in the pipeline (d0540d9b0d5f0db9b7e42616ef8ac02ef108e5d6)
    • createRelease: do not exit the process (cac6af7d7929e8a003fe2d6006afb928ecf0b1b8)
    Source code(tar.gz)
    Source code(zip)
Owner
Open Source: JavaScript
Tools for developing, testing, and releasing your open-source software.
Open Source: JavaScript
A new generation GUI automation framework for Web and Desktop Application Testing and Automation.

Clicknium-docs Clicknium is a new generation GUI automation framework for all types of applications. It provides easy and smooth developer experience

null 109 Dec 19, 2022
Load twemoji with a predictable url.

twemoji-image-functions Cloud Functions which hosts twemoji with a predictable url. Why? You can get any twemoji urls without parsing DOM or text usin

catnose 8 Mar 26, 2022
Mailbox is the predictable states & transitions container for actors.

Mailbox (turns XState Machine into a REAL Actor) Mailbox is an NPM module built on top of the XState machine, by adding a message queue to the XState

Huan (李卓桓) 40 Aug 24, 2022
Command line tool to interact with exist-db instances (pre-release)

xst [ĭg-zĭst′] Command line tool to interact with exist-db instances. Built on top of @existdb/node-exist. Installation Until this package is official

Juri Leino 0 Aug 4, 2022
An opinionated tool to create beautiful, lightweight, static HTML/CSS practice quizzes

Taoquiz An opinionated tool to create beautiful, lightweight, static HTML/CSS practice quizzes "Perfection is achieved, not when there is nothing more

null 8 Mar 28, 2022
Android ROM device support and bringup tool, designed for maximum automation and speed.

adevtool Android ROM device support and bringup tool, designed for maximum automation and speed. Features This tool automates the following tasks for

Danny Lin 186 Dec 21, 2022
An unofficial companion tool created for use alongside PhotoPrism to enable API endpoints and automation.

PhotoPrism Helper PhotoPrism Helper is an unofficial companion tool created for use alongside PhotoPrism. This project isn't associated with the Photo

Ryan Miller 9 Dec 25, 2022
A revolutionary open-source automation tool

DopplerTask - Task Automation DopplerTask is a revolutionary open-source software that allows you to easily automate tasks. Whether it’s a bunch of ba

DopplerTask 364 Dec 31, 2022
Semantic Release plugin to create and publish NuGet packages.

semantic-release-nuget semantic-release plugin to create and publish a NuGet package. Step Description verifyConditions Verify the presence of the NUG

DroidSolutions 6 Jan 2, 2023
Google Chrome release and version info as JSON (self updating)

chrome-versions Self updating repository to store Google Chrome release and version info as JSON. Windows macOS Linux Android TL;DR Use a CDN to fetch

berstend̡̲̫̹̠̖͚͓̔̄̓̐̄͛̀͘ 9 Dec 15, 2022
A simple lock-and-release eventually-consistent DB to be consumed by multi-threaded applications in node.

worsen - a persistence store for quick prototyping A simple lock-and-release eventually-consistent DB to be consumed by multi-threaded applications in

Aniket Biprojit Chowdhury 2 Oct 1, 2022
Klecks is the official open-source release of the community-funded online painting app Kleki.

Klecks (German for "splash of color", pronounced "clex") is the official open-source release of the community-funded online painting app Kleki. Klecks

I paint, code and mess around. 74 Dec 27, 2022
The Blitz.js Recipe for installing @semantic-release/github.

semantic-release-github The Blitz.js Recipe for installing @semantic-release/github. blitz install custom-recipes/semantic-release-github -y More info

Custom Recipes 1 Apr 9, 2022
🚀 A GitHub action to publish a new release of the repository

Create a JavaScript Action using TypeScript Use this template to bootstrap the creation of a TypeScript action. ?? This template includes compilation

Clicampo 3 Nov 1, 2022
Crypto Basket - Free Blockchain Press Release

ADD YOUR CONTENT Upload all files to IPFS All non-IPFS links should be inside LINKS Sections Use markdown syntax How to add content to CryptoBasket ?

Money Mafia 14 Dec 15, 2022
The Space Pirates game is a demo made to celebrate the Babylon.js 5.0 Release.

Space Pirates This is the repository for the Space Pirates game demo for Babylon.js 5.0 Release. It contains assets and code so you can clone, learn a

Babylon.js 112 Dec 26, 2022
This project is an attempt at recreating the WebGL animation featured in the 2021 Linear release page.

Linear Vaporwave Three.js scene This project is an attempt at recreating the WebGL animation featured in the 2021 Linear release page. Demo Head over

Maxime Heckel 31 Dec 28, 2022
Make a release for Jitsi test browser page (minify js/css files, pack the app in one file).

JitsiTestBrowserTool This tools allows you to make a release for Jitsi test browser page (minify js/css files, pack the app in one file). /!\ Not work

GIP Renater 4 Aug 15, 2022