{"_id":"@achingbrain/semantic-release-monorepo","_rev":"2-39e79e051dbe8c1d9f61ef42ad62c9f9","name":"@achingbrain/semantic-release-monorepo","dist-tags":{"latest":"8.0.2"},"versions":{"8.0.0":{"name":"@achingbrain/semantic-release-monorepo","version":"8.0.0","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":">=15.11.x"},"dependencies":{"semantic-release-plugin-decorators":"https://registry.npmjs.org/@achingbrain/semantic-release-plugin-decorators/-/semantic-release-plugin-decorators-4.0.0.tgz","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":"^17.0.2","semantic-release-github-pr":"^6.0.0","shelljs":"^0.8.5"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.js":["npm run prettier:fix"]},"gitHead":"cf955a606e16fdae87e4535b044973d3b5225aba","_id":"@achingbrain/semantic-release-monorepo@8.0.0","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-fM5HGyuuBdQ/S32L+tGc3LMrBvzPjRWxnokzkV23RHTOBS+C9kzp0h6nhSwKM/WBkh13AmKxikx/G6vOPiNqbg==","shasum":"25f32f95a93e5c4a9047a9cb96095a92087c4930","tarball":"https://registry.npmjs.org/@achingbrain/semantic-release-monorepo/-/semantic-release-monorepo-8.0.0.tgz","fileCount":13,"unpackedSize":25059,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBxXYMZCTpYYvOpdFHkUMqkAZ42tQbBXbu3nV6W1O+0HAiEAzZLwQ9Ol7gQKXwWhF1x567LnmDSciEfUI8K9IQ3Hy1Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUiR0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmru0A/9EpJ+Qw10w99pryJETL0YKYO0FVuHtqr+f9kH5Lry1Uzeg5KX\r\nDQMrjrpgQCMseBq6X7cZV0cGA/Dy6hLSgnuvl1njPD9YfdiTq1x68LRPEG7j\r\n3bhT0bbYcOo/klWH2NeUrm31gVEdqsdzGiiPfYsjOwuck+ADAPR1urXB2WYk\r\nVVcRf8VySwA/WR2z1tMOt53pBMHbwe5hnlIEjErJYOrs4gcNXKF40V6gPN9x\r\nda1s9i4+zI7i23FMJK0hTEo8IqSDv1Zvx8trBoP+ujBYYQxTL8/GwACiILJo\r\n3N4+dADVQNuAMZCCGPgIHhCWmkD2cBA8j7u+axoYooURp4VwMCIzy9HoV3ey\r\nup9XtdcBAFPP/y66hFLgACWp7ShvO6oZx8R6SEpzpuJEl+Pj3Bu4xEadZ/Iw\r\ny1Sw0F6ioAUXenGRXux4Q0HKQI8LgVEWb5oIDS7j9YDrK2by5BtdugBd24Lt\r\nFHnP+HTsvH49/9o4VqWBtivwnVjciurEEPUl/j+gzTEDp+DNqLmwr/Snauy2\r\nUqr74xpivlXZMVjJlbB91hcMsYJNatQJKYjfBo5/VF7H1//HGs2lEHcMQvzX\r\ni6oGyCeOmuCSHk3Kk9tkXem5s4oCxoPQgqwJ5lZaLIwEB4RH0n0VPB7DxKx9\r\npCIabPsShIHPUj9m2dB8Sm6czyzwsGhr7Xo=\r\n=C7Of\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/semantic-release-monorepo_8.0.0_1683104884063_0.3948780343105427"},"_hasShrinkwrap":false},"8.0.1":{"name":"@achingbrain/semantic-release-monorepo","version":"8.0.1","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":">=15.11.x"},"dependencies":{"semantic-release-plugin-decorators":"https://registry.npmjs.org/@achingbrain/semantic-release-plugin-decorators/-/semantic-release-plugin-decorators-4.0.1.tgz","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":"^17.0.2","semantic-release-github-pr":"^6.0.0","shelljs":"^0.8.5"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.js":["npm run prettier:fix"]},"gitHead":"cf955a606e16fdae87e4535b044973d3b5225aba","_id":"@achingbrain/semantic-release-monorepo@8.0.1","_nodeVersion":"18.14.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-g1mZXoCbQVbLaGWPkIFC1ZwPTaFC1F+U40zzb/CtZ1xBRnyhmMTYhjp6az+hoQ9Gd7MNSCGF2JxyUuk2P2q0Gw==","shasum":"c84d08ae1a2322c1131f9d1049797668ad19a50c","tarball":"https://registry.npmjs.org/@achingbrain/semantic-release-monorepo/-/semantic-release-monorepo-8.0.1.tgz","fileCount":13,"unpackedSize":25059,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjAf4gNA2j87D58uF+RVkxvAjLsO9Ya/nKf1Ag8uCq8AiB/XqsYY4JPUM7uNUunOHbtQdftEWIWMFza49LuQmDRxA=="}]},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/semantic-release-monorepo_8.0.1_1690827596109_0.3977490431921691"},"_hasShrinkwrap":false},"8.0.2":{"name":"@achingbrain/semantic-release-monorepo","version":"8.0.2","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":">=15.11.x"},"dependencies":{"semantic-release-plugin-decorators":"https://registry.npmjs.org/@achingbrain/semantic-release-plugin-decorators/-/semantic-release-plugin-decorators-4.0.1.tgz","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":"^17.0.2","semantic-release-github-pr":"^6.0.0","shelljs":"^0.8.5"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.js":["npm run prettier:fix"]},"gitHead":"cf955a606e16fdae87e4535b044973d3b5225aba","_id":"@achingbrain/semantic-release-monorepo@8.0.2","_nodeVersion":"18.14.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-W11uWo80azi3CrJWP+qPNUYo3crwTw0uMjVkBkyYPPjsu0FgRE9ApSllyzi9gSs5HJxeHZadzas6ppMLDPg/uw==","shasum":"a65fd8bfbab101ee0b1d6f6ed997afa698fc4572","tarball":"https://registry.npmjs.org/@achingbrain/semantic-release-monorepo/-/semantic-release-monorepo-8.0.2.tgz","fileCount":13,"unpackedSize":25050,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1k30MhptF/HxetWopQBsHQYERp2t9RRM7w1ECdM+YBQIhAO5ySolqwhyEYiVqfAupj2nMuAzRGu7eTtlGnujUmsvC"}]},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/semantic-release-monorepo_8.0.2_1690829161792_0.6015291316260132"},"_hasShrinkwrap":false}},"time":{"created":"2023-05-03T09:08:04.001Z","8.0.0":"2023-05-03T09:08:04.211Z","modified":"2023-07-31T18:46:02.108Z","8.0.1":"2023-07-31T18:19:56.235Z","8.0.2":"2023-07-31T18:46:01.993Z"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"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"}