googleapis / googleapis/release-please

Manifest release configuration not compatible with Monorepo that is a node project with a rust workspace

Open
#2,207 3 comments 10 reactions 1 assignee Claimed by @chingor13 View on GitHub
priority: p3 type: bug
Dominant language
TypeScript
Stars
7.5k
Forks
588
Avg merge
12h 16m
Merged PRs (30d)
7

Description

1) Is this a client library issue or a product issue?
Client library

2) Did someone already solve this?
Nope

3) Do you have a support contract?
Nope

If the support paths suggested above still do not result in a resolution, please provide the following details.

#### Environment details

- OS: Unix / Linux
- Node.js version: v20.9.0
- npm version: 10.1.0
- `release-please` version: 4

#### Steps to reproduce

1. Create a Serverless project with a Rust workspace. Given how serverless works, it is established as a Node project, that acts as a wrapper for the Rust workspace.
Ideally, what I want to achieve is that no matter the file that is modified in the repo, all components should bump their release to the same next value.
Currently, I was able to achieve the following:
- if any file on the rust packages is touched, version is bumped on all the rust modules
- if any file is touched outside the rust packages, version is bumped only on the node project

I use a manifest release, combined with the plugins rust-workspace and linked-versions, as stated in the docs.
Is there a way to tell release-please that the root project should be treated the same way as the others? thanks.

Example structure of the project (simplified):
```
.
├── README.md
├── serverless.yml
├── .release-please-manifest.json
├── node_modules
├── package-lock.json
├── package.json
├── release-please-config.json
├── Cargo.lock
├── Cargo.toml
├── bots
│  ├── pck-a
│   │   ├── Cargo.toml
│   │   ├── serverless.yml
│   │   └── src
│  ├── pck-b
│   │   ├── Cargo.toml
│   │   ├── serverless.yml
│   │   └── src

```
release-please-config.json file:
```
{
"include-component-in-tag": false,
"packages": {
".": {
"release-type": "node",
"component": "root"
},
"bots/pck-a": {
"release-type": "rust",
"component": "pck_a"
},
"bots/pck-b": {
"release-type": "rust",
"component": "pck_b"
},
},
"plugins": [
{
"type": "cargo-workspace",
"merge": false
},
{
"type": "linked-versions",
"groupName": "group-all",
"components": [
"root",
"pck_a",
"pck_b"
]
}
]
}
```

The file .release-please-manifest.json content looks like this:
{
".": "2.2.0",
"bots/pck-a": "2.2.0",
"bots/pck-b": "2.2.0"
}

**Update:**

I would be ok with not upgrading the node package.json version, I don't actually need that, but what I DO need is that whenever any file in the project has a change, all the rust packages bump their version. I tried using extra-files for this, but failed miserably :D

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.