# @crystal-ball/semantic-release-base

> 🔮 Projects - Semantic Release configs

Latest version **2.40.0** (published 2022-09-17) · ISC license · 0 weekly downloads

## Install

```sh
npm install @crystal-ball/semantic-release-base
pnpm add @crystal-ball/semantic-release-base
yarn add @crystal-ball/semantic-release-base
bun add @crystal-ball/semantic-release-base
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.40.0 |
| Published | 2022-09-17 |
| First published | 2019-05-04 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 8 |
| Unpacked size | 68.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | dhedgecock, evrowe, chadtmiller, crystal-ball-ci |
| Keywords | crystal-ball, semantic-release |

## Links

- npm: https://www.npmjs.com/package/@crystal-ball/semantic-release-base
- Repository: https://github.com/crystal-ball/semantic-release-base
- Homepage: https://github.com/crystal-ball/semantic-release-base#readme
- Issues: https://github.com/crystal-ball/semantic-release-base/issues
- npm.io page: https://npm.io/package/@crystal-ball/semantic-release-base

## Dependencies (8)

- [semantic-release](https://npm.io/package/semantic-release.md) 19.0.5
- [@semantic-release/git](https://npm.io/package/@semantic-release/git.md) 10.0.1
- [@semantic-release/npm](https://npm.io/package/@semantic-release/npm.md) 9.0.1
- [@semantic-release/github](https://npm.io/package/@semantic-release/github.md) 8.0.6
- [@semantic-release/changelog](https://npm.io/package/@semantic-release/changelog.md) 6.0.1
- [conventional-changelog-eslint](https://npm.io/package/conventional-changelog-eslint.md) 3.0.9
- [@semantic-release/commit-analyzer](https://npm.io/package/@semantic-release/commit-analyzer.md) 9.0.2
- [@semantic-release/release-notes-generator](https://npm.io/package/@semantic-release/release-notes-generator.md) 10.0.3

## Recent versions

- 2.40.0 (latest) — 2022-09-17
- 2.39.0 — 2022-06-18
- 2.38.0 — 2022-04-09
- 2.37.0 — 2022-03-05
- 2.36.0 — 2022-01-23
- 2.35.0 — 2022-01-23
- 2.34.0 — 2021-09-24
- 2.33.0 — 2021-08-16
- 2.32.0 — 2021-05-16
- 2.31.0 — 2021-04-09
- 2.30.0 — 2021-04-04
- 2.29.0 — 2021-02-26
- 2.28.0 — 2021-02-17
- 2.27.0 — 2021-02-11
- 2.26.0 — 2021-02-05
- … 38 more at https://npm.io/package/@crystal-ball/semantic-release-base/versions

## README

<div align="right">
  <h1>
    <img height=75 src="./docs/assets/readme-header.png" alt="Crystal Ball Projects documentation"/>
  </h1>

  <!-- prettier-ignore-start -->
  <a href="https://www.npmjs.com/package/@crystal-ball/semantic-release-base">
    <img src="https://img.shields.io/npm/v/@crystal-ball/semantic-release-base" alt="Package version" valign="text-top"/>
  </a>
  <a href="https://www.npmjs.com/package/@crystal-ball/semantic-release-base">
    <img src="https://img.shields.io/npm/dt/@crystal-ball/semantic-release-base?color=blue" alt="NPM downloads" valign="text-top" />
  </a>
  <a href="https://github.com/crystal-ball/semantic-release-base/actions?workflow=CI%2FCD">
    <img src="https://github.com/crystal-ball/semantic-release-base/workflows/CI%2FCD/badge.svg" alt="Build status" valign="text-top" />
  </a>
  <a href="https://snyk.io/test/github/crystal-ball/semantic-release-base?targetFile=package.json">
    <img src="https://snyk.io/test/github/crystal-ball/semantic-release-base/badge.svg?targetFile=package.json" alt="Known vulnerabilities" valign="text-top" />
  </a>
  <a href="https://codeclimate.com/github/crystal-ball/semantic-release-base/test_coverage">
    <img src="https://api.codeclimate.com/v1/badges/49c5480dedecf35fbd72/test_coverage" alt="Test coverage" valign="text-top" />
  </a>
  <a href="https://codeclimate.com/github/crystal-ball/semantic-release-base/maintainability">
    <img src="https://api.codeclimate.com/v1/badges/49c5480dedecf35fbd72/maintainability" alt="Maintainability" valign="text-top" />
  </a>
  <code>:status&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>

  <br />
  <a href="https://renovatebot.com/">
    <img src="https://img.shields.io/badge/Renovate-enabled-32c3c2.svg" alt="Renovate" valign="text-top" />
  </a>
  <a href="https://commitizen.github.io/cz-cli/">
    <img src="https://img.shields.io/badge/Commitizen-%E2%9C%93%20friendly-10e67b" alt="Commitizen friendly" valign="text-top" />
  </a>
  <a href="https://github.com/crystal-ball/semantic-release-base#workspaces/-projects-5b88b5c9af3c0a2186966767/board?repos=184947287">
    <img src="https://img.shields.io/badge/ZenHub-managed-5e60ba.svg" alt="ZenHub" valign="text-top" />
  </a>
  <a href="https://semantic-release.gitbook.io/semantic-release/">
    <img src="https://img.shields.io/badge/%F0%9F%93%A6%F0%9F%9A%80-semantic_release-e10079.svg" alt="Semantic Release" valign="text-top"/>
  </a>
  <a href="./CODE_OF_CONDUCT.md">
    <img src="https://img.shields.io/badge/Contributor%20Covenant-v2.0-de8cf2.svg" alt="Contributor Covenant" valign="text-top" />
  </a>
  <code>:integrations</code>

  <br />
  <a href="https://github.com/crystal-ball">
    <img src="https://img.shields.io/badge/%F0%9F%94%AE%E2%9C%A8-contains_magic-D831D7.svg" alt="Contains magic" valign="text-top" />
  </a>
  <a href="https://github.com/crystal-ball/crystal-ball.github.io">
    <img src="https://img.shields.io/badge/%F0%9F%92%96%F0%9F%8C%88-full_of_love-F5499E.svg" alt="Full of love" valign="text-top" />
  </a>
  <code>:flair&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>
  <!-- prettier-ignore-end -->

  <h1></h1>
  <br />
  <p align="center">
    <em>Fully automated version management and package publishing for 🔮 packages</em>
  </p>
  <br />
</div>

---

Package contains the shared base configs for automated release management with
Semantic Release. Included configurations will:

1. Analyze commits using the ESLint commit standards to determine a semver
   version
1. Generate release notes for the release
1. Generate changelog updates for the release
1. Update the `package.json` version and publish to NPM
1. Push a release commit and tag
1. Add a comment to Github issues and PRs resolved in the release

## Setup

_1. Install_

```sh
npm i -D @crystal-ball/semantic-release-base
```

_2. Update `package.json`_

```
{
  "release": {
    "extends": ["@crystal-ball/semantic-release-base"]
  }
}
```

## CI/CD configuration

Releases should be configured to trigger on change to default branch in CI/CD.
Configurations must be set as environment values including:

- `GH_TOKEN` Github token
- `NPM_TOKEN` NPM token

_Configuring Github Actions_

```yml
jobs:
  ci-cd:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: Setup Node.js
        uses: actions/setup-node@v1
        with:
          node-version: '10'
      - name: Install
        run: npm install
        env:
          CI: true
      - name: Test
        run: npm test
      - name: Release
        if: success() && github.ref == 'refs/heads/main'
        run: npx semantic-release
        env:
          GH_TOKEN: ${{ secrets.SEMANTIC_GH_TOKEN }}
          NPM_TOKEN: ${{ secrets.SEMANTIC_NPM_TOKEN }}
```

_Configuring Travis_

```yml
deploy:
  provider: script
  skip_cleanup: true
  script:
    - npx semantic-release
```

## Changelog generation

- Commits with breaking changes will create a notes section

## Included plugins

- [@semantic-release/commit-analyzer][]
- [@semantic-release/release-notes-generator][]
- [@semantic-release/changelog][]
- [@semantic-release/git][]
- [@semantic-release/github][]
- [@semantic-release/npm][]

 <!-- Links -->

[@semantic-release/commit-analyzer]:
  https://github.com/semantic-release/commit-analyzer
[@semantic-release/release-notes-generator]:
  https://github.com/semantic-release/release-notes-generator
[@semantic-release/changelog]: https://github.com/semantic-release/changelog
[@semantic-release/git]: https://github.com/semantic-release/git
[@semantic-release/github]: https://github.com/semantic-release/github
[@semantic-release/npm]: https://github.com/semantic-release/npm

---
_Source: https://npm.io/package/@crystal-ball/semantic-release-base · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
