在monorepo结构中,是否需要对protobuf合同进行版本控制?

In a monorepo structure, should we version our protobuf contracts? Currently we have this structure.

root
├── protobuf
│   ├── a.proto
│   ├── b.proto
│   └── go.mod
├── serviceA
│   └── go.mod
└── serviceB
    └── go.mod

Which feels counter productive since if you want to make change to something in serviceA and modify a.proto. You then have to make a separate PR for the proto change and update the protobuf version in serviceA.

I can't seem to find any documentation or best practices on this.

edit: I know the alternative approach is to simply not version the protobuf folder. I'm just trying to weight the pros/cons of both approach.