Skip to content
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

ADR template for Pull Request #296

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/adr-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
name: ADR Template
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since I was not aware of the ADR format, I wonder if we could use more commonly used terminology here? RFC is the one I find most common and I know @sheplu even mentioned that on our call. That said, "proposal" would also make sense to me, and I think is more in the loose spirit of what these can be.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RFC sounds great! :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

an RFC is something different and I think we should prefer the semantically correct term for what this represents. RFC !== ADR

description: Template for Express Architecture Decision Records
labels: ADR
---

# ADR template

This is the base template that we use
bjohansebas marked this conversation as resolved.
Show resolved Hide resolved

# ADR [Number]: [Title of Decision]

## Status
[Proposed | Accepted | Deprecated | Superseded by ADR [number]]

## Submitters
[List of people who proposed this decision. Include GitHub usernames or names with contact information if needed.]
- @username1
- @username2

## Decision Owners
[List of people responsible for driving the decision and following up on its implementation. This may include teams or subject matter experts.]
- @owner1
- @team1

## Context
Describe the problem, need, or feature request that prompted this decision. Include any relevant background information, constraints, and considerations that were taken into account.

- **Why do we need this decision?**
- **What problem does it solve or avoid?**
- **Are there any existing issues/discussions/pull requests related to this?** (Include links to relevant GitHub issues, forum threads, or discussion channels.)

## Decision
Clearly state the decision that was made. Describe the chosen solution or approach in detail so that others can understand what was decided.

- **What will be done?**
- **What will not be done?** (If applicable, specify what was explicitly ruled out.)

## Rationale
Explain why this decision was made, including a discussion of the alternatives considered and why they were not chosen.

- **Alternatives Considered:**
- Alternative 1: [Description and reasons for rejection]
- Alternative 2: [Description and reasons for rejection]
- **Pros and Cons**: Outline the pros and cons of the chosen solution.
- **Why is this decision the best option?** (Explain the key factors that influenced this choice.)

## Consequences
Describe the positive and negative outcomes of the decision, including any potential risks or technical debt.

- **Positive Impact**: What benefits does this decision bring to the project?
- **Negative Impact**: What challenges or limitations does this introduce?
- **Mitigations**: How will we address potential drawbacks or issues?

## Implementation
(Optional, if relevant)
Outline the steps required to implement the decision. This section is particularly useful if the decision involves a series of actions or a roadmap.

- **Phase 1**: [Description]
- **Phase 2**: [Description]
- **Estimated Effort**: Provide a rough estimate of time or effort needed.

## References
Include any external links, documents, discussions, or research that were referenced during the decision-making process.

- [Link to relevant GitHub issue or pull request](#)
- [Link to forum discussion](#)
- [Documentation or research sources](#)


## Changelog
Track changes or updates to this ADR over time. Include the date, author, and a brief description of each change.

- **[YYYY-MM-DD]**: [@username] - [Brief description of the change]
- Example: **[2024-10-22]**: @owner1 - Updated the decision to include support for Redis caching.
- **[YYYY-MM-DD]**: [@username] - [Brief description of the change]
- Example: **[2025-01-15]**: @username2 - Deprecated this ADR due to a shift in the database strategy.