Reputation: 2311
Here's the scenario:
We want a monorepo for several components and would like to use lerna with yarn workspaces for it.
To ensure no problems happen with semantic versioning, it would be nice to have code reviews for the version numbers as well.
So the package.json
defines a version-bump
script that shall only be used to increment package versions.
After the tests running and CR being OK, we'd like a deploy bot to publish the packages to our custom registry for us.
For this it would be nice to use lerna publish --skip-git
, so that lerna would publish the changed packages only.
The problem here is that lerna publish
won't just publish the packages, but asks for their version increments again.
It would be nice to know of an option or workaround to publish without incrementing the version.
Our current workaround is to use lerna exec npm publish
, but this will try to publish already published packages again. We also cannot use lerna exec yarn publish
because in that case yarn
asks for version increments.
The setup looks like this:
lerna.json:
{
"lerna": "2.5.1",
"version": "independent",
"npmClient": "yarn",
"useWorkspaces": true,
"packages": [
"packages/*"
]
}
package.json
{
"name": "…",
"version": "0.0.0",
"description": "…",
"main": "index.js",
"repository": {
"type": "git",
"url": "…"
},
"workspaces": [
"packages/*"
],
"private": true,
"scripts": {
"version-bump": "./node_modules/lerna/bin/lerna.js publish --skip-npm",
"test": "echo well tested"
},
"devDependencies": {
"lerna": "^2.5.1"
}
}
Upvotes: 3
Views: 4308
Reputation: 51
For anyone that needs this functionality, it looks like they're working on it for v3.0:
Separate "version" and "publish" commands - https://github.com/lerna/lerna/issues/961
Upvotes: 5
Reputation: 2675
I'm in the same boat. The feature doesn't exist. Ideally Lerna would have an argument you could pass to skip bumping the version numbers. You're best making some noise over at the project on Github: https://github.com/lerna/lerna/issues
Upvotes: 2