'semantic-release-monorepo ignores pkgRoot
I created a minimal reproduction which is a monorepo contains only one workspace in `./package' dir
both root and package (the workspace) have exactly the same release.config.js file except that package extends semantic-release-monorepo.
both of them use the default configurations and only two plugins
module.exports = {
plugins: [
"@semantic-release/commit-analyzer",
["@semantic-release/npm", { pkgRoot: "dist" }],
],
// extends: ["semantic-release-monorepo"],
};
the important part here is that @semantic-release/npm uses { pkgRoot: "dist" }
package contents are typically the same as the root including dist folder, except the package name.
if I run semantic-release from the root, i.e without semantic-release-monorepo it packs the package as expected, and puts the contents of pkgRoot dir in the top-level of the published package.
in contrast, when I run the same command from package, i.e with semantic-release-monorepo, it ignores the option pkgRoot and the packed packages contain the folder dist instead of its contents.
steps for reproduction
1- clone the repo and install dependencies
2- remove all local and remote tags if exist
3- switch to the branch next
4- modify root's and package's files and create feat/fix commits
5- run the script release from the root and package and see the tarball's contents in both cases
you will see different behavior.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
