@fairgarden/distribution 0.1.0-alpha.1 → 0.1.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/Readme.md +3 -3
  2. package/dist/add-module.d.ts +4 -0
  3. package/dist/add-module.d.ts.map +1 -1
  4. package/dist/add-module.js +29 -0
  5. package/dist/add-module.js.map +1 -1
  6. package/dist/calver.d.ts +65 -0
  7. package/dist/calver.d.ts.map +1 -0
  8. package/dist/calver.js +115 -0
  9. package/dist/calver.js.map +1 -0
  10. package/dist/canary.d.ts.map +1 -1
  11. package/dist/canary.js +15 -2
  12. package/dist/canary.js.map +1 -1
  13. package/dist/changelog.d.ts +153 -0
  14. package/dist/changelog.d.ts.map +1 -0
  15. package/dist/changelog.js +359 -0
  16. package/dist/changelog.js.map +1 -0
  17. package/dist/cli.js +356 -12
  18. package/dist/cli.js.map +1 -1
  19. package/dist/extends.d.ts +3 -2
  20. package/dist/extends.d.ts.map +1 -1
  21. package/dist/extends.js +12 -2
  22. package/dist/extends.js.map +1 -1
  23. package/dist/forks.d.ts +116 -0
  24. package/dist/forks.d.ts.map +1 -0
  25. package/dist/forks.js +357 -0
  26. package/dist/forks.js.map +1 -0
  27. package/dist/index.d.ts +7 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +3 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/inherit.d.ts +18 -0
  32. package/dist/inherit.d.ts.map +1 -0
  33. package/dist/inherit.js +84 -0
  34. package/dist/inherit.js.map +1 -0
  35. package/dist/manifest.d.ts +43 -0
  36. package/dist/manifest.d.ts.map +1 -0
  37. package/dist/manifest.js +64 -0
  38. package/dist/manifest.js.map +1 -0
  39. package/dist/policy.d.ts +5 -1
  40. package/dist/policy.d.ts.map +1 -1
  41. package/dist/policy.js +14 -6
  42. package/dist/policy.js.map +1 -1
  43. package/dist/readme.d.ts +2 -0
  44. package/dist/readme.d.ts.map +1 -1
  45. package/dist/readme.js +6 -1
  46. package/dist/readme.js.map +1 -1
  47. package/dist/release.d.ts +37 -1
  48. package/dist/release.d.ts.map +1 -1
  49. package/dist/release.js +107 -7
  50. package/dist/release.js.map +1 -1
  51. package/dist/scaffold.d.ts +3 -5
  52. package/dist/scaffold.d.ts.map +1 -1
  53. package/dist/scaffold.js +116 -64
  54. package/dist/scaffold.js.map +1 -1
  55. package/dist/submodules.d.ts +49 -0
  56. package/dist/submodules.d.ts.map +1 -1
  57. package/dist/submodules.js +94 -4
  58. package/dist/submodules.js.map +1 -1
  59. package/dist/workflows.d.ts +46 -1
  60. package/dist/workflows.d.ts.map +1 -1
  61. package/dist/workflows.js +401 -20
  62. package/dist/workflows.js.map +1 -1
  63. package/package.json +14 -12
@@ -31,14 +31,12 @@ export declare const write: (root: string, files: Files) => Promise<string[]>;
31
31
  /** Whether a directory has anything in it, so `init` never writes over work. */
32
32
  export declare const isEmpty: (dir: string) => Promise<boolean>;
33
33
  export declare const readPackageName: (root: string) => Promise<string | undefined>;
34
- /** `2024.01.15` — the date-based version a distribution is released under. */
35
- export declare const calendarVersion: (on?: Date) => string;
36
34
  /**
37
35
  * A repository that ships a set of modules to end users.
38
36
  *
39
- * The root package.json is the distribution manifest: its version is the date
40
- * it was released, and its dependencies are the modules it ships, each at a
41
- * semver version. `extends` names another distribution whose modules this one
37
+ * The root package.json is the distribution manifest: its version names the
38
+ * month and which release of it this is (see calver.ts), and the modules it
39
+ * ships are its submodules, each at a semver version. `extends` names another distribution whose modules this one
42
40
  * inherits and may move ahead of, but never behind.
43
41
  */
44
42
  export declare const distributionRepo: (name: string, origin?: string, parent?: string, { monolith }?: {
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAIA,sEAAsE;AACtE,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAI1C,mFAAmF;AACnF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAoBX,CAAA;AAwCV;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,KA8F3D,CAAA;AAYF,eAAO,MAAM,UAAU,GAAI,aAAa,MAAM,EAAE,SAAS,MAAM,KAAG,KAyGhE,CAAA;AAEF,wDAAwD;AACxD,eAAO,MAAM,KAAK,GAAU,MAAM,MAAM,EAAE,OAAO,KAAK,KAAG,OAAO,CAAC,MAAM,EAAE,CAWxE,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,OAAO,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,OAAO,CAI1D,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAO9E,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,eAAe,GAAI,KAAI,IAAiB,KAAG,MAK3C,CAAA;AA8Cb;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,SAAS,MAAM,EACf,eAAqB;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,KAC/C,KAwFF,CAAA"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAMA,sEAAsE;AACtE,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAI1C,mFAAmF;AACnF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAoBX,CAAA;AAwGV;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,KAgF3D,CAAA;AAYF,eAAO,MAAM,UAAU,GAAI,aAAa,MAAM,EAAE,SAAS,MAAM,KAAG,KA6GhE,CAAA;AAEF,wDAAwD;AACxD,eAAO,MAAM,KAAK,GAAU,MAAM,MAAM,EAAE,OAAO,KAAK,KAAG,OAAO,CAAC,MAAM,EAAE,CAWxE,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,OAAO,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,OAAO,CAI1D,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAO9E,CAAA;AA+CD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,SAAS,MAAM,EACf,eAAqB;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,KAC/C,KAkGF,CAAA"}
package/dist/scaffold.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { mkdir, writeFile, readFile, readdir } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
- import { publishWorkflow, releaseScripts } from "./workflows.js";
3
+ import { changelogWorkflow, publishWorkflow, releaseScripts } from "./workflows.js";
4
+ import { CHANGELOG, newChangelog } from "./changelog.js";
5
+ import { firstRelease } from "./calver.js";
4
6
  const json = (value) => `${JSON.stringify(value, null, 2)}\n`;
5
7
  /** Versions the generated projects pin, kept beside the ones this package uses. */
6
8
  export const VERSIONS = {
@@ -24,6 +26,61 @@ export const VERSIONS = {
24
26
  // pnpm comes from it, so a module without one cannot build in CI.
25
27
  pnpm: 'pnpm@10.28.0',
26
28
  };
29
+ const WORKSPACE = `packages:
30
+ - "apps/*"
31
+ - "packages/*"
32
+ # a module's docs site is its own workspace member
33
+ - "apps/*/docs"
34
+ - "packages/*/docs"
35
+ `;
36
+ /**
37
+ * The root's scripts.
38
+ *
39
+ * With a monolith, `dev` and `build` are the monolith: it serves every
40
+ * mounted app, so running their own dev servers as well would be the same
41
+ * routes twice. `modular:*` runs each app on its own instead, as a
42
+ * deployment without the monolith would. Without one, every app is its own
43
+ * deployment and both are that. Documentation sites run with neither.
44
+ */
45
+ const rootScripts = (monolith) => {
46
+ const apps = monolith
47
+ ? "--filter='./apps/*' --filter='!./apps/monolith'"
48
+ : "--filter='./apps/*'";
49
+ const docs = "--filter='./apps/*/docs' --filter='./packages/*/docs'";
50
+ return {
51
+ build: monolith ? 'turbo run build --filter=./apps/monolith' : `turbo run build ${apps}`,
52
+ dev: monolith ? 'turbo run dev --filter=./apps/monolith' : `turbo run dev ${apps}`,
53
+ 'modular:build': `turbo run build ${apps}`,
54
+ 'modular:dev': `turbo run dev ${apps}`,
55
+ 'docs:build': `turbo run build ${docs}`,
56
+ 'docs:dev': `turbo run dev ${docs}`,
57
+ lint: 'turbo run lint',
58
+ };
59
+ };
60
+ const BUILD_OUTPUTS = ['.next/**', '!.next/cache/**', 'dist/**'];
61
+ /**
62
+ * The monolith compiles every app from its source, so its build waits for
63
+ * the libraries they use but not for the apps' own builds. `build:libs`
64
+ * runs no script: a library's is its build, and a mounted app's — written
65
+ * by `add-module` — is only its dependencies'. Turbo still hashes each app
66
+ * into the monolith's, so changing one builds the monolith again.
67
+ */
68
+ const turboJson = (monolith) => json({
69
+ $schema: 'https://turbo.build/schema.json',
70
+ tasks: {
71
+ build: { dependsOn: ['^build'], outputs: BUILD_OUTPUTS },
72
+ ...(monolith ? { 'build:libs': { dependsOn: ['^build:libs', 'build'] } } : {}),
73
+ lint: { dependsOn: ['^lint'] },
74
+ // A fresh checkout has built none of the libraries an app's config loads.
75
+ dev: { dependsOn: ['^build'], persistent: true, cache: false },
76
+ ...(monolith
77
+ ? {
78
+ [`${monolith}#build`]: { dependsOn: ['^build:libs'], outputs: BUILD_OUTPUTS },
79
+ [`${monolith}#dev`]: { dependsOn: ['^build:libs'], persistent: true, cache: false },
80
+ }
81
+ : {}),
82
+ },
83
+ });
27
84
  const GITIGNORE = `node_modules
28
85
  .next
29
86
  .turbo
@@ -31,11 +88,15 @@ out
31
88
  build
32
89
  next-env.d.ts
33
90
  *.tsbuildinfo
91
+ .env*.local
34
92
 
35
93
  # derived mount points; the symlinks under src/ are what is committed
36
94
  /app/
37
95
  /pages/
38
96
 
97
+ # fg-dist policy use: the distribution's policy, for this build to run
98
+ /.policy
99
+
39
100
  # generated by next dev
40
101
  AGENTS.md
41
102
  CLAUDE.md
@@ -72,42 +133,28 @@ export const monolithRepo = (name, origin) => ({
72
133
  // version: the submodule commit is the pin and its package.json is the
73
134
  // version. Keeping the workspace protocol stops pnpm writing one back in.
74
135
  '.npmrc': `link-workspace-packages=true\nsave-workspace-protocol=true\n`,
75
- 'pnpm-workspace.yaml': `packages:\n - "apps/*"\n - "packages/*"\n - "packages/*/docs"\n`,
136
+ 'pnpm-workspace.yaml': WORKSPACE,
137
+ // turbo refuses a --filter naming a directory that does not exist, so the
138
+ // root's scripts need it before any package has been added.
139
+ 'packages/.gitkeep': '',
76
140
  'package.json': json({
77
141
  name,
78
142
  version: '0.1.0-alpha.0',
79
143
  private: true,
80
144
  ...(origin ? { repository: { type: 'git', url: origin } } : {}),
81
- scripts: {
82
- build: 'turbo run build',
83
- // The monolith already serves every mounted app, so running their dev
84
- // servers as well would be the same routes twice.
85
- dev: "turbo run dev --filter=./apps/monolith --filter='./packages/*'",
86
- // Each app on its own instead, for working on one in isolation or on
87
- // anything the monolith cannot serve from one deployment.
88
- 'dev-services': 'turbo run dev:service',
89
- lint: 'turbo run lint',
90
- },
145
+ scripts: rootScripts(true),
91
146
  devDependencies: { turbo: '^2.11.2' },
92
147
  }),
93
- 'turbo.json': json({
94
- $schema: 'https://turbo.build/schema.json',
95
- tasks: {
96
- build: { dependsOn: ['^build'], outputs: ['.next/**', '!.next/cache/**', 'dist/**'] },
97
- lint: { dependsOn: ['^lint'] },
98
- dev: { persistent: true, cache: false },
99
- 'dev:service': { persistent: true, cache: false },
100
- },
101
- }),
148
+ 'turbo.json': turboJson(`${name}-monolith`),
102
149
  'apps/monolith/package.json': json({
103
150
  name: `${name}-monolith`,
104
151
  version: '0.1.0-alpha.0',
105
152
  private: true,
106
153
  scripts: {
107
154
  // Each takes a copy of the organization's policy to run, when there is one.
108
- dev: 'fg-dist policy use && next dev',
155
+ dev: 'fg-dist policy use && next dev -p 3000',
109
156
  build: 'fg-dist policy use && next build',
110
- start: 'next start',
157
+ start: 'next start -p 3000',
111
158
  lint: 'eslint',
112
159
  },
113
160
  dependencies: {
@@ -170,8 +217,11 @@ export default config
170
217
  /** `@acme/widget` -> `widget`, which is what a hostname wants. */
171
218
  const unscoped = (packageName) => packageName.replace(/^@[^/]+\//, '');
172
219
  export const moduleRepo = (packageName, origin) => ({
173
- // A module releases on its own schedule, so it carries its own workflow.
220
+ // A module releases on its own schedule, so it carries its own workflow, and
221
+ // its own changelog, which every pull request adds to.
174
222
  ...publishWorkflow(packageName),
223
+ ...changelogWorkflow({ submodules: false }),
224
+ [CHANGELOG]: newChangelog('0.1.0-alpha.0'),
175
225
  '.gitignore': `node_modules\n.next\n.turbo\nnext-env.d.ts\n*.tsbuildinfo\n\n# generated by next dev\nAGENTS.md\nCLAUDE.md\n`,
176
226
  'package.json': json({
177
227
  name: packageName,
@@ -189,10 +239,11 @@ export const moduleRepo = (packageName, origin) => ({
189
239
  // A monolith adds this repository as a submodule, so record where it lives.
190
240
  ...(origin ? { repository: { type: 'git', url: origin } } : {}),
191
241
  scripts: {
192
- dev: 'next dev',
193
- // Served at a stable hostname instead of a port, so several apps can run
194
- // at once without colliding: https://${unscoped(packageName)}.localhost
195
- 'dev:service': `portless ${unscoped(packageName)} next dev`,
242
+ // Served at a stable hostname instead of a port, so every app that
243
+ // `modular:dev` runs at once has its own without colliding:
244
+ // https://${unscoped(packageName)}.localhost. A monolith compiles this app
245
+ // itself and never runs it.
246
+ dev: `portless ${unscoped(packageName)} next dev`,
196
247
  build: 'next build',
197
248
  start: 'next start',
198
249
  lint: 'eslint',
@@ -212,7 +263,7 @@ export const moduleRepo = (packageName, origin) => ({
212
263
  '@types/react-dom': VERSIONS.types.reactDom,
213
264
  eslint: VERSIONS.eslint,
214
265
  'eslint-config-next': VERSIONS.eslintConfigNext,
215
- // `dev:service` serves this at a stable hostname instead of a port.
266
+ // `dev` serves this at a stable hostname instead of a port.
216
267
  portless: VERSIONS.portless,
217
268
  typescript: VERSIONS.typescript,
218
269
  },
@@ -302,12 +353,6 @@ export const readPackageName = async (root) => {
302
353
  return undefined;
303
354
  }
304
355
  };
305
- /** `2024.01.15` — the date-based version a distribution is released under. */
306
- export const calendarVersion = (on = new Date()) => [
307
- on.getUTCFullYear(),
308
- String(on.getUTCMonth() + 1).padStart(2, '0'),
309
- String(on.getUTCDate()).padStart(2, '0'),
310
- ].join('.');
311
356
  /**
312
357
  * The organization's `policies/`: its `.manifest`, and a workspace package
313
358
  * that builds and tests it with `fg-dist policy`. Empty of rules: until the
@@ -330,7 +375,7 @@ const policiesFiles = (name, origin) => ({
330
375
  '@fairgarden/policy': VERSIONS.policy,
331
376
  },
332
377
  }),
333
- 'policies/.gitignore': '/dist\n/node_modules\n',
378
+ 'policies/.gitignore': '/dist\n/node_modules\n/.turbo\n',
334
379
  'policies/Readme.md': `# Policies
335
380
 
336
381
  The organization's rules for the services this distribution ships: who may
@@ -354,9 +399,9 @@ fg-dist policy build # what the services will run
354
399
  /**
355
400
  * A repository that ships a set of modules to end users.
356
401
  *
357
- * The root package.json is the distribution manifest: its version is the date
358
- * it was released, and its dependencies are the modules it ships, each at a
359
- * semver version. `extends` names another distribution whose modules this one
402
+ * The root package.json is the distribution manifest: its version names the
403
+ * month and which release of it this is (see calver.ts), and the modules it
404
+ * ships are its submodules, each at a semver version. `extends` names another distribution whose modules this one
360
405
  * inherits and may move ahead of, but never behind.
361
406
  */
362
407
  export const distributionRepo = (name, origin, parent, { monolith = true } = {}) => {
@@ -368,41 +413,30 @@ export const distributionRepo = (name, origin, parent, { monolith = true } = {})
368
413
  : {
369
414
  '.gitignore': `node_modules\n.turbo\n`,
370
415
  '.npmrc': `link-workspace-packages=true\nsave-workspace-protocol=true\n`,
371
- 'pnpm-workspace.yaml': `packages:\n - "apps/*"\n - "packages/*"\n - "packages/*/docs"\n`,
372
- 'turbo.json': json({
373
- $schema: 'https://turbo.build/schema.json',
374
- tasks: {
375
- build: {
376
- dependsOn: ['^build'],
377
- outputs: ['.next/**', '!.next/cache/**', 'dist/**'],
378
- },
379
- lint: { dependsOn: ['^lint'] },
380
- dev: { persistent: true, cache: false },
381
- },
382
- }),
416
+ 'pnpm-workspace.yaml': WORKSPACE,
417
+ // turbo refuses a --filter naming a directory that does not exist.
418
+ 'apps/.gitkeep': '',
419
+ 'packages/.gitkeep': '',
420
+ 'turbo.json': turboJson(undefined),
383
421
  };
422
+ // What it ships, noted as fg-dist changes it; pull requests that change its
423
+ // policy add their own line, which CI checks.
424
+ Object.assign(files, changelogWorkflow({ submodules: true }));
384
425
  // The organization's policy, built on every module's own; a workspace
385
426
  // package, so turbo builds it once for every service that runs it.
386
427
  files['pnpm-workspace.yaml'] = files['pnpm-workspace.yaml'].replace(' - "packages/*"\n', ' - "packages/*"\n - "policies"\n');
387
428
  Object.assign(files, policiesFiles(name, origin));
429
+ const version = firstRelease();
430
+ files[CHANGELOG] = newChangelog(version);
388
431
  files['package.json'] = json({
389
432
  name,
390
- // End users read a date, not a semver range: it says how old their copy is.
391
- version: calendarVersion(),
433
+ // End users read the month, not a semver range: it says how old their copy
434
+ // is. It starts as this month's first release, in alpha — see calver.ts.
435
+ version,
392
436
  private: true,
393
437
  ...(origin ? { repository: { type: 'git', url: origin } } : {}),
394
438
  ...(parent ? { distribution: { extends: parent } } : {}),
395
- scripts: {
396
- build: 'turbo run build',
397
- // With a monolith, running the mounted apps as well would serve the same
398
- // routes twice. Without one, every app is its own deployment and there
399
- // is nothing else to run them.
400
- dev: monolith
401
- ? "turbo run dev --filter=./apps/monolith --filter='./packages/*'"
402
- : 'turbo run dev:service',
403
- 'dev-services': 'turbo run dev:service',
404
- lint: 'turbo run lint',
405
- },
439
+ scripts: rootScripts(monolith),
406
440
  // Modules go here, each pinned to the semver version this ships.
407
441
  dependencies: parent ? { [parent]: 'latest' } : {},
408
442
  devDependencies: { turbo: '^2.11.2' },
@@ -416,6 +450,24 @@ Modules are listed in \`dependencies\`, each pinned to a semver version, and
416
450
  checked out as submodules. Add one with \`fg-dist add-module <url>\`, and see
417
451
  what has moved with \`fg-dist sync\`.
418
452
 
453
+ ## Running
454
+ ${monolith
455
+ ? `
456
+ \`\`\`bash
457
+ pnpm dev # the monolith, serving every app, on port 3000
458
+ pnpm build # the monolith, as it is deployed
459
+ pnpm modular:dev # each app on its own instead
460
+ pnpm modular:build
461
+ pnpm docs:dev # the documentation sites, which neither runs
462
+ \`\`\`
463
+ `
464
+ : `
465
+ \`\`\`bash
466
+ pnpm dev # every app, each on its own
467
+ pnpm build
468
+ pnpm docs:dev # the documentation sites, which neither runs
469
+ \`\`\`
470
+ `}
419
471
  ## Deploying
420
472
  ${monolith
421
473
  ? `
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAKhE,MAAM,IAAI,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;AAE9E,mFAAmF;AACnF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,QAAQ,EAAE,gBAAgB;IAC1B,+EAA+E;IAC/E,YAAY,EAAE,gBAAgB;IAC9B,yFAAyF;IACzF,MAAM,EAAE,gBAAgB;IACxB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE;QACL,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;KACpB;IACD,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,SAAS;IAC3B,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,QAAQ;IACpB,6EAA6E;IAC7E,kEAAkE;IAClE,IAAI,EAAE,cAAc;CACZ,CAAA;AAEV,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;CAejB,CAAA;AAED,MAAM,QAAQ,GAAG;IACf,eAAe,EAAE;QACf,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC;QACtC,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,IAAI;QACrB,MAAM,EAAE,QAAQ;QAChB,gBAAgB,EAAE,SAAS;QAC3B,iBAAiB,EAAE,IAAI;QACvB,eAAe,EAAE,IAAI;QACrB,GAAG,EAAE,UAAU;QACf,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAC5B;IACD,OAAO,EAAE,CAAC,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,qBAAqB,CAAC;IACxE,OAAO,EAAE,CAAC,cAAc,CAAC;CAC1B,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,MAAe,EAAS,EAAE,CAAC,CAAC;IACrE,YAAY,EAAE,wBAAwB;IACtC,sEAAsE;IACtE,uEAAuE;IACvE,0EAA0E;IAC1E,QAAQ,EAAE,8DAA8D;IACxE,qBAAqB,EAAE,oEAAoE;IAC3F,cAAc,EAAE,IAAI,CAAC;QACnB,IAAI;QACJ,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,IAAI;QACb,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE;YACP,KAAK,EAAE,iBAAiB;YACxB,sEAAsE;YACtE,kDAAkD;YAClD,GAAG,EAAE,gEAAgE;YACrE,qEAAqE;YACrE,0DAA0D;YAC1D,cAAc,EAAE,uBAAuB;YACvC,IAAI,EAAE,gBAAgB;SACvB;QACD,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;KACtC,CAAC;IACF,YAAY,EAAE,IAAI,CAAC;QACjB,OAAO,EAAE,iCAAiC;QAC1C,KAAK,EAAE;YACL,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE;YACrF,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE;YAC9B,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;YACvC,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;SAClD;KACF,CAAC;IACF,4BAA4B,EAAE,IAAI,CAAC;QACjC,IAAI,EAAE,GAAG,IAAI,WAAW;QACxB,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,4EAA4E;YAC5E,GAAG,EAAE,gCAAgC;YACrC,KAAK,EAAE,kCAAkC;YACzC,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,QAAQ;SACf;QACD,YAAY,EAAE;YACZ,sBAAsB,EAAE,QAAQ,CAAC,QAAQ;YACzC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,WAAW,EAAE,QAAQ,CAAC,KAAK;SAC5B;QACD,eAAe,EAAE;YACf,0BAA0B,EAAE,QAAQ,CAAC,YAAY;YACjD,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;YAClC,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK;YACpC,kBAAkB,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;YAC3C,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,oBAAoB,EAAE,QAAQ,CAAC,gBAAgB;YAC/C,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC;KACF,CAAC;IACF,8BAA8B,EAAE;;;;;;;;;;CAUjC;IACC,6BAA6B,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC7C,iCAAiC,EAAE;;;;;;CAMpC;IACC,0BAA0B,EAAE,SAAS;IACrC,kCAAkC,EAAE;;;;;;;;;CASrC;IACC,gCAAgC,EAAE;;;CAGnC;CACA,CAAC,CAAA;AAEF;;;;;GAKG;AACH,kEAAkE;AAClE,MAAM,QAAQ,GAAG,CAAC,WAAmB,EAAU,EAAE,CAC/C,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAE,MAAe,EAAS,EAAE,CAAC,CAAC;IAC1E,yEAAyE;IACzE,GAAG,eAAe,CAAC,WAAW,CAAC;IAC/B,YAAY,EAAE,8GAA8G;IAC5H,cAAc,EAAE,IAAI,CAAC;QACnB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,eAAe;QACxB,0EAA0E;QAC1E,sEAAsE;QACtE,yEAAyE;QACzE,kCAAkC;QAClC,aAAa,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;QACvC,+DAA+D;QAC/D,cAAc,EAAE,QAAQ,CAAC,IAAI;QAC7B,4EAA4E;QAC5E,yDAAyD;QACzD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC;QAC1D,4EAA4E;QAC5E,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE;YACP,GAAG,EAAE,UAAU;YACf,yEAAyE;YACzE,wEAAwE;YACxE,aAAa,EAAE,YAAY,QAAQ,CAAC,WAAW,CAAC,WAAW;YAC3D,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,QAAQ;YACd,wEAAwE;YACxE,GAAG,cAAc,CAAC,WAAW,CAAC;SAC/B;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,WAAW,EAAE,QAAQ,CAAC,KAAK;SAC5B;QACD,eAAe,EAAE;YACf,0BAA0B,EAAE,QAAQ,CAAC,YAAY;YACjD,sBAAsB,EAAE,QAAQ,CAAC,QAAQ;YACzC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;YAClC,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK;YACpC,kBAAkB,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;YAC3C,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,oBAAoB,EAAE,QAAQ,CAAC,gBAAgB;YAC/C,oEAAoE;YACpE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC;KACF,CAAC;IACF,gBAAgB,EAAE;;;;;;;CAOnB;IACC,eAAe,EAAE,IAAI,CAAC;QACpB,GAAG,QAAQ;QACX,eAAe,EAAE;YACf,GAAG,QAAQ,CAAC,eAAe;YAC3B,oEAAoE;YACpE,oDAAoD;YACpD,KAAK,EAAE,EAAE,CAAC,GAAG,WAAW,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;SACzC;KACF,CAAC;IACF,mBAAmB,EAAE;;;;;;;;;;;CAWtB;IACC,aAAa,EAAE;;;;kCAIiB,WAAW;kCACX,WAAW;CAC5C;IACC,gBAAgB,EAAE;;;;;;;;;CASnB;IACC,cAAc,EAAE,yBAAyB,WAAW;;;;;YAK1C,WAAW;;;;;CAKtB;CACA,CAAC,CAAA;AAEF,wDAAwD;AACxD,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,IAAY,EAAE,KAAY,EAAqB,EAAE;IAC3E,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACtC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,MAAM,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC/B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxB,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,EAAE,CAAA;AACvB,CAAC,CAAA;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,GAAW,EAAoB,EAAE;IAC7D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AACjE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAA+B,EAAE;IACjF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QAC/E,OAAO,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAW,IAAI,IAAI,EAAE,EAAU,EAAE,CAC/D;IACE,EAAE,CAAC,cAAc,EAAE;IACnB,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAC7C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;CACzC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEb;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,MAAe,EAAS,EAAE,CAAC,CAAC;IAC/D,oBAAoB,EAAE,IAAI,CAAC;QACzB,QAAQ,EAAE;YACR,YAAY,EAAE,IAAI;YAClB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;KACF,CAAC;IACF,uBAAuB,EAAE,IAAI,CAAC;QAC5B,IAAI,EAAE,GAAG,IAAI,WAAW;QACxB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,qBAAqB,EAAE;QACvE,eAAe,EAAE;YACf,0BAA0B,EAAE,QAAQ,CAAC,YAAY;YACjD,oBAAoB,EAAE,QAAQ,CAAC,MAAM;SACtC;KACF,CAAC;IACF,qBAAqB,EAAE,wBAAwB;IAC/C,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;CAkBvB;CACA,CAAC,CAAA;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,MAAe,EACf,MAAe,EACf,EAAE,QAAQ,GAAG,IAAI,KAA6B,EAAE,EACzC,EAAE;IACT,4EAA4E;IAC5E,2EAA2E;IAC3E,0DAA0D;IAC1D,MAAM,KAAK,GAAG,QAAQ;QACpB,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;QAC5B,CAAC,CAAC;YACE,YAAY,EAAE,wBAAwB;YACtC,QAAQ,EAAE,8DAA8D;YACxE,qBAAqB,EAAE,oEAAoE;YAC3F,YAAY,EAAE,IAAI,CAAC;gBACjB,OAAO,EAAE,iCAAiC;gBAC1C,KAAK,EAAE;oBACL,KAAK,EAAE;wBACL,SAAS,EAAE,CAAC,QAAQ,CAAC;wBACrB,OAAO,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,CAAC;qBACpD;oBACD,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE;oBAC9B,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;iBACxC;aACF,CAAC;SACH,CAAA;IAEL,sEAAsE;IACtE,mEAAmE;IACnE,KAAK,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC,OAAO,CACjE,oBAAoB,EACpB,oCAAoC,CACrC,CAAA;IACD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAEjD,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;QAC3B,IAAI;QACJ,4EAA4E;QAC5E,OAAO,EAAE,eAAe,EAAE;QAC1B,OAAO,EAAE,IAAI;QACb,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE;YACP,KAAK,EAAE,iBAAiB;YACxB,yEAAyE;YACzE,uEAAuE;YACvE,+BAA+B;YAC/B,GAAG,EAAE,QAAQ;gBACX,CAAC,CAAC,gEAAgE;gBAClE,CAAC,CAAC,uBAAuB;YAC3B,cAAc,EAAE,uBAAuB;YACvC,IAAI,EAAE,gBAAgB;SACvB;QACD,iEAAiE;QACjE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;QAClD,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;KACtC,CAAC,CAAA;IAEF,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,IAAI;;;;;;;;;;EAW9B,QAAQ;QACN,CAAC,CAAC;;CAEL;QACG,CAAC,CAAC;;;;;CAMN,GACE,MAAM;QACJ,CAAC,CAAC;;;8BAGwB,MAAM;;oBAEhB,QAAQ,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,EAAE;CACrE;QACG,CAAC,CAAC,EACN,EAAE,CAAA;IAEA,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
@@ -26,9 +26,39 @@ export interface Submodule {
26
26
  relativePath: string;
27
27
  path: string;
28
28
  url: string;
29
+ /**
30
+ * Where a fork was forked from, recorded as `submodule.<name>.upstream` in
31
+ * .gitmodules. Git ignores the key; this is what reads it. Undefined for a
32
+ * module checked out from its own repository.
33
+ */
34
+ upstream: string | undefined;
29
35
  /** The commit the repository has pinned. */
30
36
  pinned: string;
31
37
  }
38
+ /** The remote a fork's checkout fetches its upstream from. */
39
+ export declare const UPSTREAM = "upstream";
40
+ /** Read one key of a submodule's section in .gitmodules. */
41
+ export declare const gitmodulesGet: (root: string, configName: string, key: string) => string | undefined;
42
+ /** Write, or with `undefined` remove, one key of a submodule's section in .gitmodules. */
43
+ export declare const gitmodulesSet: (root: string, configName: string, key: string, value: string | undefined) => void;
44
+ /**
45
+ * Point a fork's checkout at its upstream, as a remote of its own.
46
+ *
47
+ * Every clone of the distribution has the fork's url as `origin`, from
48
+ * .gitmodules; the upstream is only recorded there, so each checkout adds the
49
+ * remote the first time it is needed.
50
+ */
51
+ export declare const ensureUpstreamRemote: (cwd: string, url: string) => void;
52
+ /**
53
+ * Whether `base` already has everything `head` changes since they parted.
54
+ *
55
+ * Answered by merging one into the other without touching the checkout: when
56
+ * the result is `base` exactly, `head` has nothing `base` lacks. That holds
57
+ * however upstream took the changes — merged, rebased or squashed — which is
58
+ * what matters before dropping a fork. A conflict, or anything left over,
59
+ * counts as not.
60
+ */
61
+ export declare const containsAll: (cwd: string, base: string, head: string) => boolean;
32
62
  /**
33
63
  * Submodules as `.gitmodules` records them, with the commit each is pinned to.
34
64
  *
@@ -36,6 +66,18 @@ export interface Submodule {
36
66
  * they are checked out.
37
67
  */
38
68
  export declare const submodules: (root: string) => Submodule[];
69
+ /** How a fork stands against the repository it was forked from. */
70
+ export interface ForkState {
71
+ upstream: string;
72
+ /** Commits the fork has that upstream does not, merges and equivalent patches aside. */
73
+ ahead: number;
74
+ /**
75
+ * The oldest upstream release, from the pinned one on, that has everything
76
+ * the fork adds — or the upstream branch, when only that has it yet.
77
+ * Undefined while upstream has not taken all of it.
78
+ */
79
+ merged: string | undefined;
80
+ }
39
81
  export type ReleaseKind = 'major' | 'minor' | 'patch';
40
82
  export interface SubmoduleState {
41
83
  submodule: Submodule;
@@ -55,6 +97,13 @@ export interface SubmoduleState {
55
97
  dirty: boolean;
56
98
  /** Whether the remote was reachable, when a fetch was attempted. */
57
99
  fetched: boolean | undefined;
100
+ /**
101
+ * Whether the pinned commit is on the remote, so other clones can check it
102
+ * out. Only known after a fetch.
103
+ */
104
+ pushed: boolean | undefined;
105
+ /** Set for a fork, which also takes releases from its upstream. */
106
+ fork: ForkState | undefined;
58
107
  }
59
108
  /**
60
109
  * Compare a submodule's pinned commit against the versions its repository has.
@@ -1 +1 @@
1
- {"version":3,"file":"submodules.d.ts","sourceRoot":"","sources":["../src/submodules.ts"],"names":[],"mappings":"AAqBA;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,OAEyC,CAAA;AAEvF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAAM,EAOlD,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SACV,CAAA;AAE7C,MAAM,WAAW,SAAS;IACxB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAA;IACZ,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAA;IAClB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,SAAS,EAgClD,CAAA;AAgBD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAErD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,2EAA2E;IAC3E,KAAK,EAAE,OAAO,CAAA;IACd,wCAAwC;IACxC,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,yDAAyD;IACzD,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9C,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAA;IAChB,6DAA6D;IAC7D,KAAK,EAAE,OAAO,CAAA;IACd,oEAAoE;IACpE,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAClB,WAAW,SAAS,EACpB,YAAkB;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,KACzC,cA6DF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GACjB,OAAO,cAAc,EACrB,YAAmB;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,KAC1C,MAAM,GAAG,SASX,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,EAAE,WAAW,SAAS,EAAE,KAAK,MAAM,KAAG,IAYxE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,gBAAgB,KAAG,OAoBxD,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,MAAM,GAAI,WAAW,SAAS,EAAE,KAAK,MAAM,KAAG,IAa1D,CAAA"}
1
+ {"version":3,"file":"submodules.d.ts","sourceRoot":"","sources":["../src/submodules.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,49 @@ export const uninitialised = (root) => {
42
42
  };
43
43
  /** The repository holding the submodules, which is not the monolith directory. */
44
44
  export const repositoryRoot = (from) => git(from, ['rev-parse', '--show-toplevel']);
45
+ /** The remote a fork's checkout fetches its upstream from. */
46
+ export const UPSTREAM = 'upstream';
47
+ /** Read one key of a submodule's section in .gitmodules. */
48
+ export const gitmodulesGet = (root, configName, key) => git(root, ['config', '--file', '.gitmodules', '--get', `submodule.${configName}.${key}`]) || undefined;
49
+ /** Write, or with `undefined` remove, one key of a submodule's section in .gitmodules. */
50
+ export const gitmodulesSet = (root, configName, key, value) => {
51
+ const name = `submodule.${configName}.${key}`;
52
+ if (value === undefined) {
53
+ git(root, ['config', '--file', '.gitmodules', '--unset', name]);
54
+ return;
55
+ }
56
+ if (git(root, ['config', '--file', '.gitmodules', name, value]) === undefined) {
57
+ throw new Error(`Could not write ${name} to .gitmodules.`);
58
+ }
59
+ };
60
+ /**
61
+ * Point a fork's checkout at its upstream, as a remote of its own.
62
+ *
63
+ * Every clone of the distribution has the fork's url as `origin`, from
64
+ * .gitmodules; the upstream is only recorded there, so each checkout adds the
65
+ * remote the first time it is needed.
66
+ */
67
+ export const ensureUpstreamRemote = (cwd, url) => {
68
+ const current = git(cwd, ['remote', 'get-url', UPSTREAM]);
69
+ if (current === url)
70
+ return;
71
+ git(cwd, current === undefined ? ['remote', 'add', UPSTREAM, url] : ['remote', 'set-url', UPSTREAM, url]);
72
+ };
73
+ /**
74
+ * Whether `base` already has everything `head` changes since they parted.
75
+ *
76
+ * Answered by merging one into the other without touching the checkout: when
77
+ * the result is `base` exactly, `head` has nothing `base` lacks. That holds
78
+ * however upstream took the changes — merged, rebased or squashed — which is
79
+ * what matters before dropping a fork. A conflict, or anything left over,
80
+ * counts as not.
81
+ */
82
+ export const containsAll = (cwd, base, head) => {
83
+ if (git(cwd, ['merge-base', '--is-ancestor', head, base]) !== undefined)
84
+ return true;
85
+ const merged = git(cwd, ['merge-tree', '--write-tree', base, head])?.split('\n')[0];
86
+ return merged !== undefined && merged === git(cwd, ['rev-parse', `${base}^{tree}`]);
87
+ };
45
88
  /**
46
89
  * Submodules as `.gitmodules` records them, with the commit each is pinned to.
47
90
  *
@@ -72,6 +115,7 @@ export const submodules = (root) => {
72
115
  relativePath,
73
116
  path: full,
74
117
  url,
118
+ upstream: gitmodulesGet(root, name, 'upstream'),
75
119
  pinned,
76
120
  });
77
121
  }
@@ -81,14 +125,35 @@ export const submodules = (root) => {
81
125
  const versionTags = (cwd) => lines(git(cwd, ['tag', '--list']))
82
126
  .filter((tag) => semver.valid(tag) !== null)
83
127
  .sort((a, b) => semver.rcompare(a, b));
84
- /** The branch tip the submodule is tracking, for counting unreleased work. */
85
- const upstream = (cwd) => {
86
- for (const ref of ['origin/HEAD', 'origin/main', 'origin/master', 'main', 'master']) {
128
+ /**
129
+ * The branch tip the submodule is tracking, for counting unreleased work: a
130
+ * fork's upstream, since that is where its releases come from, else its own.
131
+ */
132
+ const trackedTip = (cwd, fork) => {
133
+ const remotes = fork ? [UPSTREAM, 'origin'] : ['origin'];
134
+ const refs = [...remotes.flatMap((remote) => ['HEAD', 'main', 'master'].map((branch) => `${remote}/${branch}`)), 'main', 'master'];
135
+ for (const ref of refs) {
87
136
  if (git(cwd, ['rev-parse', '--verify', '--quiet', ref]))
88
137
  return ref;
89
138
  }
90
139
  return undefined;
91
140
  };
141
+ /**
142
+ * Whether a commit is on the checkout's `origin`, so that another clone of
143
+ * the distribution — a build host, say — can check it out. A commit made in
144
+ * the checkout and pinned before it was pushed is not.
145
+ */
146
+ const onOrigin = (cwd, commit) => {
147
+ if (lines(git(cwd, ['branch', '--remotes', '--contains', commit, '--list', 'origin/*'])).length > 0) {
148
+ return true;
149
+ }
150
+ // Tags reach commits too, and a fork is often pinned at an upstream tag
151
+ // pushed to it rather than at a branch.
152
+ return lines(git(cwd, ['ls-remote', '--tags', 'origin'])).some((line) => {
153
+ const sha = line.split('\t')[0];
154
+ return sha === commit || git(cwd, ['merge-base', '--is-ancestor', commit, sha]) !== undefined;
155
+ });
156
+ };
92
157
  /**
93
158
  * Compare a submodule's pinned commit against the versions its repository has.
94
159
  *
@@ -98,9 +163,20 @@ const upstream = (cwd) => {
98
163
  */
99
164
  export const inspect = (submodule, { fetch = true } = {}) => {
100
165
  const cwd = submodule.path;
166
+ const fork = submodule.upstream;
167
+ if (fork)
168
+ ensureUpstreamRemote(cwd, fork);
101
169
  let fetched;
102
170
  if (fetch) {
103
171
  fetched = git(cwd, ['fetch', '--tags', '--quiet']) !== undefined;
172
+ if (fork) {
173
+ // A fork takes its releases from upstream, so upstream's tags are the
174
+ // versions it can move to.
175
+ const upstreamFetched = git(cwd, ['fetch', '--tags', '--quiet', UPSTREAM]) !== undefined;
176
+ if (upstreamFetched)
177
+ git(cwd, ['remote', 'set-head', UPSTREAM, '--auto']);
178
+ fetched = fetched && upstreamFetched;
179
+ }
104
180
  }
105
181
  const dirty = (git(cwd, ['status', '--porcelain']) ?? '') !== '';
106
182
  const tags = versionTags(cwd);
@@ -129,11 +205,23 @@ export const inspect = (submodule, { fetch = true } = {}) => {
129
205
  // available is newest first, so the first of each kind is the newest.
130
206
  upgrades[bucket] ??= tag;
131
207
  }
132
- const tip = upstream(cwd);
208
+ const tip = trackedTip(cwd, fork !== undefined);
133
209
  const from = available[0] ?? current ?? head;
134
210
  const untagged = tip
135
211
  ? Number(git(cwd, ['rev-list', '--count', `${from}..${tip}`]) ?? '0')
136
212
  : 0;
213
+ let forkState;
214
+ if (fork) {
215
+ const ahead = tip
216
+ ? Number(git(cwd, ['rev-list', '--count', '--no-merges', '--cherry-pick', '--right-only', `${tip}...${head}`]) ??
217
+ '0')
218
+ : 0;
219
+ // Oldest first: returning to upstream should move no further than it has to.
220
+ const releases = [...(current ? [current] : []), ...[...available].reverse()];
221
+ const merged = releases.find((tag) => containsAll(cwd, `refs/tags/${tag}`, head)) ??
222
+ (tip && containsAll(cwd, tip, head) ? tip : undefined);
223
+ forkState = { upstream: fork, ahead, merged };
224
+ }
137
225
  return {
138
226
  submodule,
139
227
  head,
@@ -144,6 +232,8 @@ export const inspect = (submodule, { fetch = true } = {}) => {
144
232
  untagged,
145
233
  dirty,
146
234
  fetched,
235
+ pushed: fetched ? onOrigin(cwd, head) : undefined,
236
+ fork: forkState,
147
237
  };
148
238
  };
149
239
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"submodules.js","sourceRoot":"","sources":["../src/submodules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submodules.js","sourceRoot":"","sources":["../src/submodules.ts"],"names":[],"mappings":"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"}