Oasdiff is currently a mono-repo containing a go module and the main oasdiff executable.
This structure implies two conflicting requirements:
- General semver best-practices for the oasdiff executable
- Golang's module versioning guidelines
These requirements are in conflict because a breaking change to the oasdiff executable doesn't necessarily imply a breaking change to the module and vice versa.
A possible solution would be to separate this repo into two:
- The oasdiff executable which would be practically equivalent to the current
internal package.
- A go module containing the packages like
diff, flatten, checker etc.
Pros:
- Adherence to golang's module versioning guidelines and semver best-practices for the oasdiff executable
- Users of the oasdiff tool can see accurate and relevant release notes while ignoring internal implementation details of the module
- Module users can see accurate and relevant release notes excluding irrelevant changes to the oasdiff executable
Oasdiff is currently a mono-repo containing a go module and the main oasdiff executable.
This structure implies two conflicting requirements:
These requirements are in conflict because a breaking change to the oasdiff executable doesn't necessarily imply a breaking change to the module and vice versa.
A possible solution would be to separate this repo into two:
internalpackage.diff,flatten,checkeretc.Pros: