Architecture Decision Records¶
This directory contains all Architecture Decision Records (ADRs) for the Renaissance project. Each ADR documents a significant design or technology choice, its context, rationale, and consequences.
The goal of ADR is to give the developer of new language AST for Renaissance a guideline on:
- how to make correct design choice coherent to the ADR during the implementation and gives rationale on why each decision are made.
- minimize the effort for the developer of the new language for renaissance.
- provide insight to the design and evolution of the project for developer of new language and future maintainers and contributors.
Index¶
| # | Title | Status |
|---|---|---|
| 01 | Children and properties | Accepted |
| 02 | Direct access to fields | Accepted |
| 03 | Duck typing for nodes | Accepted |
| 04 | Make nodes immutable | Proposal |
| 05 | Use Python's built-in dunder methods for node behavior | Proposal |
| 06 | Wrapper or adapter for external node shapes | Proposal |
| 07 | Use UV for package & environment management | Proposal |
| 08 | Test Architecture | Accepted |
| 09 | Property-Based Tests | Proposal |
| 10 | Type Hierarchy | Proposal |
| 11 | Parser with Space and Comment | Proposal |
| 12 | Patterns Are Not Nodes | Proposal |
| 13 | Match Pattern | Proposal |
| 14 | Code Repository Structure: Core, Integrations, Recipes, Rejuvenations | Accepted |
ADR template¶
Each ADR follows this structure:
# <number> - <title>
Status: Proposal | Accepted | Deprecated | Superseded
Date: YYYY-MM-DD
Authors: ...
## Table of contents
## Context
## Decision
## Implementation notes
## Example
## Rationale
## Consequences
## Alternatives considered
## Related decisions
---
Revision history:
Revision history:
- 2026-03-27: Created index.
- 2026-03-27: Added ADR 12 (Patterns Are Not Nodes).
- 2026-03-27: Added ADR 13 (Match Pattern) and ADR 14 (Code Repositories).
- 2026-09-02: Updated ADR 14 title to reflect the rules and refactoring-examples layers.
- 2026-09-03: Updated ADR 14 title to reflect the single-repository, extendable directory structure decision (renamed "rules" to "recipes" and "refactoring examples" to "rejuvenations").