Introducing an AEP monorepo #419
Replies: 2 comments 2 replies
|
Pulling in questions from slack: (https://cloud-native.slack.com/archives/C04TX46UCTV/p1784922051254259)
It's covered above, but we can use bazel (bazel.build) to pull it in - I just wanted to start with the go targets first.
It's covered a little bit, but to reiterate: • The aep spec is also lockstep, so any change requires modifying many downstreams to adhere to the new or extended guidance. In other words, to make a full change throughout the aep ecosystem today, you have to change the AEPs, then aep-lib-go, then do version bumps in aepcli, aepc, and possibly terraform-aep-provider. So the intertia for a single change is now higher, requiring 5 PRs and 5 reviews. This would bring it down to 2 (aeps + aep-monorepo)..
w.r.t. agility I'm curious what agility one loses: I find I'm getting slowed down by the multiple changes I had to make in lockstep and the PR review cycle afterward. Having a single PR would be much easier to manage, as well as enable me to test out a change end to end across an api generator, aep conformance test, cli, and terraform provider. This also enables an ecosystem of end-to-end testing: we could use aepcli to test interop with aepc, aep-conformance interop with aepc.
Isn't this the same load regardless? It's either vulnerability scanning in 5 repos, or in a single repository. the net code doesn't change. |
|
I don't have any strong feelings one way or the other for a mono-repo. If we have resolved that changes should be done in lockstep (not sure that's really necessary, but again I'm not opposed), having a monorepo does seem like it makes that somewhat easier. |
Uh oh!
There was an error while loading. Please reload this page.
Starting this discussion, based on an meeting sync from @thegagne and I.
There are a few repositories that use Go today:
And some burgeoning projects:
Many of these are based on aep-lib-go today. The changes often required modifying aep-lib-go, then updating the downstream language.
The aep spec is also lockstep, so any change requires modifying many downstreams to adhere to the new or extended guidance.
There are also shared tool that would be valuable, such as agent skills to evaluate spec conformance of the code.
With this in mind, I'd like to propose a new aep monorepo from which we will fold all of these dependencies into each other.
Wanted to get some initial feelers. The high-level sketch is:
If we moved forward, we'd start by:
Would love thoughts and feedback!
All reactions