Skip to content

Commit 5eb433f

Browse files
committed
Split module from first-party manifests
1 parent c231777 commit 5eb433f

37 files changed

Lines changed: 53 additions & 1570 deletions

.dvc/.gitignore

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

.dvc/config

Lines changed: 0 additions & 1 deletion
This file was deleted.

.dvcignore

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

.github/workflows/pages.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
curl -L --fail \
3434
-o site/auxiliary/externaldata-flow-kitware.jpg \
3535
https://github.com/Devsh-Graphics-Programming/Nabla-Asset-Manifests/releases/download/pages-assets/externaldata-flow-kitware.jpg
36-
git clone --quiet https://github.com/Devsh-Graphics-Programming/Nabla-Asset-Manifests.git repo-size-check
36+
git clone --quiet https://github.com/Devsh-Graphics-Programming/Nabla-Asset-Module.git repo-size-check
3737
python - <<'PY'
3838
import json
3939
from pathlib import Path
@@ -48,7 +48,7 @@ jobs:
4848
}
4949
Path("site/metrics/repo-size.json").write_text(json.dumps(payload), encoding="utf-8")
5050
PY
51-
printf '%s\n' '<!doctype html><meta charset="utf-8"><title>Nabla Asset Manifests Pages</title>' > site/index.html
51+
printf '%s\n' '<!doctype html><meta charset="utf-8"><title>Nabla Asset Module Pages</title>' > site/index.html
5252
touch site/.nojekyll
5353
5454
- uses: actions/upload-pages-artifact@v4

.github/workflows/smoke.yml

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88

99
jobs:
1010
smoke:
11-
name: ${{ matrix.os }} / ${{ matrix.manifest_source }} / ${{ matrix.link_mode }}
11+
name: ${{ matrix.os }} / ${{ matrix.link_mode }}
1212
runs-on: ${{ matrix.os }}
1313
timeout-minutes: 20
1414
strategy:
@@ -21,9 +21,6 @@ jobs:
2121
- symlink
2222
- hardlink
2323
- copy
24-
manifest_source:
25-
- internal
26-
- external
2724
include:
2825
- os: ubuntu-latest
2926
native_build_arg: -j1
@@ -37,20 +34,18 @@ jobs:
3734
steps:
3835
- uses: actions/checkout@v6
3936

40-
- name: Checkout external manifests
41-
if: matrix.manifest_source == 'external'
37+
- name: Checkout first-party manifests
4238
uses: actions/checkout@v6
4339
with:
44-
repository: AnastaZIuk/nam-smoke-manifests
45-
path: external-manifests
40+
repository: Devsh-Graphics-Programming/Nabla-Asset-Manifests
41+
path: official-manifests
4642

4743
- name: Restore NAM cache
4844
uses: actions/cache@v5
4945
with:
5046
path: ${{ env.NAM_CACHE_ROOT }}
51-
key: nam-cache-${{ runner.os }}-${{ matrix.manifest_source }}-${{ hashFiles('media/**/*.dvc', 'external-manifests/media/**/*.dvc') }}
47+
key: nam-cache-${{ runner.os }}-${{ hashFiles('official-manifests/**/*.dvc') }}
5248
restore-keys: |
53-
nam-cache-${{ runner.os }}-${{ matrix.manifest_source }}-
5449
nam-cache-${{ runner.os }}-
5550
5651
- name: Configure smoke
@@ -62,13 +57,9 @@ jobs:
6257
'-S', 'smoke',
6358
'-B', $env:SMOKE_BUILD_DIR,
6459
"-DNAM_SMOKE_CACHE_ROOT=$env:NAM_CACHE_ROOT",
60+
"-DNAM_SMOKE_MANIFEST_ROOT=$env:GITHUB_WORKSPACE/official-manifests",
6561
"-DNAM_SMOKE_LINK_MODE=${{ matrix.link_mode }}"
6662
)
67-
if ('${{ matrix.manifest_source }}' -eq 'external') {
68-
$cmakeArgs += "-DNAM_SMOKE_MANIFEST_ROOT=$env:GITHUB_WORKSPACE/external-manifests"
69-
$cmakeArgs += '-DNAM_SMOKE_REPO=AnastaZIuk/nam-smoke-manifests'
70-
$cmakeArgs += '-DNAM_SMOKE_TAG=media'
71-
}
7263
& cmake @cmakeArgs
7364
7465
- name: Build smoke

README.md

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,34 @@
11
<div align="center">
2-
<img alt="Click to see the source" height="200" src="https://devsh-graphics-programming.github.io/Nabla-Asset-Manifests/auxiliary/nabla-glow.svg" width="200" />
2+
<img alt="Click to see the source" height="200" src="https://devsh-graphics-programming.github.io/Nabla-Asset-Module/auxiliary/nabla-glow.svg" width="200" />
33
</div>
44

55
<p align="center">
6-
<a href="https://github.com/Devsh-Graphics-Programming/Nabla-Asset-Manifests/actions/workflows/smoke.yml">
7-
<img src="https://github.com/Devsh-Graphics-Programming/Nabla-Asset-Manifests/actions/workflows/smoke.yml/badge.svg" alt="Smoke Status" /></a>
8-
<a href="https://github.com/Devsh-Graphics-Programming/Nabla-Asset-Manifests">
9-
<img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fdevsh-graphics-programming.github.io%2FNabla-Asset-Manifests%2Fmetrics%2Frepo-size.json" alt="Repository size" /></a>
6+
<a href="https://github.com/Devsh-Graphics-Programming/Nabla-Asset-Module/actions/workflows/smoke.yml">
7+
<img src="https://github.com/Devsh-Graphics-Programming/Nabla-Asset-Module/actions/workflows/smoke.yml/badge.svg" alt="Smoke Status" /></a>
8+
<a href="https://github.com/Devsh-Graphics-Programming/Nabla-Asset-Module">
9+
<img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fdevsh-graphics-programming.github.io%2FNabla-Asset-Module%2Fmetrics%2Frepo-size.json" alt="Repository size" /></a>
1010
<a href="https://opensource.org/licenses/Apache-2.0">
1111
<img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="License: Apache 2.0" /></a>
1212
<a href="https://discord.gg/krsBcABm7u">
1313
<img src="https://img.shields.io/discord/308323056592486420?label=discord&logo=discord&logoColor=white&color=7289DA" alt="Join our Discord" /></a>
1414
</p>
1515

16-
# Nabla Asset Manifests
16+
# Nabla Asset Module
1717

1818
## Introduction
1919

20-
This repository provides the NAM consumer module together with the first-party
21-
Nabla manifest registry and release-backed payload channels, without forcing
22-
large binary payloads into normal Git history.
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.
2323

24-
The repository itself is first-party Nabla infrastructure, but the consumer
25-
module is not meant to be Nabla-only. Other projects can vendor
24+
The official first-party Nabla manifest registry now lives in:
25+
26+
- `https://github.com/Devsh-Graphics-Programming/Nabla-Asset-Manifests`
27+
28+
The module itself is not meant to be Nabla-only. Other projects can vendor
2629
`nam.cmake`, keep their own `.dvc`-based manifest repository, publish payloads
2730
through `GitHub Release assets`, and reuse the same build-time materialization
28-
model.
31+
model without changing consumer call sites.
2932

3033
Current scope is intentionally narrow. For now the only supported remote
3134
payload backend is `GitHub Release assets`, and no additional backends are
@@ -56,9 +59,9 @@ At a high level this follows the same pattern used by mature package and artifac
5659
- content-addressed external test data in `CMake ExternalData`, used by projects such as `VTK`
5760

5861
The same consumer module is also meant to stay reusable beyond Nabla itself.
59-
This repository is the first-party Nabla registry, but consumers can point the
60-
module at a different manifest checkout and a different `GitHub Release`
61-
channel without changing the build-graph model.
62+
The default first-party registry is `Devsh-Graphics-Programming/Nabla-Asset-Manifests`,
63+
but consumers can point the module at a different manifest checkout and a
64+
different `GitHub Release` channel without changing the build-graph model.
6265

6366
## Evidence
6467

@@ -139,7 +142,7 @@ This is the exact consumer model we want:
139142
- no requirement for consumers to know which remote backend served the blob
140143

141144
<p align="center">
142-
<img src="https://devsh-graphics-programming.github.io/Nabla-Asset-Manifests/auxiliary/externaldata-flow-kitware.jpg" alt="CMake ExternalData content flow" width="560" />
145+
<img src="https://devsh-graphics-programming.github.io/Nabla-Asset-Module/auxiliary/externaldata-flow-kitware.jpg" alt="CMake ExternalData content flow" width="560" />
143146
</p>
144147
<p align="center">
145148
<sub>reference: <a href="https://www.kitware.com/cmake-externaldata-using-large-files-with-distributed-version-control/">kitware</a></sub>
@@ -183,7 +186,7 @@ Release publishing policy in this prototype is intentionally simple:
183186
- standalone assets are published as individual files
184187
- bundles are published as zip archives
185188

186-
## Target layout
189+
## First-party registry layout
187190

188191
<details>
189192
<summary>Click to expand</summary>
@@ -233,4 +236,6 @@ licenses/
233236

234237
This is only the starting point.
235238

236-
The repository is intentionally designed so that the rest of the current Nabla `media` tree can be migrated here later under the same model.
239+
The official first-party Nabla registry is intentionally designed so that the
240+
rest of the current Nabla `media` tree can be migrated there later under the
241+
same model.

cmake/README.md

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@ The public entrypoint is:
1818
### Minimal usage
1919

2020
```cmake
21-
include("${asset_manifests_repo}/nam.cmake")
21+
include("${nam_module_repo}/nam.cmake")
2222
2323
nam_add_channel_target(
2424
TARGET media
25+
MANIFEST_ROOT "${asset_manifests_repo}"
2526
)
2627
```
2728

@@ -36,7 +37,7 @@ Building target `media` then:
3637
### Explicit usage
3738

3839
```cmake
39-
include("${asset_manifests_repo}/nam.cmake")
40+
include("${nam_module_repo}/nam.cmake")
4041
4142
nam_add_channel_target(
4243
TARGET media
@@ -65,6 +66,12 @@ nam_add_channel_target(
6566
- `NO_SYMLINKS = OFF`
6667
- `VERBOSE = OFF`
6768

69+
For the official first-party Nabla registry you normally set `MANIFEST_ROOT`
70+
explicitly to a local checkout of
71+
`Devsh-Graphics-Programming/Nabla-Asset-Manifests`. The built-in
72+
`MANIFEST_ROOT` default remains useful for repositories that colocate the
73+
module and their manifests in the same tree.
74+
6875
## Custom manifest repository
6976

7077
The consumer module can also read manifests from a different local checkout
@@ -99,7 +106,10 @@ Current scope stays intentionally small:
99106
- manifest discovery can come from a different local repository via
100107
`MANIFEST_ROOT`
101108
- remote payload resolution still uses `GitHub Release assets` only
102-
- the built-in Nabla defaults remain unchanged when `MANIFEST_ROOT` is omitted
109+
- the default first-party Nabla registry stays
110+
`Devsh-Graphics-Programming/Nabla-Asset-Manifests`
111+
- the built-in `MANIFEST_ROOT` default remains available for colocated
112+
module-plus-manifest repositories
103113

104114
`<ENTRY>` resolves per platform:
105115

@@ -117,7 +127,7 @@ shipped with the host CMake instead.
117127

118128
## Source of truth
119129

120-
For input assets the source of truth is:
130+
For input assets the source of truth inside a manifest registry repository is:
121131

122132
- the physical channel tree such as `media/`
123133
- `.dvc` files created by `dvc add`
@@ -254,24 +264,24 @@ consumer to verify:
254264
Typical local smoke runs are:
255265

256266
```powershell
257-
cmake -S smoke -B smoke/build
267+
cmake -S smoke -B smoke/build -DNAM_SMOKE_MANIFEST_ROOT=C:/path/to/Nabla-Asset-Manifests
258268
cmake --build smoke/build --config Debug --target media -- /m:1
259269
```
260270

261271
```bash
262-
cmake -S smoke -B smoke/build
272+
cmake -S smoke -B smoke/build -DNAM_SMOKE_MANIFEST_ROOT=/path/to/Nabla-Asset-Manifests
263273
cmake --build smoke/build --target media -- -j1
264274
```
265275

266276
Forced copy mode:
267277

268278
```powershell
269-
cmake -S smoke -B smoke/build -DNAM_SMOKE_NO_SYMLINKS=ON
279+
cmake -S smoke -B smoke/build -DNAM_SMOKE_MANIFEST_ROOT=C:/path/to/Nabla-Asset-Manifests -DNAM_SMOKE_NO_SYMLINKS=ON
270280
cmake --build smoke/build --config Debug --target media -- /m:1
271281
```
272282

273283
```bash
274-
cmake -S smoke -B smoke/build -DNAM_SMOKE_NO_SYMLINKS=ON
284+
cmake -S smoke -B smoke/build -DNAM_SMOKE_MANIFEST_ROOT=/path/to/Nabla-Asset-Manifests -DNAM_SMOKE_NO_SYMLINKS=ON
275285
cmake --build smoke/build --target media -- -j1
276286
```
277287

@@ -294,9 +304,9 @@ The smoke verification script then reports:
294304

295305
Maintainers do not maintain a separate consumer catalog.
296306

297-
The maintainer-facing flow is only:
307+
In a manifest registry repository the maintainer-facing flow is only:
298308

299-
1. update the physical tree under `media/`
309+
1. update the physical tree under the chosen channel such as `media/`
300310
2. run `dvc add` on the changed standalone file or bundle directory
301311
3. commit the updated `.dvc` metadata to Git
302312
4. publish the matching payloads to the backend release channel

licenses/ABC_DATASET_LICENSE.txt

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

licenses/ASSIMP_LICENSE.txt

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

licenses/GATECH_LARGE_MODELS_NOTICE.txt

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

0 commit comments

Comments
 (0)