You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 163833a
Browse filesBrowse the repository at this point in the historyBrowse files
Merged rock-loader: the loader library builds for both net10.0 and net472 so Rock can use it, loads can choose their parts, a fresh-database guard refuses a non-new install, the hosted package index and dataset catalog are readable, and the NuGet package is SparkDevNetwork.Rock.SampleData.Loader 0.1.0-alpha.9 (decisions 120 to 126). All three packages pass verify on Rock 21.0.2
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -139,7 +139,7 @@ and push. Ask me before anything that removes or rewrites history.
139
139
|[photos/](photos/README.md)| The photo rules, the manifest, and the delivered Cast and pool photos. |
140
140
|[graphics/](graphics/README.md)| Reusable church initiative and campaign artwork, beginning with Starting Point. |
141
141
|[builder/](builder/README.md)| The .NET tool that turns this repository into one dataset package per dataset. |
142
-
|[loader/](loader/README.md), `loader-cli/`| The loader library that installs a package into a Rock database, and its command line for developers and test harnesses. |
142
+
|[loader/](loader/README.md), `loader-cli/`, `loader-compat-check/`| The loader library that installs a package into a Rock database (for .NET 10 and for Rock's .NET Framework, as the `SparkDevNetwork.Rock.SampleData.Loader` NuGet package), its command line for developers and test harnesses, and the check that both builds compute the same keys. |
143
143
|[validation/](validation/README.md)| Tolerances and the script that grades generated data, plus the invariants, contract, and standards check the verify tool uses. |
144
144
|[verify/](verify/README.md)| The tool that proves each package works on one exact Rock and writes its receipt. Publishing needs a passing receipt. |
145
145
|[datasets/](datasets/README.md)| One manifest per dataset, with its settings. |
varcampusCount=source.Campuses.Campuses.Count( c =>c.Datasets.Contains(dataset));
59
+
if(card.Key!=dataset||card.Campuses!=campusCount)
60
+
{
61
+
thrownewInvalidDataException($"datasets/{dataset}.json says key {card.Key} and {card.Campuses} campuses, but it is {dataset}, which configuration/campuses.json gives {campusCount} campuses.");
Copy file name to clipboardExpand all lines: builder/README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ A package is a zip of data, never SQL (decision 41). Files keep their paths from
31
31
|`package.json`| The format version, the dataset, the source commit, the one Rock it is for (decision 52), and the SHA-256 of every other file. |
32
32
|`configuration/*.json`| The church setup, unchanged. |
33
33
|`cast/households/*.json`, `cast/groups/*.json`| The Cast and its small group plans, unchanged. |
34
-
|`datasets/{key}.json`| The dataset's settings. |
34
+
|`datasets/{key}.json`| The dataset's settings and its [card](../datasets/README.md#the-dataset-card). |
35
35
|`profile.json`| The calibration profile, already resolved from its sources, so a load never blends sources itself. |
36
36
|`addresses/pool.json`| The address pool for the dataset's campuses only. Each campus's list is unchanged, so generated households get the same addresses. |
37
37
|`photos/manifest.json`, `photos/cast/`, `photos/pool/`| The Cast photos, plus the pool when the dataset gives generated households faces (Core 3). |
@@ -40,7 +40,7 @@ A package is a zip of data, never SQL (decision 41). Files keep their paths from
40
40
41
41
No timeline is stored: the loader generates every gift, attendance, and alert for the install day. Text files use LF line endings, and every zip entry has the same fixed time, so packing the same commit twice gives byte-identical packages.
42
42
43
-
Before writing a package, the builder opens it the way the loader does and reads every file a load reads, so a package that would fail to load is never written.
43
+
Before writing a package, the builder opens it the way the loader does and reads every file a load reads, so a package that would fail to load is never written. It also refuses a manifest without its full dataset card.
Before it writes anything, the loader checks the format version, every file's SHA-256, and that the database is Rock {{rockVersion}}. The load runs in one transaction, so a failure leaves nothing behind. Every row it writes carries `ForeignKey = SampleData:{{dataset}}`.
55
+
Before it writes anything, the loader checks the format version, every file's SHA-256, that the database has no people beyond a new Rock install, and that it is Rock {{rockVersion}}. The load runs in one transaction, so a failure leaves nothing behind. Every row it writes carries `ForeignKey = SampleData:{{dataset}}`.
Copy file name to clipboardExpand all lines: datasets/README.md
+16-1Lines changed: 16 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ One manifest per dataset: [core-1.json](core-1.json), [core-3.json](core-3.json)
6
6
|---|---|---|---|---|
7
7
| Core 1 | Cast | 1 | Every Cast person | Every check |
8
8
| Core 3 | Cast plus 75 companion households each at Peoria and Gilbert | 3 | Cast, plus about half of companions | Every check |
9
-
| Full 7 | Cast plus Crowd (about 25,000)| 7 | Cast only | Last 12 months |
9
+
| Full 7 | Cast. The manifest lists no generated households yet, so the Crowd loads only with the CLI's `--crowd`| 7 | Cast only | Last 12 months |
10
10
11
11
## Manifest settings
12
12
@@ -19,3 +19,18 @@ One manifest per dataset: [core-1.json](core-1.json), [core-3.json](core-3.json)
19
19
|`checkImages.months`| Months of check gifts, counting back from the anchor date, that get scanned check images. 0 means every check. Used only when the builder runs with `--check-images`; `--check-image-months` overrides it. |
20
20
21
21
The manifest grows as the builder reads more settings from it. Campuses are listed per dataset in `../configuration/campuses.json`.
22
+
23
+
## The dataset card
24
+
25
+
Rock's installer shows a card for each dataset, so a church admin can choose one (decision 124). The loader embeds these fields and serves them as `SampleDataDatasets` (see the [loader README](../loader/README.md#the-dataset-catalog)). Every field is required, and the builder refuses a manifest that is missing one.
26
+
27
+
| Field | Meaning |
28
+
|---|---|
29
+
|`summary`| One or two plain sentences: who is in the dataset. |
30
+
|`bestFor`| One plain sentence: what the dataset is best for. |
31
+
|`highlights`| Two to four short phrases. |
32
+
|`people`, `households`| People and family households (businesses included) a load adds, measured from a real load at the default seed and 3 years of history. Verify fails a load more than 2% away from either. |
33
+
|`campuses`| The dataset's campuses. Must match `../configuration/campuses.json`. |
34
+
|`typicalInstallSeconds`| The median of three measured loads of every part, check images included, in whole seconds. |
35
+
36
+
Write the text for a church admin choosing what to install. Follow the [content standards](../docs/content-standards.md) and the writing rules in [AGENTS.md](../AGENTS.md): plain, short sentences and no em dashes. Leave out numbers the number fields already give, so the text never goes stale.
0 commit comments