Skip to content

Commit a9cbc41

Browse files
authored
Release/v0.5.0 (#45)
* release : v0.5.0 * sync files * sync files * CI checks * CI updates
1 parent 499a1cb commit a9cbc41

3,762 files changed

Lines changed: 142502 additions & 133926 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 152 additions & 40 deletions
Large diffs are not rendered by default.

.gitignore

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,15 @@ backend/**/tmp/
3333
backend/**/status/
3434
backend/**/store/
3535

36+
# Turborepo cache can materialize at the repo root when a ui/ task is run from
37+
# here. ANCHORED so it never matches a domain's own .turbo (those stay ignored
38+
# by each domain's .gitignore per the header note above).
39+
/.turbo/
40+
3641
# WIP work. `/Checklist*` is anchored to the repo root so it cannot match UI
3742
# component files (e.g. ui/.../ChecklistCard.tsx).
3843
/Checklist*
39-
docs/how-to/security
40-
backend/workers/docs/Documents.code-workspace
44+
45+
# local / machine-specific
46+
docs/scripts/check_bullet_stops.py
47+

.gitmessage

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# <type>: <short summary> (max ~72 chars)
2+
#
3+
# Types: feat | fix | docs | refactor | test | chore | perf | style | ci | build
4+
# Format: <type>(<scope>): <summary> e.g. feat(miner): add Antminer S21 support
5+
#
6+
# Body — what & why (wrap at 72 chars):
7+
#
8+
#
9+
# Asana task: <url>
10+
# Related PRs: <links>

CHANGELOG.md

Lines changed: 104 additions & 306 deletions
Large diffs are not rendered by default.

CODE_REVIEW_FINDINGS.md

Lines changed: 0 additions & 145 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 38 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
---
22
title: Contributing
33
description: Contribution workflow for all MDK repositories
4-
docs@tether_slug: community/contributing
4+
docs@tether_slug: support/community/contributing
55
icon: GitPullRequest
66
---
77

88
# Contribute to MDK
99

1010
Thank you for your interest in contributing to [MDK][mdk-repo].
1111

12-
This document outlines the contribution workflow for the MDK repository, from setting up your development environment to submitting pull requests and
13-
participating in releases.
12+
This document outlines the contribution workflow for the MDK repository, from setting up your development environment to
13+
submitting pull requests and participating in releases.
1414

1515
## Security
1616

@@ -24,20 +24,30 @@ MDK is a monorepo with separate backend and frontend workspaces:
2424

2525
- Backend:
2626
- `backend/core/`: Backend services, container modules, and integration/unit tests (npm-based)
27-
- `backend/workers/`: Protocol-translator worker packages (miners, miner-pools, power-meter, temperature, containers), per-worker mock servers, and
27+
- `backend/workers/`: Protocol-translator worker packages (miners, miner-pools, power-meter, temperature, containers),
28+
per-worker mock servers, and
2829
per-worker tests (npm-based)
2930
- Frontend: `ui/`: Frontend packages, demo app, and shared UI foundation (npm + Turbo-based)
3031

3132
Choose the backend or frontend workflow that matches the area you are contributing to.
3233

3334
### Root configuration must be domain-aware
3435

35-
The repo top level is a fixed set of domains (`ui/`, `backend/`, `docs/`, `examples/`) plus tooling and repo-meta files. Shared root config (today just `.gitignore`) is read across all of them, so every pattern must be written so it cannot silently match another domain's source:
36-
37-
- **Anchor anything that targets one domain's build or runtime output.** Use `/name/` for the repo root or `domain/**/name/` for a subtree. A bare `status` / `store` / `tmp` / `Checklist*` matches a file or directory of that name *anywhere*, including UI source. That is exactly what caused a prior root ignore regression, where bare `status` / `store` swallowed `ui/packages/ui-core/src/store/`.
38-
- **Keep per-domain ignores in that domain's own `.gitignore`** (`ui/.gitignore`, the per-package backend `.gitignore`s), not the root. Things like `dist`, `.turbo`, and `build` belong to a domain.
39-
- **Lint/format/type config is domain-owned, not shared at the root.** `ui/` ships its own `eslint.config.mjs` / `tsconfig.base.json` / `.prettierrc`; backend uses `standard`. Do not add a root-level eslint/tsconfig/prettier that would apply across domains.
40-
- **A genuinely shared convention is fine if it applies identically to every domain** - e.g. committing `config/*.json.example` while ignoring the generated `config/*.json`. Note it as shared so the intent is clear.
36+
The repo top level is a fixed set of domains (`ui/`, `backend/`, `docs/`, `examples/`) plus tooling and repo-meta files.
37+
Shared root config (today just `.gitignore`) is read across all of them, so every pattern must be written so it cannot
38+
silently match another domain's source:
39+
40+
- **Anchor anything that targets one domain's build or runtime output.** Use `/name/` for the repo root or `domain/**/name/`
41+
for a subtree. A bare `status` / `store` / `tmp` / `Checklist*` matches a file or directory of that name *anywhere*,
42+
including UI source. That is exactly what caused a prior root ignore regression, where bare `status` / `store`
43+
swallowed `ui/packages/ui-foundation/src/store/`.
44+
- **Keep per-domain ignores in that domain's own `.gitignore`** (`ui/.gitignore`, the per-package backend `.gitignore`s),
45+
not the root. Things like `dist`, `.turbo`, and `build` belong to a domain.
46+
- **Lint/format/type config is domain-owned, not shared at the root.** `ui/` ships its own `eslint.config.mjs` /
47+
`tsconfig.base.json` / `.prettierrc`; backend uses `standard`. Do not add a root-level eslint/tsconfig/prettier
48+
that would apply across domains.
49+
- **A genuinely shared convention is fine if it applies identically to every domain** - e.g. committing
50+
`config/*.json.example` while ignoring the generated `config/*.json`. Note it as shared so the intent is clear.
4151

4252
## Get started
4353

@@ -176,6 +186,19 @@ git checkout -b feat/mdk-new-device
176186
git checkout -b fix/timeout-handling
177187
```
178188

189+
### Commit message template
190+
191+
The repository ships a commit message template at [`.gitmessage`](.gitmessage) that pre-fills the
192+
commit editor with the expected format (type, summary, body, and Asana/Related PR references).
193+
Enable it once per clone:
194+
195+
```bash
196+
git config commit.template .gitmessage
197+
```
198+
199+
This is a local convenience only — it is not enforced, and the [conventional types](#conventional-types)
200+
above remain the source of truth for commit, branch, and PR naming.
201+
179202
### Pull request steps
180203

181204
1. Sync your local main with upstream `main`.
@@ -207,7 +230,8 @@ Use the following convention:
207230
{type}({scope}): {description}
208231
```
209232

210-
Where `{type}` is one of the [conventional types](#conventional-types) and `{scope}` is the affected area, for example `miner` or `ui`.
233+
Where `{type}` is one of the [conventional types](#conventional-types) and `{scope}` is the affected area,
234+
for example `miner` or `ui`.
211235

212236
Examples:
213237

@@ -272,26 +296,15 @@ Key rules:
272296

273297
## Versioning and tagging
274298

275-
### Version tagging
276-
277-
```bash
278-
git checkout main
279-
git pull origin main
280-
281-
git tag -a v1.2.0 -m "Release v1.2.0: Add RTD support"
282-
283-
git push origin main
284-
git push origin v1.2.0
285-
```
286-
287-
### Versioning scheme
288-
289299
MDK follows **Semantic Versioning**:
290300

291301
- **MAJOR** (`1.x.x`): breaking changes
292302
- **MINOR** (`x.1.x`): new backward-compatible features
293303
- **PATCH** (`x.x.1`): backward-compatible bug fixes
294304

305+
When the MDK team provides a release, they are cut from a `release/<version>` branch, verified in CI,
306+
promoted to the public repo, then tagged. For the full release process and checklist, see [RELEASING.md](RELEASING.md).
307+
295308
Happy contributing, and thanks for helping improve MDK! 🚀
296309

297310
## Links

0 commit comments

Comments
 (0)