googleapis / googleapis/release-please
Multimodules Maven & Node version management
- Dominant language
- TypeScript
- Stars
- 7.5k
- Forks
- 588
- Avg merge
- 12h 16m
- Merged PRs (30d)
- 7
Description
Hello
I have a project like:
```shell
├──pom.xml
├── module-a
│ └── pom.xml
├── module-b
│ └── package.json
```
**.release-please-manifest.json**
```json
{
".": "1.2.3"
"module-b": "1.2.3",
}
```
**release-please-config.json**
```json
{
"packages": {
".": {
"release-type": "maven"
},
"module-b": {
"release-type": "node"
},
},
"include-component-in-tag": false,
"tag-separator": "",
"include-v-in-tag": true,
"skip-snapshot": true,
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
}
```
I'm using the GitHub Action to execute release-please.
I would like to know how can I correctly handle the case of:
- When an update is done in `module-b`, in this case, the action returns [outputs for module path](https://github.com/googleapis/release-please-action?tab=readme-ov-file#path-outputs). However, if I also update the `.`, the release is correctly done but the output for root component are not defined (version, etc.). In this case, how can I know the new version of root component (if the version differs compared to `module-b`)
- How can I synchronize the version between `.` and `module-b`. I tried the plugin `linked-version`, but that doesn't have an effect
```json
{
"packages": {
"module-b": {
"release-type": "node",
"component": "module-b",
},
".": {
"release-type": "maven",
"component": "root",
}
},
"include-component-in-tag": false
"tag-separator": "",
"include-v-in-tag": true,
"skip-snapshot": true,
"plugins": [
{
"type": "linked-versions",
"groupName": "project",
"components": [
"module-b",
"root"
]
}
],
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
}
```
With this config, if I update the root component, the `module-b` will not be updated. So I don't get it..
The workaround for the moment, is this configuration
```json
{
"packages": {
".": {
"release-type": "maven",
"extra-files": [
{
"type": "json",
"path": "module-b/package.json",
"jsonpath": "$.version"
},
{
"type": "json",
"path": "module-b/package-lock.json",
"jsonpath": "$.version"
},
{
"type": "json",
"path": "module-b/package-lock.json",
"jsonpath": "$.packages[''].version"
}
]
}
},
"skip-snapshot": true,
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
}
```
But.. that's probably not the optimal solution and I prefer to avoid something manual like that
Contributor guide
Assessment
This issue has not been assessed yet.