Any policy decision agent would need to base its decision on external information provided by a series of build tools, such as
marvin. The draft RFC about a merge train proposes analyzing build logs as an immediate solutions. However for providing a policy agent with the necessary expressiveness, we won’t get far before a more structured approach might be needed.
Hence, we should consider standardizing build tool outputs around a centrally maintained, versioned jsonschema that will serve as the platform to interchange information between these tools and a trusted policy agent.
Opting for jsonschema brings the obvious benefits of its trending adoption while having practically ubiquitous tooling support. Another benefit is that event queue message standardization efforts already have json support which makes incorporation and automatic transposing into a broader event driven message bus a piece of cake and buys us options well down into the future.
- Existing Tool authors would have to agree to the effort of standardizing their output events.
- New tool authors would gain a fast track to hook into the existing tooling infrastructure (especially if an event bus will be implemented alongside). This will be a good position to promote innovation and develop better tooling.
- The broader ecosystem would gain an additional well-defined interface and only time can tell what collateral benefits that might bring on its own right.