@on-par/factory-core 0.9.28-next.20 → 0.9.28-next.22

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.
@@ -0,0 +1,8 @@
1
+ export declare function mergeChangelogUnreleased(base: string, ours: string, theirs: string): {
2
+ ok: true;
3
+ text: string;
4
+ } | {
5
+ ok: false;
6
+ reason: string;
7
+ };
8
+ //# sourceMappingURL=changelog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../src/land/changelog.ts"],"names":[],"mappings":"AAkDA,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAmD5D"}
@@ -0,0 +1,90 @@
1
+ const UNRELEASED = /^## Unreleased\s*$/i;
2
+ function findSection(lines) {
3
+ const heading = lines.findIndex((line) => UNRELEASED.test(line));
4
+ if (heading === -1)
5
+ return undefined;
6
+ let end = lines.findIndex((line, index) => index > heading && line.startsWith('## '));
7
+ if (end === -1)
8
+ end = lines.length;
9
+ const subsections = [{ key: '', start: heading + 1, end, headingIndex: heading }];
10
+ for (let index = heading + 1; index < end; index++) {
11
+ const line = lines[index] ?? '';
12
+ if (!line.startsWith('### '))
13
+ continue;
14
+ const previous = subsections[subsections.length - 1];
15
+ if (previous)
16
+ previous.end = index;
17
+ subsections.push({ key: line.trimEnd(), start: index + 1, end, headingIndex: index });
18
+ }
19
+ return { heading, end, subsections };
20
+ }
21
+ function outside(lines, section) {
22
+ if (!section)
23
+ return lines.join('\n');
24
+ return [...lines.slice(0, section.heading), ...lines.slice(section.end)].join('\n');
25
+ }
26
+ function nonBlank(lines, sub) {
27
+ return sub ? lines.slice(sub.start, sub.end).filter((line) => line.trim() !== '') : [];
28
+ }
29
+ function lastNonBlank(lines, from, end) {
30
+ for (let index = end - 1; index >= from; index--) {
31
+ if ((lines[index] ?? '').trim() !== '')
32
+ return index;
33
+ }
34
+ return from;
35
+ }
36
+ export function mergeChangelogUnreleased(base, ours, theirs) {
37
+ const baseLines = base.split('\n');
38
+ const oursLines = ours.split('\n');
39
+ const result = theirs.split('\n');
40
+ const baseSection = findSection(baseLines);
41
+ const oursSection = findSection(oursLines);
42
+ if (!baseSection || !oursSection || !findSection(result)) {
43
+ return { ok: false, reason: 'no ## Unreleased section' };
44
+ }
45
+ if (outside(oursLines, oursSection) !== outside(baseLines, baseSection)) {
46
+ return { ok: false, reason: 'PR changed CHANGELOG.md outside ## Unreleased' };
47
+ }
48
+ const removed = { ok: false, reason: 'PR removed or edited an existing Unreleased line' };
49
+ const additions = [];
50
+ for (const sub of baseSection.subsections) {
51
+ if (nonBlank(baseLines, sub).length > 0 && !oursSection.subsections.some((s) => s.key === sub.key)) {
52
+ return removed;
53
+ }
54
+ }
55
+ for (const sub of oursSection.subsections) {
56
+ const baseItems = nonBlank(baseLines, baseSection.subsections.find((s) => s.key === sub.key));
57
+ const added = [];
58
+ let matched = 0;
59
+ for (const line of nonBlank(oursLines, sub)) {
60
+ if (matched < baseItems.length && line === baseItems[matched])
61
+ matched++;
62
+ else
63
+ added.push(line);
64
+ }
65
+ if (matched < baseItems.length)
66
+ return removed;
67
+ if (added.length > 0)
68
+ additions.push({ key: sub.key, lines: added });
69
+ }
70
+ for (const { key, lines } of additions) {
71
+ const section = findSection(result);
72
+ if (!section)
73
+ return { ok: false, reason: 'no ## Unreleased section' };
74
+ const sub = section.subsections.find((s) => s.key === key);
75
+ const present = new Set(nonBlank(result, sub));
76
+ const fresh = lines.filter((line) => !present.has(line));
77
+ if (fresh.length === 0)
78
+ continue;
79
+ if (sub) {
80
+ const at = lastNonBlank(result, sub.headingIndex, sub.end);
81
+ result.splice(at + 1, 0, ...(key === '' && at === section.heading ? [''] : []), ...fresh);
82
+ }
83
+ else {
84
+ const at = lastNonBlank(result, section.heading, section.end);
85
+ result.splice(at + 1, 0, '', key, '', ...fresh);
86
+ }
87
+ }
88
+ return { ok: true, text: result.join('\n') };
89
+ }
90
+ //# sourceMappingURL=changelog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/land/changelog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/land/sync.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,KAAK,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE7G,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,iBAAiB,CAAC;IACvB,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;CAC3F;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAwB5F,wBAAsB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA2GnF"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/land/sync.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,KAAK,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE7G,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,iBAAiB,CAAC;IACvB,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;CAC3F;AAID,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAyB5F,wBAAsB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAqKnF"}
package/dist/land/sync.js CHANGED
@@ -2,8 +2,10 @@ import { readFileSync, writeFileSync } from 'node:fs';
2
2
  import { basename } from 'node:path';
3
3
  import { parseAdr, upsertIndexRow } from '@on-par/adr-kit';
4
4
  import { shellEscape } from '../utils/index.js';
5
+ import { mergeChangelogUnreleased } from './changelog.js';
5
6
  const TIMEOUT = 120_000;
6
7
  const ADR_INDEX_PATH = 'docs/adr/README.md';
8
+ const CHANGELOG_PATH = 'CHANGELOG.md';
7
9
  const ADR_FILE = /^docs\/adr\/[^/]+\.md$/i;
8
10
  const NON_ADR = /^(readme|index|_?template)\.md$/i;
9
11
  function output(result) {
@@ -63,8 +65,41 @@ export async function syncLandBranch(opts) {
63
65
  const addedPaths = pathsFromNul(output(await run(`git diff --diff-filter=A --name-only -z ${shellEscape(base)} HEAD -- docs/adr`)))
64
66
  .filter((path) => ADR_FILE.test(path) && !NON_ADR.test(basename(path)))
65
67
  .sort();
68
+ const changedSince = async (rev) => pathsFromNul(output(await run(`git diff --name-only -z ${shellEscape(base)} ${rev} -- ${shellEscape(CHANGELOG_PATH)}`))).length > 0;
69
+ const changelogBothChanged = (await changedSince(shellEscape(head))) && (await changedSince('origin/main'));
70
+ const resolveChangelog = async () => {
71
+ try {
72
+ const show = async (rev) => output(await run(`git show ${shellEscape(`${rev}:${CHANGELOG_PATH}`)}`));
73
+ return mergeChangelogUnreleased(await show(base), await show(head), await show('origin/main'));
74
+ }
75
+ catch (error) {
76
+ return { ok: false, reason: errorText(error) };
77
+ }
78
+ };
79
+ const writeChangelog = async (text) => {
80
+ writeFileSync(`${opts.worktree}/${CHANGELOG_PATH}`, text);
81
+ await run(`git add -- ${shellEscape(CHANGELOG_PATH)}`);
82
+ };
83
+ const resolved = [];
66
84
  try {
67
- await run('git merge --no-edit origin/main');
85
+ await run(changelogBothChanged ? 'git merge --no-edit --no-commit origin/main' : 'git merge --no-edit origin/main');
86
+ if (changelogBothChanged) {
87
+ mergeStarted = true;
88
+ const changelog = await resolveChangelog();
89
+ if (!changelog.ok)
90
+ return await abort(`unresolved merge conflicts: ${CHANGELOG_PATH}`, [CHANGELOG_PATH]);
91
+ try {
92
+ await writeChangelog(changelog.text);
93
+ const remaining = pathsFromNul(output(await run('git diff --name-only --diff-filter=U -z'))).sort();
94
+ if (remaining.length > 0)
95
+ throw new Error(`unresolved paths remain: ${remaining.join(', ')}`);
96
+ await run('git commit --no-edit');
97
+ }
98
+ catch (resolveError) {
99
+ return await abort(`${CHANGELOG_PATH} resolution failed: ${errorText(resolveError)}`, [CHANGELOG_PATH]);
100
+ }
101
+ resolved.push(CHANGELOG_PATH);
102
+ }
68
103
  }
69
104
  catch (mergeError) {
70
105
  mergeStarted = true;
@@ -79,40 +114,68 @@ export async function syncLandBranch(opts) {
79
114
  return await abort(`merge failed without unmerged paths: ${errorText(mergeError)}`);
80
115
  }
81
116
  opts.log('conflict_detected', `land sync conflicts: ${conflicts.join(', ')}`, { paths: conflicts });
82
- const otherPaths = conflicts.filter((path) => path !== ADR_INDEX_PATH);
117
+ const changelogConflicted = conflicts.includes(CHANGELOG_PATH);
118
+ const changelog = changelogConflicted || changelogBothChanged ? await resolveChangelog() : undefined;
119
+ const changelogPending = changelog?.ok === true ? changelog : undefined;
120
+ const otherPaths = conflicts.filter((path) => path !== ADR_INDEX_PATH && path !== CHANGELOG_PATH);
121
+ if (changelogConflicted && !changelogPending)
122
+ otherPaths.push(CHANGELOG_PATH);
123
+ otherPaths.sort();
83
124
  if (otherPaths.length > 0) {
84
125
  return await abort(`unresolved merge conflicts: ${otherPaths.join(', ')}`, otherPaths);
85
126
  }
86
- let replayFailure;
87
- try {
88
- await run(`git checkout --theirs -- ${shellEscape(ADR_INDEX_PATH)}`);
89
- let readme = readFileSync(`${opts.worktree}/${ADR_INDEX_PATH}`, 'utf8');
90
- for (const path of addedPaths) {
91
- const filename = basename(path);
92
- const source = readFileSync(`${opts.worktree}/${path}`, 'utf8');
93
- const adr = parseAdr(source, { filename });
94
- const title = adr.title.trim();
95
- if (adr.number === undefined || title === '') {
96
- replayFailure = `${filename}: ADR requires a number and title`;
97
- break;
127
+ if (conflicts.includes(ADR_INDEX_PATH)) {
128
+ let replayFailure;
129
+ try {
130
+ await run(`git checkout --theirs -- ${shellEscape(ADR_INDEX_PATH)}`);
131
+ let readme = readFileSync(`${opts.worktree}/${ADR_INDEX_PATH}`, 'utf8');
132
+ for (const path of addedPaths) {
133
+ const filename = basename(path);
134
+ const source = readFileSync(`${opts.worktree}/${path}`, 'utf8');
135
+ const adr = parseAdr(source, { filename });
136
+ const title = adr.title.trim();
137
+ if (adr.number === undefined || title === '') {
138
+ replayFailure = `${filename}: ADR requires a number and title`;
139
+ break;
140
+ }
141
+ readme = upsertIndexRow(readme, { number: adr.number, title, status: adr.status, href: filename });
142
+ }
143
+ if (!replayFailure) {
144
+ writeFileSync(`${opts.worktree}/${ADR_INDEX_PATH}`, readme);
145
+ await run(`git add -- ${shellEscape(ADR_INDEX_PATH)}`);
98
146
  }
99
- readme = upsertIndexRow(readme, { number: adr.number, title, status: adr.status, href: filename });
100
147
  }
101
- if (!replayFailure) {
102
- writeFileSync(`${opts.worktree}/${ADR_INDEX_PATH}`, readme);
103
- await run(`git add -- ${shellEscape(ADR_INDEX_PATH)}`);
104
- const remaining = pathsFromNul(output(await run('git diff --name-only --diff-filter=U -z'))).sort();
105
- if (remaining.length > 0)
106
- replayFailure = `unresolved paths remain: ${remaining.join(', ')}`;
107
- else
108
- await run('git commit --no-edit');
148
+ catch (replayError) {
149
+ replayFailure = errorText(replayError);
150
+ }
151
+ if (replayFailure)
152
+ return await abort(`ADR index replay failed: ${replayFailure}`, [ADR_INDEX_PATH]);
153
+ resolved.push(ADR_INDEX_PATH);
154
+ }
155
+ if (changelogPending) {
156
+ try {
157
+ await writeChangelog(changelogPending.text);
109
158
  }
159
+ catch (changelogError) {
160
+ return await abort(`${CHANGELOG_PATH} resolution failed: ${errorText(changelogError)}`, [CHANGELOG_PATH]);
161
+ }
162
+ resolved.push(CHANGELOG_PATH);
163
+ }
164
+ const failedPath = resolved.includes(ADR_INDEX_PATH) ? ADR_INDEX_PATH : CHANGELOG_PATH;
165
+ const label = failedPath === ADR_INDEX_PATH ? 'ADR index replay failed' : `${CHANGELOG_PATH} resolution failed`;
166
+ let commitFailure;
167
+ try {
168
+ const remaining = pathsFromNul(output(await run('git diff --name-only --diff-filter=U -z'))).sort();
169
+ if (remaining.length > 0)
170
+ commitFailure = `unresolved paths remain: ${remaining.join(', ')}`;
171
+ else
172
+ await run('git commit --no-edit');
110
173
  }
111
- catch (replayError) {
112
- replayFailure = errorText(replayError);
174
+ catch (commitError) {
175
+ commitFailure = errorText(commitError);
113
176
  }
114
- if (replayFailure)
115
- return await abort(`ADR index replay failed: ${replayFailure}`, [ADR_INDEX_PATH]);
177
+ if (commitFailure)
178
+ return await abort(`${label}: ${commitFailure}`, [failedPath]);
116
179
  }
117
180
  try {
118
181
  await run(`git push origin ${shellEscape(opts.branch)}`);
@@ -120,11 +183,9 @@ export async function syncLandBranch(opts) {
120
183
  catch (pushError) {
121
184
  return { ok: false, message: `push rejected: ${errorText(pushError)}`, paths: [] };
122
185
  }
123
- if (mergeStarted) {
124
- opts.log('conflict_resolved', 'resolved ADR index conflict mechanically', {
125
- mode: 'mechanical',
126
- paths: [ADR_INDEX_PATH],
127
- });
186
+ for (const path of resolved) {
187
+ const what = path === ADR_INDEX_PATH ? 'ADR index' : `${CHANGELOG_PATH} Unreleased`;
188
+ opts.log('conflict_resolved', `resolved ${what} conflict mechanically`, { mode: 'mechanical', paths: [path] });
128
189
  }
129
190
  return { ok: true };
130
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/land/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/land/sync.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@on-par/factory-core",
3
- "version": "0.9.28-next.20",
3
+ "version": "0.9.28-next.22",
4
4
  "description": "Core engine: model router, constitutions, checkers, and pipeline phases for the Software Factory.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -54,10 +54,10 @@
54
54
  "prepack": "node ../../scripts/pack-hygiene-cli.ts prepack"
55
55
  },
56
56
  "dependencies": {
57
- "@on-par/adr-kit": "0.9.28-next.20",
58
- "@on-par/contracts": "0.9.28-next.20",
59
- "@on-par/factory-config": "0.9.28-next.20",
60
- "@on-par/repo-context": "0.9.28-next.20",
57
+ "@on-par/adr-kit": "0.9.28-next.22",
58
+ "@on-par/contracts": "0.9.28-next.22",
59
+ "@on-par/factory-config": "0.9.28-next.22",
60
+ "@on-par/repo-context": "0.9.28-next.22",
61
61
  "@octokit/rest": "^22.0.0",
62
62
  "execa": "^10.2.1",
63
63
  "gray-matter": "^4.0.3",