{"id":13602434,"url":"https://github.com/jscutlery/semver","last_synced_at":"2026-04-16T08:00:46.796Z","repository":{"id":37019063,"uuid":"318516833","full_name":"jscutlery/semver","owner":"jscutlery","description":"Nx plugin to automate semantic versioning and CHANGELOG generation.","archived":false,"fork":false,"pushed_at":"2026-04-10T11:38:05.000Z","size":26505,"stargazers_count":767,"open_issues_count":169,"forks_count":93,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-04-10T13:26:58.203Z","etag":null,"topics":["automation","conventional-commits","monorepo","nx-plugin","semver","versioning"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jscutlery.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["edbzn"]}},"created_at":"2020-12-04T12:56:03.000Z","updated_at":"2026-04-10T11:34:44.000Z","dependencies_parsed_at":"2024-02-19T05:24:05.038Z","dependency_job_id":"5218d0ff-6fcc-4f48-8d03-ae685ac0efaa","html_url":"https://github.com/jscutlery/semver","commit_stats":{"total_commits":1729,"total_committers":40,"mean_commits":43.225,"dds":0.6940427993059572,"last_synced_commit":"bc97db391c10a8bdd8d773e4a325ba9c768d322b"},"previous_names":["jscutlery/nx-plugin-semver"],"tags_count":125,"template":false,"template_full_name":null,"purl":"pkg:github/jscutlery/semver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscutlery%2Fsemver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscutlery%2Fsemver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscutlery%2Fsemver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscutlery%2Fsemver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jscutlery","download_url":"https://codeload.github.com/jscutlery/semver/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscutlery%2Fsemver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31876852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T07:36:03.521Z","status":"ssl_error","status_checked_at":"2026-04-16T07:35:53.576Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","conventional-commits","monorepo","nx-plugin","semver","versioning"],"created_at":"2024-08-01T18:01:23.090Z","updated_at":"2026-04-16T08:00:46.789Z","avatar_url":"https://github.com/jscutlery.png","language":"TypeScript","funding_links":["https://github.com/sponsors/edbzn"],"categories":["automation","Developer Tools","TypeScript"],"sub_categories":["Editors \u0026 Plugins"],"readme":"\u003ca href=\"https://www.npmjs.com/package/@jscutlery/semver\" rel=\"nofollow\"\u003e\n  \u003cimg src=\"https://badgen.net/npm/v/@jscutlery/semver\" alt=\"@jscutlery/semver NPM package\"\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://codecov.io/gh/jscutlery/semver\" rel=\"nofollow\"\u003e\n  \u003cimg src=\"https://codecov.io/gh/jscutlery/semver/branch/main/graph/badge.svg?token=6LFY2EJ6UG\" alt=\"@jscutlery/semver coverage status\" /\u003e\n\u003c/a\u003e\n\n# @jscutlery/semver\n\n**Nx plugin for versioning** using [SemVer](https://semver.org/) and **CHANGELOG generation** powered by [Conventional Commits](https://conventionalcommits.org).\n\n## Setup\n\n### Install\n\n```sh\nnpm install -D @jscutlery/semver\nnx g @jscutlery/semver:install\n```\n\nThis package allows you to manage your Nx workspace using one of two modes: **Synced** or **Independent**.\n\n#### Independent mode (default)\n\nAllow multiple projects to be versioned independently. This way you release only what you want and consumers don't get updates they don't need. This allows small, rapid and incremental adoption of your packages.\n\n#### Synced mode\n\nAllow multiple projects to be versioned in a synced/locked mode. Use this if you want to automatically tie all package versions together. This mode is useful when you are working with only one product. One issue with this approach is that a major change in any project will result in all projects having a new major version.\n\n## Usage\n\n### Release\n\n#### Independent mode\n\nRelease project independently by running:\n\n```\nnx run my-project:version [...options]\n```\n\nYou can leverage the affected command to only version changed packages:\n\n```\nnx affected --target version [...options]\n```\n\n#### Synced mode\n\nRelease workspace by running:\n\n```\nnx run workspace:version [...options]\n```\n\n#### When run, this executor does the following\n\n1. Retrieve the current version by looking at the last `git tag`.\n2. Bump `package.json` version based on the commits.\n3. Generates CHANGELOG based on the commits (uses [conventional-changelog-conventionalcommits](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-conventionalcommits) under the hood).\n4. Creates a new commit including the `package.json` file and updated CHANGELOG.\n5. Creates a new tag with the new version number.\n6. Pushes the version to the remote repository.\n7. Runs post-targets hook to publish the version on NPM, GitHub or GitLab.\n\n#### Available options\n\n| name                           | type               | default                 | description                                                                                                                                                     |\n| ------------------------------ | ------------------ | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **`--dryRun`**                 | `boolean`          | `false`                 | run with dry mode                                                                                                                                               |\n| **`--noVerify`**               | `boolean`          | `false`                 | skip git hooks                                                                                                                                                  |\n| **`--enforceAtomicPush`**      | `boolean`          | `false`                 | enforce an atomic push without retrying a non atomic one in case of failure                                                                                     |\n| **`--push`**                   | `boolean`          | `false`                 | push the release to the remote repository                                                                                                                       |\n| **`--syncVersions`**           | `boolean`          | `false`                 | lock/sync versions between projects                                                                                                                             |\n| **`--skipRootChangelog`**      | `boolean`          | `false`                 | skip generating root changelog                                                                                                                                  |\n| **`--skipProjectChangelog`**   | `boolean`          | `false`                 | skip generating project changelog                                                                                                                               |\n| **`--origin`**                 | `string`           | `'origin'`              | push against git remote repository                                                                                                                              |\n| **`--baseBranch`**             | `string`           | `'main'`                | push against git base branch                                                                                                                                    |\n| **`--changelogHeader`**        | `string`           | `undefined`             | custom Markdown header for changelogs                                                                                                                           |\n| **`--releaseAs`**              | `string`           | `undefined`             | specify the level of change ([details](https://github.com/jscutlery/semver#specify-the-level-of-change))                                                        |\n| **`--preid`**                  | `string`           | `undefined`             | specify the prerelease identifier (eg: alpha, beta) ([details](https://github.com/jscutlery/semver#specify-the-level-of-change))                                |\n| **`--tagPrefix`**              | `string`           | `undefined`             | specify the tag prefix ([details](https://github.com/jscutlery/semver#tag-prefix-customization))                                                                |\n| **`--postTargets`**            | `string[]`         | `[]`                    | specify the list of target to execute post-release ([details](https://github.com/jscutlery/semver#triggering-executors-post-release))                           |\n| **`--trackDeps`**              | `boolean`          | `false`                 | bump dependent packages (bump A if A depends on B) ([details](https://github.com/jscutlery/semver#tracking-dependencies))                                       |\n| **`--trackDepsWithReleaseAs`** | `boolean`          | `false`                 | enables `--trackDeps` when using it with `--releaseAs`                                                                                                          |\n| **`--allowEmptyRelease`**      | `boolean`          | `false`                 | force a patch increment even if library source didn't change                                                                                                    |\n| **`--skipCommitTypes`**        | `string[]`         | `[]`                    | treat commits with specified types as non invoking version bump ([details](https://github.com/jscutlery/semver#skipping-release-for-specific-types-of-commits)) |\n| **`--skipCommit`**             | `boolean`          | `false`                 | skips generating a new commit, leaves all changes in index, tag would be put on last commit ([details](https://github.com/jscutlery/semver#skipping-commit))    |\n| **`--skipStage`**              | `boolean`          | `false`                 | skips add to git stage, useful when you want to run nx cmd in parallel ([details](https://github.com/jscutlery/semver#skipping-stage))                          |\n| **`--commitMessageFormat`**    | `string`           | `undefined`             | format the auto-generated message commit ([details](https://github.com/jscutlery/semver#commit-message-customization))                                          |\n| **`--preset`**                 | `string \\| object` | `'conventionalcommits'` | customize Conventional Changelog options ([details](https://github.com/jscutlery/semver#customizing-conventional-changelog))                                    |\n| **`--commitParserOptions`**    | `object`           | `undefined`             | customize the commit parserConfig ([details](https://github.com/jscutlery/semver#customizing-the-commit-parser))                                                |\n\n## Guides\n\n### Overwrite default configuration\n\nYou can customize the default configuration using the definition file:\n\n```json\n{\n  \"executor\": \"@jscutlery/semver:version\",\n  \"options\": {\n    \"baseBranch\": \"master\",\n    \"preset\": \"atom\",\n    \"tagPrefix\": \"{projectName}@\"\n  }\n}\n```\n\n### Customizing Conventional Changelog\n\nThis tool comes with a list of pre-configured presets:\n\n- [conventionalcommits](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-conventionalcommits) (default)\n- [angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular)\n\n\u003cdetails\u003e\n  \u003csummary\u003eComplete list of presets\u003c/summary\u003e\n  \n  - [conventionalcommits](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-conventionalcommits) (default)\n  - [angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular)\n  - [atom](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-atom)\n  - [codemirror](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-codemirror)\n  - [ember](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-ember)\n  - [eslint](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-eslint)\n  - [express](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-express)\n  - [jquery](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-jquery)\n  - [jshint](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-jshint)\n\u003c/details\u003e\n\nThe preset is highly configurable, following the [conventional-changelog-config-spec](https://github.com/conventional-changelog/conventional-changelog-config-spec). As an example, suppose you're using GitLab, rather than GitHub, you might modify the following variables:\n\n```json\n{\n  \"executor\": \"@jscutlery/semver:version\",\n  \"options\": {\n    \"preset\": {\n      \"commitUrlFormat\": \"{{host}}/{{owner}}/{{repository}}/commit/{{hash}}\",\n      \"compareUrlFormat\": \"{{host}}/{{owner}}/{{repository}}/compare/{{previousTag}}...{{currentTag}}\",\n      \"issueUrlFormat\": \"{{host}}/{{owner}}/{{repository}}/issues/{{id}}\",\n      \"types\": [\n        { \"type\": \"feat\", \"section\": \"✨ Features\" },\n        { \"type\": \"fix\", \"section\": \"🐞 Bug Fixes\" },\n        { \"type\": \"chore\", \"hidden\": true }\n      ]\n    }\n  }\n}\n```\n\n\u003e [!NOTE]\n\u003e When customizing a preset it will implicitly use the [conventionalcommits](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-conventionalcommits) preset and override the default settings with the given configuration.\n\nIt is possible to customize any preset by passing its name.\n\n```json\n{\n  \"executor\": \"@jscutlery/semver:version\",\n  \"options\": {\n    \"preset\": {\n      \"name\": \"angular\",\n      \"types\": [\n        { \"type\": \"feat\", \"section\": \"✨ Features\" },\n        { \"type\": \"fix\", \"section\": \"🐞 Bug Fixes\" }\n      ]\n    }\n  }\n}\n```\n\nSee the [conventional-changelog-config-spec](https://github.com/conventional-changelog/conventional-changelog-config-spec) for available\nconfiguration options.\n\n### Customizing the commit parser\n\nYou may customize the config for the commit parser. This can be helpful when you are using an adapted version of conventional commit for instance.\n\n```json\n{\n  \"executor\": \"@jscutlery/semver:version\",\n  \"options\": {\n    \"commitParserOptions\": {\n      \"headerPattern\": \"^([A-Z]{3,}-\\\\d{1,5}):? (chore|build|ci|docs|feat|fix|perf|refactor|test)(?:\\\\(([\\\\w-]+)\\\\))?\\\\S* (.+)$\",\n      \"headerCorrespondence\": [\"ticketReference\", \"type\", \"scope\", \"subject\"]\n    }\n  }\n}\n```\n\nSee the [conventional-commits-parse](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-commits-parser#options) specification for available configuration options.\n\n### Version calculation\n\nThis package is **tag-based**, which means it never reads the `package.json` to retrieve the current version. Instead, it looks for a tag matching the `--tagPrefix` (i.e `demo-x.y.z`). Then, if no tag is found it fallbacks to `0.0.0`, and calculates the initial version based on all changes since the first commit. In the other case, if there are matching tags, it retrieves the last one and calculates the new version from it.\n\n\u003e [!IMPORTANT]\n\u003e To detect a new version this package looks into the commit history and checks if any source files changed since the last version. Note that merge commits are ignored by the tool when calculating next version to bump.\n\nMajor zero version `0.x.y` is for initial development. Anything may change at any time so the consumer won't get any new minor version using the caret or tilde compatibility range, for instance version `0.3.1` won't be resolved if the consumer wants `^0.2.0`.\n\n#### Specify the level of change\n\nThe **`--releaseAs`** option allows you to release a project with a version that is incremented by a specified level.\n\nLevel can be one of `major`, `minor`, `patch`, `premajor`, `preminor`, `prepatch`, or `prerelease`, for instance:\n\n```\nnx run workspace:version --releaseAs=major\nnx run workspace:version --releaseAs=minor\nnx run workspace:version --releaseAs=patch\nnx run workspace:version --releaseAs=prerelease --preid=alpha\nnx run workspace:version --releaseAs=prerelease --preid=beta\n```\n\n#### Initial prerelease version\n\nWhen using the `--releaseAs=prerelease` option, the initial prerelease version takes into account the commit history to determine the recommended bump type. As an illustration, let's assume the current version is `1.0.0`, and the commit history includes the following:\n\n- **Commit 1:** `feat(my-project): abc`\n- **Commit 2:** `fix(my-project): def`\n\nRunning the following command:\n\n```bash\nnx version my-project --releaseAs=prerelease --preid=alpha\n```\n\nWould yield the version `1.1.0-alpha.0`. Subsequent executions of the command would result in incremented prerelease versions, such as `1.1.0-alpha.1`.\n\n### Tag prefix customization\n\nThe **`--tagPrefix`** option allows you to customize the tag prefix.\n\nIn sync mode only one tag is created for the whole workspace, the tag prefix is set to `v` by default, which is resolved for instance to `v0.0.1`.\n\nIn independent mode, the tag prefix uses the contextual project name, the default value is `{projectName}-` which is resolved for instance to `my-project-0.0.1`. Note that each project in the workspace is versioned with its tag.\n\n### Commit message customization\n\nThe **`--commitMessageFormat`** option allows you to customize the commit message. By default, the commit message is formatted as the following:\n\n```\nchore({projectName}): release version {version}\n```\n\nContextual variables resolved by this option:\n\n- `version` the current release version (for instance `1.0.0`)\n- `projectName` the project name to be versioned (for instance `my-project`)\n\nNote that it's the right place to add common keywords to skip CI workflows, for example: `[skip ci]` for GitHub, eg:\n\n```\nrelease: bump {projectName} to {version} [skip ci]\n```\n\n### Skipping release for specific types of commits\n\nTo avoid releasing a new version if something non-influencing on release was changed (for example, documentation), you can provide `skipCommitTypes` option.\nIn this case, any commit with a specified type would be ignored when calculating if there is a need to bump version.\nFor example, if you had only one commit from the last version:\n\n```\ndocs(project): update documentation about new feature\n```\n\nwould not cause a new release (because `--skipCommitTypes=docs,ci` was specified).\n\nAnd two commits:\n\n```\ndocs(project): update documentation about new feature\nfix(project): get rig of annoying bug\n```\n\nwould produce a patch bump.\n\n\u003e [!NOTE]\n\u003e Please keep in mind that changelog would be generated by [conventional-changelog](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular#type) which ignores some types by design (i.e. `docs`, `test` and others).\n\n### Skipping commit\n\nIn some cases, your release process relies only on tags and you don't want a new commit with version bumps and changelog updates to be made.\nTo achieve this, you can provide the `--skipCommit` flag and changes made by the library would stay in the index without committing.\nThe tag for the new version would be put on the last existing commit.\n\n### Skipping Stage\n\nIn case you want to run nx cmd in parallel, you can provide the `--skipStage` flag and it will not add to git stage - since that requires a git-lock, this has to be used together with `--skipCommit` and `--skipTag` and not with `--push`, all for the same reason they will require a git-lock.\n\n### Triggering executors post-release\n\nThe **`--postTargets`** option allows you to run targets post-release. This is particularly handful for publishing packages on a registry or scheduling any other task.\n\nHere is a configuration example using [`@jscutlery/semver:github`](https://github.com/jscutlery/semver/blob/main/packages/semver/src/executors/github/README.md) to create a GitHub Release and [`ngx-deploy-npm:deploy`](https://github.com/bikecoders/ngx-deploy-npm) to publish on NPM:\n\n```jsonc\n{\n  \"targets\": {\n    \"build\": {\n      /* ... */\n    },\n    \"version\": {\n      \"executor\": \"@jscutlery/semver:version\",\n      \"options\": {\n        \"push\": true,\n        \"postTargets\": [\"build\", \"npm\", \"github\"],\n      },\n    },\n    \"github\": {\n      \"executor\": \"@jscutlery/semver:github\",\n      \"options\": {\n        \"tag\": \"{tag}\",\n        \"notes\": \"{notes}\",\n      },\n    },\n    \"npm\": {\n      \"executor\": \"ngx-deploy-npm:deploy\",\n      \"options\": {\n        \"access\": \"public\",\n        \"distFolderPath\": \"dist/packages/my-package\",\n      },\n    },\n  },\n}\n```\n\nContextual variables resolved by this option:\n\n- `projectName` versioned project name\n- `version` semver version\n- `tag` formatted git tag\n- `notes` release notes\n- `previousTag` previous version tag\n- `dryRun` dry run mode\n\n\u003e [!NOTE]\n\u003e The specified targets are going to be executed as is, without triggering any dependencies. It will not trigger the target's `dependsOn` and Nx caching is not considered\n\n#### Built-in post-targets\n\n- [`@jscutlery/semver:github`](https://github.com/jscutlery/semver/blob/main/packages/semver/src/executors/github/README.md) GiHub Release Support\n- [`@jscutlery/semver:gitlab`](https://github.com/jscutlery/semver/blob/main/packages/semver/src/executors/gitlab/README.md) GitLab Release Support\n\n### Tracking dependencies\n\nThe **`--trackDeps`** option indicates that direct dependencies in the project's dependency graph should be taken into account when incrementing the\nversion. If no version-incrementing changes are present in the project but are present in one or more dependencies, then the project will receive a `patch`\nversion increment.\n\nIf you wish to track changes at any depth of your dependency graph, then you should do the following:\n\n1. Enable versioning for each project in the dependency graph\n2. Set the `trackDeps` option to `true` on each of the projects\n3. Make sure that `version` is run on projects in the right order by configuring `version`'s target dependencies in `nx.json`:\n\n```json\n{\n  \"targetDefaults\": {\n    \"version\": {\n      \"dependsOn\": [\"^version\"]\n    }\n  }\n}\n```\n\nThis setup will cause a cascade of version increments starting at the deepest changed dependency,\nthen continuing up the graph until the indicated project is reached.\nAdditionally, if used in conjunction with `nx run-many --all`, or `nx affected`,\nthen it will avoid attempting to version dependencies multiple times.\n\n\u003e [!WARNING]  \n\u003e Be aware that this feature has known [limitations](https://github.com/jscutlery/semver/issues/526).\n\n## CI/CD usage\n\n### GitHub Actions\n\nHere is an example running semver in a GitHub workflow:\n\n```yml\nname: release\n\non:\n  - workflow_dispatch\n\njobs:\n  release:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n      - name: Use Node.js\n        uses: actions/setup-node@v4\n        with:\n          node-version: '20'\n      - name: Setup Git\n        run: |\n          git config user.name \"GitHub Bot\"\n          git config user.email \"gituser@example.com\"\n      - run: pnpm install --frozen-lockfile\n      - name: Version\n        shell: bash\n        run: pnpm nx affected --base=last-release --target=version\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n      - name: Tag last-release\n        shell: bash\n        run: |\n          git tag -f last-release\n          git push origin last-release --force\n```\n\nNote that `secrets.GITHUB_TOKEN` is automatically provided by the GitHub Actions, you don't need to set up anything.\n\n### GitLab CI\n\nHere is an example running semver in the GitLab CI:\n\n```yml\nstages:\n  - release\n\nrelease:\n  rules:\n    - if: $CI_COMMIT_BRANCH == \"master\"\n      when: manual\n  stage: release\n  image: node:20.19.3\n  before_script:\n    - git config --global user.name \"GitLab Bot\"\n    - git config --global user.email \"gituser@example.com\"\n    - git remote set-url origin http://gitlab-ci-token:${DEPLOY_KEY}@gitlab.com/org/project.git\n  script:\n    - pnpm install --frozen-lockfile\n    - pnpm nx affected --target=version --base=last-release\n    - git tag -f last-release\n    - git push origin last-release --force -o ci.skip\n```\n\nNote that you might need to configure a [deploy key](https://docs.gitlab.com/ee/user/project/deploy_keys/) in order to push to your remote repository.\n\n## Nx Release migration\n\nIf you want to migrate to Nx Release, run the following command:\n\n```bash\nnx g @jscutlery/semver:migrate-nx-release\n```\n\nBy executing this generator, the existing `@jscutlery/semver` configuration will be removed, and Nx Release will be appropriately configured for your projects.\n\n\u003e [!NOTE]\n\u003e The migration process does not currently support the sync mode.\n\u003e Complex or highly customized configurations may require additional manual adjustments after running the migration generator.\n\u003e After running this generator, you will need to adjust any custom scripts or CI workflows related to versioning and releases to align with the new Nx release workflow.\n\nFor more details on using Nx Release, refer to the [official Nx documentation](https://nx.dev/recipes/nx-release/get-started-with-nx-release#get-started-with-nx-release).\n\n## Compatibility overview with Nx\n\n| Version | Required Package          |\n| ------- | ------------------------- |\n| v5.8.0  | `@nx/devkit ^22.0.0`      |\n| v5.7.0  | `@nx/devkit ^21.0.0`      |\n| v5.5.0  | `@nx/devkit ^20.0.0`      |\n| v5.3.0  | `@nx/devkit ^19.0.0`      |\n| v5.0.0  | `@nx/devkit ^18.0.0`      |\n| v4.0.0  | `@nx/devkit ^17.0.0`      |\n| v3.0.0  | `@nx/devkit ^16.0.0`      |\n| v2.28.0 | `@nrwl/devkit ^15.0.0`    |\n| v2.23.0 | `@nrwl/devkit ^14.0.0`    |\n| v2.12.0 | `@nrwl/workspace ^13.0.0` |\n| v2.4.0  | `@nrwl/workspace ^12.0.0` |\n| v1.0.0  | `@nrwl/workspace ^11.0.0` |\n\n## Changelog\n\nFor new features or breaking changes [see the changelog](https://github.com/jscutlery/semver/blob/main/packages/semver/CHANGELOG.md).\n\n## Contributors\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://marmicode.io/\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/2674658?v=4?s=60\" width=\"60px;\" alt=\"Younes Jaaidi\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYounes Jaaidi\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Ayjaaidi\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=yjaaidi\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=yjaaidi\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#example-yjaaidi\" title=\"Examples\"\u003e💡\u003c/a\u003e \u003ca href=\"#ideas-yjaaidi\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.codamit.dev/\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/8522558?v=4?s=60\" width=\"60px;\" alt=\"Edouard Bozon\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eEdouard Bozon\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Aedbzn\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=edbzn\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=edbzn\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#example-edbzn\" title=\"Examples\"\u003e💡\u003c/a\u003e \u003ca href=\"#ideas-edbzn\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://betaagency.ru/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1610882?v=4?s=60\" width=\"60px;\" alt=\"Gleb Mikheev\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGleb Mikheev\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-glebmachine\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://chigix.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2692787?v=4?s=60\" width=\"60px;\" alt=\"Richard Lea\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRichard Lea\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=chigix\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Katona\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1146931?v=4?s=60\" width=\"60px;\" alt=\"Katona\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKatona\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3AKatona\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=Katona\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ntziolis\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/265338?v=4?s=60\" width=\"60px;\" alt=\"ntziolis\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003entziolis\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Antziolis\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/RicardoJBarrios\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/14352238?v=4?s=60\" width=\"60px;\" alt=\"RicardoJBarrios\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRicardoJBarrios\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=RicardoJBarrios\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-RicardoJBarrios\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/sylvainar\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/9823286?v=4?s=60\" width=\"60px;\" alt=\"Sylvain Arnouts\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSylvain Arnouts\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Asylvainar\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/GethsLeader\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7333062?v=4?s=60\" width=\"60px;\" alt=\"GethsLeader\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGethsLeader\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=GethsLeader\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-GethsLeader\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/shaharkazaz\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/17194830?v=4?s=60\" width=\"60px;\" alt=\"Shahar Kazaz\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eShahar Kazaz\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=shaharkazaz\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/miluoshi\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1130547?v=4?s=60\" width=\"60px;\" alt=\"Miloš Lajtman\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMiloš Lajtman\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Amiluoshi\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=miluoshi\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/hcharley\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1542740?v=4?s=60\" width=\"60px;\" alt=\"Charley Bodkin\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCharley Bodkin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Ahcharley\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://jefiozie.github.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/17835373?v=4?s=60\" width=\"60px;\" alt=\"Jeffrey Bosch\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJeffrey Bosch\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=Jefiozie\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/RaviTejaVattem\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/43704759?v=4?s=60\" width=\"60px;\" alt=\"RaviTejaVattem\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRaviTejaVattem\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=RaviTejaVattem\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://abishek.is-a.dev/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/43115551?v=4?s=60\" width=\"60px;\" alt=\"Abishek PY\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAbishek PY\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=vj-abishek\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=vj-abishek\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/hinogi\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4602609?v=4?s=60\" width=\"60px;\" alt=\"Stefan Schneider\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eStefan Schneider\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=hinogi\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/CaffeinatedCodeMonkey\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5892586?v=4?s=60\" width=\"60px;\" alt=\"Travis Jones\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTravis Jones\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=CaffeinatedCodeMonkey\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=CaffeinatedCodeMonkey\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#ideas-CaffeinatedCodeMonkey\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/HassenHichri\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/10193983?v=4?s=60\" width=\"60px;\" alt=\"Hichri Hassen\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHichri Hassen\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3AHassenHichri\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/GarethDJohn\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/28591718?v=4?s=60\" width=\"60px;\" alt=\"Gareth John\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGareth John\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=GarethDJohn\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/dianjuar\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7026066?v=4?s=60\" width=\"60px;\" alt=\"Diego Juliao\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDiego Juliao\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Adianjuar\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=dianjuar\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-dianjuar\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ChazUK\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/768108?v=4?s=60\" width=\"60px;\" alt=\"Charlie Francis\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCharlie Francis\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3AChazUK\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/hpierre74\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/25172711?v=4?s=60\" width=\"60px;\" alt=\"Pierre Huyghe\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePierre Huyghe\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=hpierre74\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://gitlab.com/wsedlacek\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8206108?v=4?s=60\" width=\"60px;\" alt=\"William Sedlacek\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eWilliam Sedlacek\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=wSedlacek\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-wSedlacek\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://palmtreecoding.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7668692?v=4?s=60\" width=\"60px;\" alt=\"Tycho Bokdam\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTycho Bokdam\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-TriPSs\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/nicolashzmor\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/66749276?v=4?s=60\" width=\"60px;\" alt=\"nicolashzmor\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003enicolashzmor\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Anicolashzmor\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://medium.com/@rjlopezdev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/18118062?v=4?s=60\" width=\"60px;\" alt=\"Raúl Julián López Caña\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRaúl Julián López Caña\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Arjlopezdev\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=rjlopezdev\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/kaoz70\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/79406?v=4?s=60\" width=\"60px;\" alt=\"Miguel Suarez\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMiguel Suarez\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=kaoz70\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://medium.com/@cakeinpanic/latest\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/588916?v=4?s=60\" width=\"60px;\" alt=\"Katya Pavlenko\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKatya Pavlenko\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Acakeinpanic\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=cakeinpanic\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-cakeinpanic\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/hoonoh\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2078254?v=4?s=60\" width=\"60px;\" alt=\"Hoon Oh\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHoon Oh\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=hoonoh\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-hoonoh\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/kurtinatlanta\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/203931?v=4?s=60\" width=\"60px;\" alt=\"Kurt Hoyt\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKurt Hoyt\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Akurtinatlanta\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/riain0\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6255097?v=4?s=60\" width=\"60px;\" alt=\"Riain Condon\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRiain Condon\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=riain0\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=riain0\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#example-riain0\" title=\"Examples\"\u003e💡\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/lukelukes\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/45536418?v=4?s=60\" width=\"60px;\" alt=\"lukelukes\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003elukelukes\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Alukelukes\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ianldgs\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6526498?v=4?s=60\" width=\"60px;\" alt=\"Ian Luca\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eIan Luca\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=ianldgs\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-ianldgs\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.tngtech.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/30828990?v=4?s=60\" width=\"60px;\" alt=\"Matthias Stemmler\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMatthias Stemmler\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Ams-tng\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/gioragutt\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/13711224?v=4?s=60\" width=\"60px;\" alt=\"Giora Guttsait\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGiora Guttsait\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Agioragutt\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/dereekb\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3586580?v=4?s=60\" width=\"60px;\" alt=\"Derek Burgman\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDerek Burgman\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Adereekb\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=dereekb\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Zamiell\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5511220?v=4?s=60\" width=\"60px;\" alt=\"James\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJames\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3AZamiell\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=Zamiell\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ndrsg\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/26137827?v=4?s=60\" width=\"60px;\" alt=\"ndrsg\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003endrsg\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=ndrsg\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-ndrsg\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Andrsg\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/fabsrc\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8853782?v=4?s=60\" width=\"60px;\" alt=\"Fabian Schneider\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFabian Schneider\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Afabsrc\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=fabsrc\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/jdawber\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4291318?v=4?s=60\" width=\"60px;\" alt=\"JD\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJD\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=jdawber\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/nowseemee\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4532334?v=4?s=60\" width=\"60px;\" alt=\"Daniel Beck\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDaniel Beck\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=nowseemee\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=nowseemee\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://www.linkedin.com/in/florianguitton/en\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2495155?v=4?s=60\" width=\"60px;\" alt=\"Florian Guitton\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFlorian Guitton\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=fguitton\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://mauris.github.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/996939?v=4?s=60\" width=\"60px;\" alt=\"Sam Yong\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSam Yong\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Amauris\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=mauris\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/jamime\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2328042?v=4?s=60\" width=\"60px;\" alt=\"Jamie Thompson\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJamie Thompson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Ajamime\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.berger-engineering.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/29756792?v=4?s=60\" width=\"60px;\" alt=\"Michael Be\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMichael Be\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=mikelgo\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.ericbuettner.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2077427?v=4?s=60\" width=\"60px;\" alt=\"Eric Büttner\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eEric Büttner\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/issues?q=author%3Atuffz\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=tuffz\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/jscutlery/semver/commits?author=tuffz\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/NickDub\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/20282929?v=4?s=60\" width=\"60px;\" alt=\"NickDub\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNickDub\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=NickDub\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/mta-trackunit\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/73832274?v=4?s=60\" width=\"60px;\" alt=\"mta-trackunit\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003emta-trackunit\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=mta-trackunit\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/lucavb\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5306815?v=4?s=60\" width=\"60px;\" alt=\"lucavb\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003elucavb\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=lucavb\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/karamosky\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7325360?v=4?s=60\" width=\"60px;\" alt=\"karamosky\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ekaramosky\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=karamosky\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/lyngai\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/22373754?v=4?s=60\" width=\"60px;\" alt=\"lyngai\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003elyngai\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=lyngai\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/sj-e2digital\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/82376198?v=4?s=60\" width=\"60px;\" alt=\"sj-e2digital\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003esj-e2digital\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=sj-e2digital\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/NachoVazquez\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/9338604?v=4?s=60\" width=\"60px;\" alt=\"NachoVazquez\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNachoVazquez\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=NachoVazquez\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Mayur-Ram\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/51334424?v=4?s=60\" width=\"60px;\" alt=\"Mayur-Ram\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMayur-Ram\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jscutlery/semver/commits?author=Mayur-Ram\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n# License\n\nThis project is MIT licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjscutlery%2Fsemver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjscutlery%2Fsemver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjscutlery%2Fsemver/lists"}