{"_id":"@cntr/semantic-release-monorepo","_rev":"2-50ee2946f1f5a1f3e75f03599106f4e6","name":"@cntr/semantic-release-monorepo","dist-tags":{"latest":"0.0.2-next"},"versions":{"0.0.0-next":{"name":"@cntr/semantic-release-monorepo","version":"0.0.0-next","description":"Plugins for `semantic-release` allowing it to be used with a monorepo.","type":"module","main":"src/index.js","publishConfig":{"access":"public"},"scripts":{"lint":"eslint --ignore-path .eslintignore --ext .js,.ts,.cjs .","lint:fix":"npm run lint -- --fix","prettier":"prettier \"**/*.{ts,js,jsx,css,cjs,json}\"","prettier:fix":"prettier \"**/*.{ts,js,jsx,css,cjs,json}\" --write","test":"jest"},"license":"MIT","peerDependencies":{"semantic-release":">=21"},"dependencies":{"@cntr/semantic-release-plugin-decorators":"^0.0.0-next","debug":"^3.1.0","execa":"^0.8.0","file-url":"^3.0.0","fs-extra":"^10.0.1","get-stream":"^6.0.1","git-log-parser":"^1.2.0","minipass":"^3.3.6","p-each-series":"^2.1.0","p-limit":"^1.2.0","pkg-up":"^2.0.0","ramda":"^0.25.0","read-pkg":"^5.0.0","tempy":"1.0.1"},"devDependencies":{"@babel/core":"^7.21.0","@babel/preset-env":"^7.20.2","babel-jest":"^29.5.0","eslint":"^8.35.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^8.7.0","eslint-plugin-prettier":"^4.2.1","husky":"^4.2.1","jest":"^25.5.4","lint-staged":"^10.0.7","prettier":"^2.8.4","semantic-release":"^21.0.7","semantic-release-github-pr":"^6.0.0","shelljs":"^0.8.5"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.js":["npm run prettier:fix"]},"licenseText":"MIT License\n\nCopyright (c) 2017 Updater Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@cntr/semantic-release-monorepo@0.0.0-next","dist":{"shasum":"af1110a44166052470747f6786e3d13a4651ba3d","integrity":"sha512-L/hnjgtiQ0s5bh8/uQnyi0tlrFAUfHjTGuVhPWho6Ck6ksmCXYAGjrGKZjoGUx3XMltEaRNZf+vf3wPgvmGqsA==","tarball":"https://registry.npmjs.org/@cntr/semantic-release-monorepo/-/semantic-release-monorepo-0.0.0-next.tgz","fileCount":15,"unpackedSize":24948,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVr65XAPWaT91wVZD0JS+MBYjXS9lRYKy67RxBnMuO5QIhALJJlIBtzZwrQE/EmbeCL7dUceXj4/d8+LJXqxWwgX7l"}]},"_npmUser":{"name":"cntr","email":"team@cntr.sh"},"directories":{},"maintainers":[{"name":"cntr","email":"team@cntr.sh"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/semantic-release-monorepo_0.0.0-next_1691744128539_0.08748518312699272"},"_hasShrinkwrap":false},"0.0.1-next":{"name":"@cntr/semantic-release-monorepo","version":"0.0.1-next","description":"Plugins for `semantic-release` allowing it to be used with a monorepo.","type":"module","main":"src/index.js","publishConfig":{"access":"public"},"scripts":{"lint":"eslint --ignore-path .eslintignore --ext .js,.ts,.cjs .","lint:fix":"npm run lint -- --fix","prettier":"prettier \"**/*.{ts,js,jsx,css,cjs,json}\"","prettier:fix":"prettier \"**/*.{ts,js,jsx,css,cjs,json}\" --write","test":"jest"},"license":"MIT","peerDependencies":{"semantic-release":">=21"},"dependencies":{"@cntr/semantic-release-plugin-decorators":"^0.0.0-next","debug":"^3.1.0","execa":"^0.8.0","file-url":"^3.0.0","fs-extra":"^10.0.1","get-stream":"^6.0.1","git-log-parser":"^1.2.0","minipass":"^3.3.6","p-each-series":"^2.1.0","p-limit":"^1.2.0","pkg-up":"^2.0.0","ramda":"^0.25.0","read-pkg":"^5.0.0","tempy":"1.0.1"},"devDependencies":{"@babel/core":"^7.21.0","@babel/preset-env":"^7.20.2","babel-jest":"^29.5.0","eslint":"^8.35.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^8.7.0","eslint-plugin-prettier":"^4.2.1","husky":"^4.2.1","jest":"^25.5.4","lint-staged":"^10.0.7","prettier":"^2.8.4","semantic-release":"^21.0.7","semantic-release-github-pr":"^6.0.0","shelljs":"^0.8.5"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.js":["npm run prettier:fix"]},"licenseText":"MIT License\n\nCopyright (c) 2017 Updater Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@cntr/semantic-release-monorepo@0.0.1-next","dist":{"shasum":"a20247c0dea55c0ca6b7126a32f06ec03c2633c0","integrity":"sha512-PRLpae/f0RCZPCwrX7NUbAg3oXu4sRbcHQXlLQo350LfEZLXBC4RIy8n5IuXkXbzDY1y1Ma+ezfZmVdfZ0w8HQ==","tarball":"https://registry.npmjs.org/@cntr/semantic-release-monorepo/-/semantic-release-monorepo-0.0.1-next.tgz","fileCount":15,"unpackedSize":25497,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFsAKkFlVSqORZrDbi2eCNizgqGtWZJZNteVKGpuhQ40AiEAq78TtuIZGq7uid50eYgW2Irtt6HNyw7HIuy1LQhWw6o="}]},"_npmUser":{"name":"cntr","email":"team@cntr.sh"},"directories":{},"maintainers":[{"name":"cntr","email":"team@cntr.sh"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/semantic-release-monorepo_0.0.1-next_1691744974378_0.0987961033015341"},"_hasShrinkwrap":false},"0.0.2-next":{"name":"@cntr/semantic-release-monorepo","version":"0.0.2-next","description":"Plugins for `semantic-release` allowing it to be used with a monorepo.","main":"dist/index.js","publishConfig":{"access":"public"},"scripts":{"lint":"eslint --ignore-path .eslintignore --ext .js,.ts,.cjs .","lint:fix":"npm run lint -- --fix","prettier":"prettier \"**/*.{ts,js,jsx,css,cjs,json}\"","prettier:fix":"prettier \"**/*.{ts,js,jsx,css,cjs,json}\" --write","test":"jest","build":"esbuild src/index.js --bundle --platform=node --format=cjs --outdir=dist"},"license":"MIT","peerDependencies":{"semantic-release":">=21"},"dependencies":{"@cntr/semantic-release-plugin-decorators":"^0.0.0-next","debug":"^3.1.0","execa":"^0.8.0","file-url":"^3.0.0","fs-extra":"^10.0.1","get-stream":"^6.0.1","git-log-parser":"^1.2.0","minipass":"^3.3.6","p-each-series":"^2.1.0","p-limit":"^1.2.0","pkg-up":"^2.0.0","ramda":"^0.25.0","read-pkg":"^5.0.0","tempy":"1.0.1"},"devDependencies":{"@babel/core":"^7.21.0","@babel/preset-env":"^7.20.2","babel-jest":"^29.5.0","eslint":"^8.35.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^8.7.0","eslint-plugin-prettier":"^4.2.1","husky":"^4.2.1","jest":"^25.5.4","lint-staged":"^10.0.7","prettier":"^2.8.4","semantic-release":"^21.0.7","semantic-release-github-pr":"^6.0.0","shelljs":"^0.8.5"},"licenseText":"MIT License\n\nCopyright (c) 2017 Updater Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@cntr/semantic-release-monorepo@0.0.2-next","dist":{"shasum":"b651d343941fcecb3b44a11100e5260fa14ba510","integrity":"sha512-yaI4E7d05mHPaP4vq/Jd8TxwJPoP9nH/sbEVFk+x1VFESb+HcjdB3xlgiz8Kx/AA8bq7drMCizA63vVvCerVBw==","tarball":"https://registry.npmjs.org/@cntr/semantic-release-monorepo/-/semantic-release-monorepo-0.0.2-next.tgz","fileCount":17,"unpackedSize":933767,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMThFyXZAumatsbIBRrXKVR+mgOn0rZeiClIAr2Rc0OgIgY2p6qalB0VgFIwqBAtCRzGPP/l25wdEV3Ba8uxwLizI="}]},"_npmUser":{"name":"cntr","email":"team@cntr.sh"},"directories":{},"maintainers":[{"name":"cntr","email":"team@cntr.sh"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/semantic-release-monorepo_0.0.2-next_1691747694115_0.8790729201064886"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-11T08:55:28.393Z","0.0.0-next":"2023-08-11T08:55:28.704Z","modified":"2023-08-11T09:54:54.502Z","0.0.1-next":"2023-08-11T09:09:34.513Z","0.0.2-next":"2023-08-11T09:54:54.347Z"},"maintainers":[{"name":"cntr","email":"team@cntr.sh"}],"description":"Plugins for `semantic-release` allowing it to be used with a monorepo.","license":"MIT","readme":"# semantic-release-monorepo\n\n[![Build Status](https://travis-ci.org/pmowrer/semantic-release-monorepo.svg?branch=master)](https://travis-ci.org/pmowrer/semantic-release-monorepo) [![npm](https://img.shields.io/npm/v/semantic-release-monorepo.svg)](https://www.npmjs.com/package/semantic-release-monorepo) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)\n\nApply [`semantic-release`'s](https://github.com/semantic-release/semantic-release) automatic publishing to a monorepo.\n\n## Why\n The default configuration of `semantic-release` assumes a one-to-one relationship between a GitHub repository and an `npm` package.\n\nThis library allows using `semantic-release` with a single GitHub repository containing many `npm` packages.\n\n## How\n\nInstead of attributing all commits to a single package, commits are assigned to packages based on the files that a commit touched.\n\nIf a commit touched a file in or below a package's root, it will be considered for that package's next release. A single commit can belong to multiple packages and may trigger the release of multiple packages.\n\nIn order to avoid version collisions, generated git tags are namespaced using the given package's name: `<package-name>-<version>`.\n\n## Install\nBoth `semantic-release` and `semantic-release-monorepo` must be accessible in each monorepo package.\n\n```bash\nnpm install -D semantic-release semantic-release-monorepo\n```\n\n## Usage\n\nRun `semantic-release` in an **individual monorepo package** and apply `semantic-release-monorepo` via the [`extends`](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#extends) option.\n\nOn the command line:\n```bash\n$ npm run semantic-release -e semantic-release-monorepo\n```\n\nOr in the [release config](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration-file):\n```json\n{\n  \"extends\": \"semantic-release-monorepo\"\n}\n```\n\nNOTE: This library **CAN'T** be applied via the `plugins` option.\n\n```json\n{\n  \"plugins\": [\n    \"semantic-release-monorepo\" // This WON'T work\n  ]\n}\n```\n\n### With Yarn Workspaces\n\n```bash\n$ yarn workspaces run semantic-release -e semantic-release-monorepo\n```\n\n### With Lerna\nThe monorepo management tool [`lerna`](https://github.com/lerna/lerna) can be used to run `semantic-release-monorepo` across all packages in a monorepo with a single command:\n\n```bash\nlerna exec --concurrency 1 -- npx --no-install semantic-release -e semantic-release-monorepo\n```\n\n### With pnpm\n[pnpm](https://pnpm.io/) has built-in [workspace](https://pnpm.io/workspaces) functionality for monorepos. Similarly to the above, you can use pnpm to make release in all packages:\n\n```bash\npnpm -r --workspace-concurrency=1 exec -- npx --no-install semantic-release -e semantic-release-monorepo\n```\n\n Thanks to how [`npx's package resolution works`](https://github.com/npm/npx#description), if the repository root is in `$PATH` (typically true on CI), `semantic-release` and `semantic-release-monorepo` can be installed once in the repo root instead of in each individual package, likely saving both time and disk space.\n\n\n## Advanced\nThis library modifies the `context` object passed to `semantic-release` plugins in the following way to make them compatible with a monorepo.\n\n| Step               | Description                                                                                           |\n| ------------------ | ----------------------------------------------------------------------------------------------------- |\n| `analyzeCommits` | Filters `context.commits` to only include the given monorepo package's commits.                              |\n| `generateNotes`          | <ul><li>Filters `context.commits` to only include the given monorepo package's commits.</li><li>Modifies `context.nextRelease.version` to use the [monorepo git tag format](#how). The wrapped (default) `generateNotes` implementation uses this variable as the header for the release notes. Since all release notes end up in the same Github repository, using just the version as a header introduces ambiguity.</li></ul>   |\n\n### tagFormat\n\nPre-configures the [`tagFormat` option](https://github.com/semantic-release/semantic-release/blob/caribou/docs/usage/configuration.md#tagformat) to use the [monorepo git tag format](#how).\n\nIf you are using Lerna, you can customize the format using the following command:\n\n```\n\"semantic-release\": \"lerna exec --concurrency 1 -- semantic-release -e semantic-release-monorepo --tag-format='${LERNA_PACKAGE_NAME}-v\\\\${version}'\"\n```\n\nWhere `'${LERNA_PACKAGE_NAME}-v\\\\${version}'` is the string you want to customize.   By default it will be `<PACKAGE_NAME>-v<VERSION>` (e.g. `foobar-v1.2.3`).\n","readmeFilename":"README.md"}