Community Driver/Mapper Contributions: Repository Assignment
ADR: Community Driver/Mapper Contributions: Repository Assignment
Status
-
Proposed -
Trialing -
Under review -
Approved -
Retired
Context
The Community Implementation of the OSDU Platform will feature a reusable and tested foundation, which can be deployed with custom technology stacks using sets of Drivers and Mappers, a.k.a. the 'South Decision Point.' This approach enables the customization of underlying resources for each cloud or specific environment without necessitating code changes. The framework accommodates the contribution of new Drivers/Mappers at a later stage.
https://community.opengroup.org/osdu/platform/system/lib/drivers
https://community.opengroup.org/osdu/platform/system/lib/mappers
Problem Statement
If anyone wishes to introduce new sets of drivers/mappers, they may be unsure where to contribute them. This decision involves whether to add them to the existing Community repository, such as https://community.opengroup.org/osdu/platform/system/lib/drivers/os-obm, or to create a new repository not directly affiliated with community projects.
Decision Options
1. In the same repository, as a new module, for example, https://community.opengroup.org/osdu/platform/system/lib/drivers/os-obm
Pros:
- Easier to align API (Java Interfaces) updates with custom drivers and update them accordingly.
- Ability to check whether updates are compatible with custom drivers.
- Easier to maintain versioning. Auto version increments could be done in place for each set of drivers.
Cons:
- Issues with custom drivers may affect the stability of community drivers. Vulnerability scans, build issues, failed tests, etc.
- Breaking changes in the driver API should be implemented by custom driver contributors without delays, or it could break the flow.
Sum: This approach would favor custom drivers more, and the community implementation could be affected.
2. As a separate project, for example in group https://community.opengroup.org/osdu/platform/system/lib
Pros:
- The community set of drivers will be kept isolated, simplifying their maintenance, etc.
- Updates to the driver API can be implemented by custom driver contributors at their own pace.
Cons:
- Breaking changes could be harder to adopt.
- Harder to keep versions up to date, custom driver maintainers should keep up to use the latest version.
Sum: This approach would favor community drivers more, custom driver maintainers should keep up.
Decision
TBD
Consequences
TBD