repository name
This commit is contained in:
87
reference/decisions/ADR-001-repository-name.md
Normal file
87
reference/decisions/ADR-001-repository-name.md
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# ADR-001: Use `ota-reference-design` as the Repository Name
|
||||||
|
|
||||||
|
* **Status:** Accepted
|
||||||
|
* **Date:** 2026-07-29
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
The project requires a repository name that communicates its purpose clearly without tying the design to a single hardware platform, implementation language, or update framework.
|
||||||
|
|
||||||
|
The repository will contain:
|
||||||
|
|
||||||
|
* architectural documentation;
|
||||||
|
* OTA design decisions;
|
||||||
|
* diagrams;
|
||||||
|
* reference implementations;
|
||||||
|
* update tooling;
|
||||||
|
* failure-injection experiments;
|
||||||
|
* security and reliability analysis.
|
||||||
|
|
||||||
|
The initial practical implementation may use Raspberry Pi hardware, but the overall design should remain applicable to other embedded Linux platforms.
|
||||||
|
|
||||||
|
The repository is not intended to provide a production-ready OTA framework or a reusable software library. Its primary purpose is to demonstrate and explain the architecture of a reliable and secure OTA update system.
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
|
||||||
|
The repository will be named:
|
||||||
|
|
||||||
|
```text
|
||||||
|
ota-reference-design
|
||||||
|
```
|
||||||
|
|
||||||
|
The repository will initially remain a standalone top-level repository rather than being placed under a broader group such as `engineering`, `embedded-systems`, or `systems-engineering`.
|
||||||
|
|
||||||
|
## Alternatives Considered
|
||||||
|
|
||||||
|
### `embedded-ota-lab`
|
||||||
|
|
||||||
|
This name emphasizes experimentation and practical work.
|
||||||
|
|
||||||
|
It was not selected because the project will contain more than experiments. It will also document architecture, security, reliability, design decisions, and implementation trade-offs.
|
||||||
|
|
||||||
|
### `ota-update-lab`
|
||||||
|
|
||||||
|
This name is simple but somewhat redundant because OTA already means over-the-air updating.
|
||||||
|
|
||||||
|
It also makes the project sound more like a temporary collection of experiments than a structured reference design.
|
||||||
|
|
||||||
|
### `reliable-ota`
|
||||||
|
|
||||||
|
This name emphasizes one of the primary goals of the project.
|
||||||
|
|
||||||
|
It was not selected because it does not clearly communicate that the repository is educational and architectural rather than a production-ready OTA product.
|
||||||
|
|
||||||
|
### A Repository Under an `engineering` Group
|
||||||
|
|
||||||
|
A broader parent group could eventually contain several related repositories.
|
||||||
|
|
||||||
|
It was not selected at this stage because a group containing only one repository adds unnecessary hierarchy and does not yet provide meaningful organization.
|
||||||
|
|
||||||
|
## Consequences
|
||||||
|
|
||||||
|
### Positive
|
||||||
|
|
||||||
|
* The name clearly communicates that the project is an OTA reference design.
|
||||||
|
* The repository is not tied to Raspberry Pi or any other specific platform.
|
||||||
|
* The name allows the project to include documentation, code, diagrams, and experiments.
|
||||||
|
* Readers are less likely to mistake the project for a production-ready framework.
|
||||||
|
* The name remains appropriate if additional hardware platforms are added later.
|
||||||
|
|
||||||
|
### Negative
|
||||||
|
|
||||||
|
* The name is broader than the initial Raspberry Pi implementation.
|
||||||
|
* Readers may still require the README to understand the exact project scope.
|
||||||
|
* The term “reference design” may suggest a more complete implementation than exists during the early stages of development.
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
A broader repository group may be introduced later if several related systems-engineering projects are created.
|
||||||
|
|
||||||
|
Possible future group names include:
|
||||||
|
|
||||||
|
```text
|
||||||
|
embedded-systems
|
||||||
|
systems-engineering
|
||||||
|
```
|
||||||
|
|
||||||
|
Moving the repository into such a group would not require changing the repository name.
|
||||||
Reference in New Issue
Block a user