Skip to content

Commit 757f35a

Browse files
committed
Record vendored licenses and split future syncs in two
An audit of a vendored tree needs to answer two questions the table could not: what license the code arrived under, and when it was taken. The license each package declares and the date the copy landed are now columns beside the upstream commit that supplies the other half of the provenance. The sync procedure now lands the pristine upstream copy and the re-applied patches as separate commits, so the unmodified upstream state is something an auditor can check out rather than reconstruct by subtracting a ledger from a merged tree.
1 parent 959a96e commit 757f35a

1 file changed

Lines changed: 23 additions & 6 deletions

File tree

docs/VENDORING.md

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,18 @@ points straight at `./src/*.ts` files rather than a `dist/` build.
2121

2222
## What's vendored
2323

24-
| Package | Vendor path | Synced from upstream commit | Local patches |
25-
|---|---|---|---|
26-
| `@intx/inference` | `vendor/intx-inference/` | `cd7c5a37747dc39713d1efd24296ea861e6ac82a` | Yes — see `vendor/intx-inference/PATCHES.md` |
27-
| `@intx/types` | `vendor/intx-types/` | `cd7c5a37747dc39713d1efd24296ea861e6ac82a` | None — verbatim |
28-
| `@intx/storage-isogit` | `vendor/intx-storage-isogit/` | `cd7c5a37747dc39713d1efd24296ea861e6ac82a` | None — verbatim |
24+
| Package | Vendor path | License | Synced from upstream commit | Retrieved | Local patches |
25+
|---|---|---|---|---|---|
26+
| `@intx/inference` | `vendor/intx-inference/` | LGPL-2.1-only | `cd7c5a37747dc39713d1efd24296ea861e6ac82a` | 2026-08-08 | Yes — see `vendor/intx-inference/PATCHES.md` |
27+
| `@intx/types` | `vendor/intx-types/` | LGPL-2.1-only | `cd7c5a37747dc39713d1efd24296ea861e6ac82a` | 2026-08-08 | None — verbatim |
28+
| `@intx/storage-isogit` | `vendor/intx-storage-isogit/` | LGPL-2.1-only | `cd7c5a37747dc39713d1efd24296ea861e6ac82a` | 2026-08-08 | None — verbatim |
29+
30+
The license column records what each package declares in its own
31+
`package.json`; the corresponding `LICENSE` file travels with every vendored
32+
tree and is never edited during a sync. Corbits Code is distributed under
33+
GPLv2, which LGPL-2.1 permits. Retrieval dates are when the copy landed here,
34+
not when the upstream commit was authored — an audit needs both, and the
35+
upstream commit hash supplies the other half.
2936

3037
All three were synced together in one pass because they are not
3138
independently upgradable: the reactor's approval-suspend primitive (upstream
@@ -116,4 +123,14 @@ same commit should show ONLY those marked lines changed.
116123
should move all three together, even if only one had code changes worth
117124
vendoring — otherwise the trio drifts out of the single-commit coherence
118125
this document assumes.
119-
5. Update this document's table with the new commit hash.
126+
5. Update this document's table with the new commit hash and retrieval date.
127+
6. Land the sync as **two commits, in this order**: first the pristine
128+
upstream copy with no local changes, then the re-applied patches. The
129+
point is that the unmodified upstream state becomes a checkout rather
130+
than a reconstruction — an auditor diffs one commit against the upstream
131+
clone and is done, instead of subtracting a prose ledger from a merged
132+
tree. It also makes the next upgrade cheaper, because the patch commit is
133+
exactly the thing to replay. The 2026-08-08 sync landed as a single
134+
commit and does not have this property; `PATCHES.md` is what makes that
135+
tree reconstructible, which is why that ledger is load-bearing rather
136+
than merely descriptive.

0 commit comments

Comments
 (0)