Skip to content

Commit 4fa5642

Browse files
committed
Clarify README introduction
1 parent 05a9601 commit 4fa5642

1 file changed

Lines changed: 21 additions & 7 deletions

File tree

README.md

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,44 @@
1717

1818
## Introduction
1919

20-
This repository provides the NAM consumer module together with the smoke,
21-
documentation, vendored `ExternalData` patch, and CI needed to keep the
22-
consumer-side build graph stable.
20+
This repository is the engine behind NAM.
21+
22+
It provides an include-only CMake consumer module that:
23+
24+
- reads `.dvc` manifests from a local manifest checkout
25+
- resolves payloads from `GitHub Release assets` into one shared local object store
26+
- materializes normal files into build trees through `hardlink`, `symlink`, or `copy`
27+
- keeps the consumer build graph on public `CMake ExternalData` APIs
28+
29+
The repository also carries the smoke consumer, documentation, vendored
30+
`ExternalData` patch, and CI needed to keep that flow stable.
2331

2432
The official first-party Nabla manifest registry now lives in:
2533

2634
- `https://github.com/Devsh-Graphics-Programming/Nabla-Asset-Manifests`
2735

2836
The module itself is not meant to be Nabla-only. Other projects can vendor
2937
`nam.cmake`, keep their own `.dvc`-based manifest repository, publish payloads
30-
through `GitHub Release assets`, and reuse the same build-time materialization
31-
model without changing consumer call sites.
38+
through `GitHub Release assets`, and reuse the same consumer-side
39+
materialization model without changing call sites.
3240

3341
Current scope is intentionally narrow. For now the only supported remote
3442
payload backend is `GitHub Release assets`, and no additional backends are
3543
planned in the near term.
3644

45+
### Why this exists
46+
3747
The current Nabla examples layout at:
3848

3949
- `https://github.com/Devsh-Graphics-Programming/Nabla-Example-And-Tests-Media`
4050

41-
looks deceptively harmless because it is "just for examples", but it is already enough to create real operational problems. This is not a theoretical warning. The pattern is already known in practice to slow normal workflows down, make asset maintenance heavier than it should be, work against setups such as Git worktrees, and couple ordinary source-control operations to large binary payload churn. That is a design mistake for asset distribution, even in an examples-only repository, and this pattern should be avoided in other projects as well.
51+
looks harmless because it is "just for examples", but it already creates real
52+
operational problems. Large binary payloads inside ordinary Git workflows slow
53+
down normal source-control operations, make maintenance heavier, work against
54+
setups such as Git worktrees, and couple code history to binary churn.
4255

43-
The core argument is simple. Source control should keep code and small reviewable metadata. Heavy payloads should stay outside normal Git history.
56+
The core argument is simple. Source control should keep code and small
57+
reviewable metadata. Heavy payloads should stay outside normal Git history.
4458

4559
## Model
4660

0 commit comments

Comments
 (0)