-
-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Start using ADR (Architectural Decision Records) #663
Comments
@fmvilas is rendering the ADRs part of the scope of this Bet ? we could have something similar to https://github.com/adr/adr-log/blob/main/docs/index.md and link it in the README. |
😄 Go ahead if you want to include it but I'd do it as a last thing. |
Problem
We'll have to make a lot of architectural decisions during the development of Studio. It would be cool to get a record of each of these decisions in a centralized place in this repo, so others can understand why we took some decisions in the past and also it would force us to not only think about the "what"s but also the "why"s of our decisions. This would prevent us from jumping straight to the latest cool technology without properly evaluating it before.
Solution
I'm proposing we adopt ADR (Architectural Decision Records). Learn more about it here: https://betterprogramming.pub/the-ultimate-guide-to-architectural-decision-records-6d74fd3850ee.
Since the lifecycle of an ADR can change and there should be a way for people to discuss them before they're adopted, my proposal is that we keep them in Markdown format in a folder of this repo. Every time we want to add or change an ADR, we'll have to create a pull request and there we will be able to discuss the change via GitHub comments.
These pull requests should have a specific label (e.g.,
kind/adr
) and their title should start with[ADR-0001]
to easily identify which ADR is the PR about. A PR must not change multiple ADRs.Lastly, given the label, title, and all the information about the PR, an automated script should take care of making sure we create valid ADR PRs.
Things to validate with the automation:
kind/adr
label, its title has to start with[ADR-xxxx]
.[ADR-xxxx]
, we should add thekind/adr
label.Rabbit holes
We already have automation enforcing a specific syntax for PR titles, i.e.,
chore:
,fix:
,feat:
, etc. Not sure if we can skip this enforcement or if it would be easy.My advice is, if that takes too long to change, then let's change the signature of the PR title to
chore: [ADR-xxxx]
or something like that. It's not beautiful but works.Scope
Out of bounds
Do not try to come up with a UI to visualize the ADRs or anything like that. It's good enough to have them in a folder in Markdown format.
Success criteria
The ADRs can serve as a way to onboard people to the project and for us to remember why we took some decisions.
The text was updated successfully, but these errors were encountered: