code-foundry 0.32.2 → 0.32.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.
- package/.github/code-foundry.yml +1 -1
- package/CHANGELOG.md +8 -0
- package/docs/RELEASES.md +12 -10
- package/package.json +1 -1
- package/src/commands/release.mjs +1 -0
- package/src/commands/sync.mjs +1 -1
package/.github/code-foundry.yml
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.32.3](https://github.com/0xPlayerOne/code-foundry/compare/v0.32.2...v0.32.3) (2026-07-31)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **release:** no-op when staging already points at main's commit ([a47180a](https://github.com/0xPlayerOne/code-foundry/commit/a47180a16ae8b9fd66548aba284939b3cdfaeba8))
|
|
9
|
+
* **release:** squash Release Please PRs for release-please compatibility ([41c808b](https://github.com/0xPlayerOne/code-foundry/commit/41c808b8c2502ca78e271cb6702334daf90169da))
|
|
10
|
+
|
|
3
11
|
## [0.32.2](https://github.com/0xPlayerOne/code-foundry/compare/v0.32.1...v0.32.2) (2026-07-31)
|
|
4
12
|
|
|
5
13
|
|
package/docs/RELEASES.md
CHANGED
|
@@ -36,15 +36,17 @@ release_merge_strategy: rebase # merge, squash, or rebase; used for Release Plea
|
|
|
36
36
|
|
|
37
37
|
`merge_strategy` applies to promotion PRs (`staging` into `main`) and
|
|
38
38
|
`release_merge_strategy` to Release Please version PRs; both default to
|
|
39
|
-
`merge` when unset. Use **rebase** for
|
|
40
|
-
linear, which is what makes the
|
|
41
|
-
`staging` requires linear history, and
|
|
42
|
-
uncrossable barrier for `staging` (the
|
|
43
|
-
whose new commits contain merge commits).
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
`merge` when unset. Use **rebase** for promotion PRs and **squash** for
|
|
40
|
+
Release Please PRs. Both keep `main` fully linear, which is what makes the
|
|
41
|
+
post-release reconciliation possible: `staging` requires linear history, and
|
|
42
|
+
any merge commit on `main` becomes an uncrossable barrier for `staging` (the
|
|
43
|
+
linear-history rule rejects pushes whose new commits contain merge commits).
|
|
44
|
+
Release Please itself also requires squash merges for its version PRs (rebase
|
|
45
|
+
merges rewrite commit SHAs and break its merged-PR detection). With a linear
|
|
46
|
+
`main`, the release workflow mirrors `staging` onto `main`'s tip after every
|
|
47
|
+
release — a verified fast-forward when possible, otherwise a forced linear
|
|
48
|
+
update, otherwise a single-parent synchronization commit — so `staging` is
|
|
49
|
+
never left behind and never needs a manual rebase.
|
|
48
50
|
|
|
49
51
|
`auto` selects a supported manifest. Use `simple` with `version.txt` for a
|
|
50
52
|
repository without a package manifest and `none` for a repository that should
|
|
@@ -76,6 +78,6 @@ the generated version pull request before using the token to merge it.
|
|
|
76
78
|
|
|
77
79
|
1. Merge tested changes from `staging` into `main`.
|
|
78
80
|
2. Review the generated Release Please PR and changelog.
|
|
79
|
-
3. Merge the release PR with the repository
|
|
81
|
+
3. Merge the release PR with the repository.s configured `release_merge_strategy` (default `merge`, recommended `squash`).
|
|
80
82
|
4. Confirm the GitHub Release and any package publication.
|
|
81
83
|
5. Synchronize `staging` with the new `main` release commit.
|
package/package.json
CHANGED
package/src/commands/release.mjs
CHANGED
|
@@ -40,6 +40,7 @@ export function reconcileRelease(root, options) {
|
|
|
40
40
|
console.log(JSON.stringify({ base, head, ...plan }, null, 2))
|
|
41
41
|
if (plan.action === 'fail') throw new Error(plan.reason + (plan.unexpected?.length ? ` Unexpected paths: ${plan.unexpected.join(', ')}` : ''))
|
|
42
42
|
if (!['fast-forward', 'pull-request', 'aligned'].includes(plan.action) || !options.github || options.dryRun) return plan
|
|
43
|
+
if (!plan.targetSha) return plan
|
|
43
44
|
if (!process.env.GITHUB_REPOSITORY) throw new Error('GITHUB_REPOSITORY is required for --github reconciliation.')
|
|
44
45
|
const token = process.env.GH_TOKEN || process.env.GITHUB_TOKEN
|
|
45
46
|
if (!token) throw new Error('GH_TOKEN or GITHUB_TOKEN is required for --github reconciliation.')
|
package/src/commands/sync.mjs
CHANGED
|
@@ -364,7 +364,7 @@ function createDefaultConfig(root, source) {
|
|
|
364
364
|
post_release: 'false', post_release_workflow: '', post_release_mode: 'auto',
|
|
365
365
|
opencode_security: 'false',
|
|
366
366
|
sync_mode: 'overlay', custom_workflows: 'preserve',
|
|
367
|
-
license: existsSync(join(root, 'LICENSE')) ? 'preserve' : 'gpl-3.0-or-later', git_workflow: 'staging-release', merge_strategy: 'rebase', release_merge_strategy: '
|
|
367
|
+
license: existsSync(join(root, 'LICENSE')) ? 'preserve' : 'gpl-3.0-or-later', git_workflow: 'staging-release', merge_strategy: 'rebase', release_merge_strategy: 'squash',
|
|
368
368
|
}
|
|
369
369
|
}
|
|
370
370
|
|