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

🏗♻️:future-proof architecture decision records #655

Merged
merged 19 commits into from
Jan 3, 2024
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
150d190
🏗♻️:future-proof architecture decision records
DerekNonGeneric Dec 26, 2023
e638b70
fix(doc): repair incongruences from refactoring
DerekNonGeneric Dec 27, 2023
6429be5
Update doc/collections/_adrs/0001-decision-to-record-decisions.md
DerekNonGeneric Dec 27, 2023
4d52118
Update doc/collections/_adrs/0001-decision-to-record-decisions.md
DerekNonGeneric Dec 27, 2023
a0e1628
Update doc/collections/_adrs/0001-decision-to-record-decisions.md
DerekNonGeneric Dec 27, 2023
180088d
Update doc/collections/_adrs/0001-decision-to-record-decisions.md
DerekNonGeneric Dec 27, 2023
7d316a4
Update doc/collections/_adrs/0001-decision-to-record-decisions.md
DerekNonGeneric Dec 27, 2023
69784b0
Update doc/collections/_adrs/0003-decision-to-use-build-dir-dist-subd…
DerekNonGeneric Dec 27, 2023
5baeb47
Update doc/collections/_adrs/0003-decision-to-use-build-dir-dist-subd…
DerekNonGeneric Dec 27, 2023
0d3e51e
Update doc/collections/_adrs/0001-decision-to-record-decisions.md
DerekNonGeneric Dec 28, 2023
8cbdac0
Update doc/collections/_adrs/0001-decision-to-record-decisions.md
DerekNonGeneric Dec 28, 2023
29ef237
Update doc/collections/_adrs/0001-decision-to-record-decisions.md
DerekNonGeneric Dec 28, 2023
ebfd93b
Update doc/collections/_adrs/0001-decision-to-record-decisions.md
DerekNonGeneric Dec 28, 2023
093d2ca
Update doc/collections/_adrs/0001-decision-to-record-decisions.md
DerekNonGeneric Dec 28, 2023
7783508
Merge branch 'main' into feat/future-proof-arch
DerekNonGeneric Jan 2, 2024
92bf2f5
A good new file naming convention includes a Markdown amalgamation
DerekNonGeneric Jan 3, 2024
c6df694
Merge branch 'main' into feat/future-proof-arch
DerekNonGeneric Jan 3, 2024
6675a44
Update doc/collections/_adrs/0003--decision_for_build_dir_logic.jekyll
DerekNonGeneric Jan 3, 2024
9f26baf
Update doc/collections/_adrs/0003--decision_for_build_dir_logic.jekyll
DerekNonGeneric Jan 3, 2024
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
6 changes: 6 additions & 0 deletions doc/collections/_adrs/0001--decision_for_decisions.jekyll
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

## ADR 0001: Decision for Decisions

### Context

Decision: Acceptable to document reasoning of choices
Original file line number Diff line number Diff line change
@@ -1,46 +1,26 @@
## ADR 001: Decision to Use Monorepos

Date: 2023-04-19
## ADR 0002: Decision for Monorepos

Authors: Bard, @DerekNonGeneric

Decision: We will use monorepos for our projects.

### Forces
### Context

- Technical forces:
- Monorepos makes it easier to share code and dependencies between projects.
- Monorepos can help improve code quality by making finding and fixing bugs
easier.
- Monorepos can help improve code quality by finding and fixing bugs easier.
- Monorepos can help improve developer productivity by making it easier to
find and use the code you need.

- Business forces:
- Monorepos can help to improve collaboration between teams by making it
easier to share code and resources.
- Monorepos can help improve team communication by making it easier to track
changes and resolve conflicts.
- Monorepos can help improve the organization's overall agility by making it
easier to launch new products and features.

- Organizational forces:
- Monorepos can help improve the organization's overall security by making it
easier to track and manage vulnerabilities.
- Monorepos can help improve the organization's overall compliance by making
it easier to track and manage regulatory requirements.
- Monorepos can help improve the organization's overall governance by making
it easier to define and enforce policies.

### Reasoning

After considering the forces, monorepos are our projects' best choice. Monorepos
will allow us to share code and dependencies between projects, improve code
quality, improve developer productivity, improve collaboration between teams,
improve communication between teams, enhance the overall agility of the
organization, improve the overall security of the organization, improve the
overall compliance of the organization, and improve the overall governance of
the organization.

### Next steps

We will begin the process of migrating our projects to monorepos. We will keep
the team up-to-date on our progress and ensure everyone is on board with the
change.
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
## ADR 002: Use of a "build" Directory for Build System Logic

Date: 2023-05-11 Status: Accepted

Authors: Bard, Claude, @DerekNonGeneric
## ADR 0003: Decision for “build” Directory of Build Logic

### Context

We needed to determine where to place build-related scripts/configurations as
well as build artifacts (object files, binaries, etc.) in the repository
structure.
well as build artifacts (object files, binaries, etc.).

### Decision

Expand All @@ -27,14 +23,13 @@ We decided to have two directories:
└── 📂 dist
```

### Consequences
### Results

#### For "build"
#### For `build`

- Provides isolation of build-specific logic from source code
- Allows flexibility for platform/configuration-specific builds
- Follows conventions established by large cross-platform web browsers like
Firefox and Chromium
- Follows conventions established by large cross-platform software
- Simplifies contribution for new contributors by following expected conventions

Linguist prefers `.gitattributes` to be configured as below; otherwise, may
Expand All @@ -44,14 +39,14 @@ believe this directory to contain generated (non-source) build products.[^1]
build/** linguist-generated=false
```

#### For "dist"
#### For `dist`

- Final build artifacts clearly separated from the source code and buildsystem
- Artifacts can be packaged or deployed directly from the "dist" directory
- The "dist" directory can be emptied or archived without impacting source or
build files
buildsystem files.

We configure `.gitattributes` to be configured like so.[^1]
We configure `.gitattributes` to be configured as seen here:[^1]

```gitattributes
dist/** linguist-generated=true
Expand All @@ -61,6 +56,5 @@ dist/** linguist-generated=true

- Implement the decision
- Test the implementation
- Release the implementation to the public

[^1]: https://github.com/github-linguist/linguist/blob/master/docs/overrides.md