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 1bbccbb
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: WIP.ExamplesBuild.md
+39-6Lines changed: 39 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,10 +12,10 @@ compiles](docs/Documentation/Authoring.md) in Authoring.md.
12
12
13
13
## State
14
14
15
-
Of 1,249`tb` fences in 613 pages, **1,197 are marked `check_build`** and compile, and 52
16
-
are `inert` with a recorded reason. **None is undecided**, so the backlog the census measures
17
-
is empty. No fence is an `excerpt`. The run takes about 110 s. 33 of the marked samples are
18
-
also `check_run`.
15
+
Of 1,530`tb` fences in 749 pages, **1,370 are marked `check_build`** and compile, and 159
16
+
are `inert` with a recorded reason (107 of them OLEGuids' method signatures).
17
+
**None is undecided**, so the backlog the census measures is empty. No fence is an
18
+
`excerpt`. The run takes about 110 s. 88 of the marked samples are also `check_run`.
19
19
20
20
New marked samples should come from editing pages, not from marking: the unmarked fences
21
21
that are left are not programs (see [What cannot be marked](#what-cannot-be-marked)).
@@ -298,17 +298,50 @@ updates it, which beats a sample that quietly stops demonstrating anything.
298
298
299
299
Version-controlled exported trees under `test/example-projects/<name>/` --- a `Settings`
300
300
file plus `Sources/`, exactly what `node scripts/impexp.mjs export` produces and what `tbrun`
301
-
already consumes. Three exist:
301
+
already consumes. Three whole ones exist:
302
302
303
303
| template | references | for |
304
304
|---|---|---|
305
305
|`console`| stdole, VB (Forms), AppGlobalClassObject | everything by default |
306
306
|`packages`| the above plus all eleven other shipped packages |`Reference/Built-In/` and the package tutorials |
307
307
|`form`|`console`, a delta | a `check_run` sample that needs a real form: drawing, `Cls`, `Print`, `Scale`, a form property. Never inferred: a fence says `project=form`|
308
+
|`contributed-<Package>`|`console`, a delta: one `Settings` referencing one documented TWINSERV package, embedded |`Reference/Contributed/<Package>/`|
308
309
309
310
(The table is the three whole templates. The deltas over them --- `vb-private`, `cc-private`,
310
311
`wnc-private`, `cef-private`, `implicit`, `cef`, `webview2` --- are `TEMPLATE_BASE` in
311
-
`scripts/lib/example-batches.mjs`, with `form`.)
312
+
`scripts/lib/example-batches.mjs`, with `form` and the `contributed-<Package>` ones, which
313
+
`TEMPLATE_BASE` gets from the directories so named.)
314
+
315
+
**`contributed-<Package>`: packages embedded, not committed.** A project uses a TWINSERV
316
+
package by embedding its whole exported tree under `Packages/<symbolId>/`, with a reference
317
+
whose `path32` and `path64` are `/Packages/<symbolId>` (an AutoCompleteLib `.twinpack` embeds
318
+
AutoCompleteGuids this way). A template commits only that `Settings`; `embeddedPackages`
319
+
reads the references, and `fetchEmbedded` in `check_examples.mjs` downloads each package at
320
+
the reference's version from TWINSERV into `%TEMP%\tb-twinserv\<id>_<version>.twinpack`,
321
+
unpacks it beside, and copies it into every batch staged from the template. The code is not
322
+
the repository's to commit: four of the nine ship no licence file, and WinReg embeds WinDevLib,
323
+
14 MB.
324
+
325
+
-**One template per package, because a reader's project references one.** With the nine in
326
+
one project, VBA_JSON's `Dictionary` class hid the `Scripting.Dictionary` that WinReg's
327
+
samples name.
328
+
-**A project does not see the names a package's own references declare.** WinReg embeds
329
+
WinDevLib, and its samples' `HKEY_CURRENT_USER`, `REGTYPES` and `BOOL` were unresolved
330
+
until `contributed-WinReg` referenced WinDevLib (at the version WinReg embeds, 8.8.0.507)
331
+
and the Scripting Runtime itself. The WinReg landing page tells the reader the same.
332
+
-**An error inside an embedded package is the package's, and fails nothing**
333
+
(`splitPackageFaults`). BigNumberLib 0.0.0.0 and WinReg 0.0.0.0 do not compile on BETA
334
+
1005: each passes a pointer to a `ByRef` structure parameter without `ByVal` (TB5001). The
335
+
template-alone build finds those rows; the run prints them as a note naming the package
336
+
rather than as a template FAIL, every other template row still fails, and the samples are
337
+
judged by their own rows as before. Their landing pages say so in a NOTE, and both sections
338
+
are excluded from the site until the packages compile; `examples.bat` still compiles their
339
+
samples, since it reads every page under `docs/` whatever `exclude:` says.
340
+
-**When a section's `indexed_from` moves to a new version, change the version fields in its
341
+
`test/example-projects/contributed-<Package>/Settings` with it**, or its samples compile
342
+
against the old package. A new contributed section needs a template of its own: a copy of
343
+
another's `Settings` with the reference's `id`, `name`, `symbolId`, `path32`, `path64` and
344
+
version fields (strings) changed, from the package's own `Settings` and its TWINSERV version.
312
345
313
346
**Template inheritance.**`TEMPLATE_BASE` names each template's base. The stager copies
314
347
base-first, delta-over, so a template holds only the files that *differ*: `vb-private` is
0 commit comments