Skip to content

fix(upgrade): discover installed Windows PowerShell for ZIP extraction - #647

Merged
rhuanbarreto merged 2 commits into
mainfrom
fix/windows-upgrade-powershell
Oct 24, 2026
Merged

rhuanbarreto merged 2 commits into
mainfrom
fix/windows-upgrade-powershell

Conversation

@rhuanbarreto

@rhuanbarreto rhuanbarreto commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Problem and behavior

Windows binary upgrades can report Sentry CLI-D when powershell is absent from PATH. ZIP extraction resolves Windows PowerShell on PATH, then %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe (falling back to C:\Windows for unusable SystemRoot). Missing PowerShell raises an actionable UserError before spawn. ZIP packaging, checksum verification, archive validation, replacement, cleanup, and unrelated internal-error handling are preserved. PowerShell Core support remains outside this change.

CLI-C is verification only: deleted-cwd review-context exits 1 with an actionable message and no Sentry capture; an unrelated TypeError exits 2 and is captured. The production fix from #621 is already on main and was first published in v0.58.1.

Sentry references (unchanged): https://archgate.sentry.io/issues/155567289/ and https://archgate.sentry.io/issues/150086449/.

Scope

Two commits, three files: src/helpers/binary-upgrade.ts, tests/helpers/binary-upgrade-archive.test.ts, and tests/commands/review-context-cwd.test.ts. No #631 Store/distribution work or #641 overlap.

Base: fd92933ccad95468772b1aec18cda0f959394450. Head: f44a5f2f92c58921f8a33af6b8f0ef263e0c8ba9, with first commit edc0cbc73a88c28fae6fdfdaeaaeb9494e8e11cf. Tree: 55b2060a97c8dbc84d9f1404e7f75a8cc78c546d, identical to independently reviewed head 327b2145118905e62e11efeb564fc42e3c7c0a61.

Actual full CI

Marked ready for review to invoke the workflow's supported ready_for_review event. Draft conditions previously skipped validation/smoke jobs, causing the aggregate to fail. No workflow rules, required checks, test gates, or skips were changed.

Full Validate run on the unchanged tree at f44a5f2 PASSED, including:

  • Linux full validate:coverage: 2,963 passed, 22 existing skips, zero failures; lint, typecheck, formatting, ADR checks (22 passed), Knip, compilation, dependency audit, and generated-doc verification passed.
  • Windows full coverage suite: 2,961 passed, 22 existing skips, zero failures; lint/typecheck/formatting, compiled binary and installer smoke job passed.
  • Linux smoke, workflow security/schema, ADR SARIF, merged coverage threshold, and aggregate Validate Code passed. Shim tests used the workflow's existing conditional skip because no shim files changed.
  • Required DCO is blocked: both original commits lack Signed-off-by trailers. A worker briefly added matching-author trailers, then removed them after confirming that matching global Git configuration does not establish authority to certify for that contributor. Contributor certification under DCO 1.1 is required before sign-off can be added. No DCO bypass or policy change is proposed. Latest results are available in PR checks.

Additional verification and limitations

Test-first CLI-D regressions failed against the unchanged extractor and passed with the fix. Scoped suite: 104 passed, three platform skips, zero failures. Coverage includes PATH precedence, custom/unset/empty/literal-undefined SystemRoot, missing shell, extraction cleanup, and preservation of unrelated spawn errors. A real Windows ZIP probe with PowerShell excluded from PATH verified SHA256 and extracted payload. Independent ADR review found no code issues.

Prior local full bun run validate runs FAILED and are not represented as passing. The bounded Windows comparison had patch 2,921 passed / 39 skipped / 23 failed, versus clean main 2,911 / 39 / 24. All 23 patch failure names also appeared on baseline: 18 Antigravity reader cases, one credential-helper case, and four startup budgets. Both standalone startup runs passed six tests, but differing host load leaves timing attribution inconclusive. CI's fresh full Linux and Windows coverage runs above passed without changing those unrelated suites or weakening gates.

Ready for review; no approval or merge performed. Sentry issues remain unchanged.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Deploying archgate-cli with  Cloudflare Pages  Cloudflare Pages

Latest commit: 74b889f
Status: ✅  Deploy successful!
Preview URL: https://f2df0848.archgate-cli.pages.dev
Branch Preview URL: https://fix-windows-upgrade-powershe.archgate-cli.pages.dev

View logs

@coderabbitai

coderabbitai Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 5b9dd52f-4633-4e00-9c16-830418f7f50d
Commits

Reviewing files that changed from the base of the PR and between f44a5f2 and 74b889f.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: ef42cf81-1095-4c53-b9d8-819956a8630d
Commits

Reviewing files that changed from the base of the PR and between fd92933 and f44a5f2.

Files selected for processing: 3
  • src/helpers/binary-upgrade.ts
  • tests/commands/review-context-cwd.test.ts
  • tests/helpers/binary-upgrade-archive.test.ts

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Recent review details
Context from checks skipped due to timeout: 6
  • GitHub Check: zizmor
  • GitHub Check: Smoke Test (Linux) / Linux
  • GitHub Check: Lint, Test & Check
  • GitHub Check: Smoke Test (Windows) / Windows
  • GitHub Check: Archgate SARIF (Code Scanning)
  • GitHub Check: Zizmor (Workflow Security)
CI failures not shown inline: 4

GitHub Actions: DCO / 0_DCO Sign-off Check.txt: fix(upgrade): discover installed Windows PowerShell for ZIP extraction

Conclusion: failure

View job details

##[group]Run base="fd92933ccad95468772b1aec18cda0f959394450"
 �[36;1mbase="fd92933ccad95468772b1aec18cda0f959394450"�[0m
 �[36;1mhead="f44a5f2f92c58921f8a33af6b8f0ef263e0c8ba9"�[0m
 �[36;1mfailed=0�[0m
 �[36;1m�[0m
 �[36;1mfor sha in $(git rev-list --no-merges "$base".."$head"); do�[0m
 �[36;1m  if ! git log -1 --format='%B' "$sha" | grep -qiE '^Signed-off-by: .+ <.+>'; then�[0m
 �[36;1m    echo "::error::Commit $sha is missing a DCO Signed-off-by line."�[0m
...
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1mecho "All commits are signed off."�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 ##[error]Commit f44a5f2f92c58921f8a33af6b8f0ef263e0c8ba9 is missing a DCO Signed-off-by line.
   fix(upgrade): discover installed Windows PowerShell for ZIP extraction
 ##[error]Commit edc0cbc73a88c28fae6fdfdaeaaeb9494e8e11cf is missing a DCO Signed-off-by line.
   test(review-context): verify deleted cwd error boundary
 All commits must include a Signed-off-by line.
 Use 'git commit -s' to sign, or 'git rebase --signoff HEAD~N' to fix existing commits.
 See: https://developercertificate.org/
 ##[error]Process completed with exit code 1.

GitHub Actions: DCO / DCO Sign-off Check: fix(upgrade): discover installed Windows PowerShell for ZIP extraction

Conclusion: failure

View job details

##[group]Run base="fd92933ccad95468772b1aec18cda0f959394450"
 �[36;1mbase="fd92933ccad95468772b1aec18cda0f959394450"�[0m
 �[36;1mhead="f44a5f2f92c58921f8a33af6b8f0ef263e0c8ba9"�[0m
 �[36;1mfailed=0�[0m
 �[36;1m�[0m
 �[36;1mfor sha in $(git rev-list --no-merges "$base".."$head"); do�[0m
 �[36;1m  if ! git log -1 --format='%B' "$sha" | grep -qiE '^Signed-off-by: .+ <.+>'; then�[0m
 �[36;1m    echo "::error::Commit $sha is missing a DCO Signed-off-by line."�[0m
...
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1mecho "All commits are signed off."�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 ##[error]Commit f44a5f2f92c58921f8a33af6b8f0ef263e0c8ba9 is missing a DCO Signed-off-by line.
   fix(upgrade): discover installed Windows PowerShell for ZIP extraction
 ##[error]Commit edc0cbc73a88c28fae6fdfdaeaaeb9494e8e11cf is missing a DCO Signed-off-by line.
   test(review-context): verify deleted cwd error boundary
 All commits must include a Signed-off-by line.
 Use 'git commit -s' to sign, or 'git rebase --signoff HEAD~N' to fix existing commits.
 See: https://developercertificate.org/
 ##[error]Process completed with exit code 1.

GitHub Actions: Validate / 0_Validate Code.txt: fix(upgrade): discover installed Windows PowerShell for ZIP extraction

Conclusion: failure

View job details

##[group]Run # shim-tests is skipped when no shim files changed — treat skipped as success.
 �[36;1m# shim-tests is skipped when no shim files changed — treat skipped as success.�[0m
 �[36;1mSHIM_OK="skipped"�[0m
 �[36;1mif [[ "$SHIM_OK" == "skipped" ]]; then SHIM_OK="success"; fi�[0m
 �[36;1m�[0m
 �[36;1mif [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "$SHIM_OK" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]]; then�[0m
 �[36;1m  echo "::error::One or more jobs failed:"�[0m
...
 �[36;1mecho "All checks passed."�[0m
 shell: /usr/bin/bash -e {0}
 env:
   ARCHGATE_TELEMETRY: 0
 ##[endgroup]
 ##[error]One or more jobs failed:
...
   smoke-linux: skipped
   zizmor: skipped
   actionlint: skipped
   archgate-sarif: skipped
   coverage: skipped
 ##[error]Process completed with exit code 1.

GitHub Actions: Validate / Validate Code: fix(upgrade): discover installed Windows PowerShell for ZIP extraction

Conclusion: failure

View job details

##[group]Run # shim-tests is skipped when no shim files changed — treat skipped as success.
 �[36;1m# shim-tests is skipped when no shim files changed — treat skipped as success.�[0m
 �[36;1mSHIM_OK="skipped"�[0m
 �[36;1mif [[ "$SHIM_OK" == "skipped" ]]; then SHIM_OK="success"; fi�[0m
 �[36;1m�[0m
 �[36;1mif [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "$SHIM_OK" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]] || \�[0m
 �[36;1m   [[ "skipped" != "success" ]]; then�[0m
 �[36;1m  echo "::error::One or more jobs failed:"�[0m
...
 �[36;1mecho "All checks passed."�[0m
 shell: /usr/bin/bash -e {0}
 env:
   ARCHGATE_TELEMETRY: 0
 ##[endgroup]
 ##[error]One or more jobs failed:
...
   smoke-linux: skipped
   zizmor: skipped
   actionlint: skipped
   archgate-sarif: skipped
   coverage: skipped
 ##[error]Process completed with exit code 1.
Additional context used
Code guidelines: 11
.archgate/adrs/ARCH-009-platform-detection-helper.md — configured
.archgate/adrs/ARCH-005-testing-standards.md — configured
.archgate/adrs/ARCH-025-idiomatic-bun-test-parametrization-and-matchers.md — configured
.archgate/adrs/LEGAL-001-spdx-license-headers.md — configured
.archgate/adrs/ARCH-002-error-handling.md — configured
.archgate/adrs/ARCH-020-glob-scan-include-dotfiles.md — configured
.archgate/adrs/ARCH-019-inquirer-prompt-fix.md — configured
.archgate/adrs/ARCH-004-no-barrel-files.md — configured
.archgate/adrs/ARCH-003-output-formatting.md — configured
.archgate/adrs/ARCH-014-prefer-bun-env.md — configured
.archgate/adrs/CI-001-pin-github-actions-by-hash.md — configured
Path-based instructions: 16
This project uses Archgate — an AI governance framework based on Architecture Decision Records (ADRs).

CodeRabbit configuration file

Files:

  • tests/commands/review-context-cwd.test.ts
  • src/helpers/binary-upgrade.ts
  • tests/helpers/binary-upgrade-archive.test.ts
Source excerpt: All platform detection in `src/` MUST go through `src/helpers/platform.ts`.

CodeRabbit inference engine (.archgate/adrs/ARCH-009-platform-detection-helper.md)

Files:

  • src/helpers/binary-upgrade.ts
Source excerpt: **oxlint plugin** `bun-test/expect-expect` (`lint/expect-expect.ts`): enabled for `tests/**/*.test.ts`, it fails the build for any runnable `test()`/`it()` (including `test.skipIf(...)()` and `test.each(...)()`) whose body c...

CodeRabbit inference engine (.archgate/adrs/ARCH-005-testing-standards.md)

Files:

  • tests/commands/review-context-cwd.test.ts
  • tests/helpers/binary-upgrade-archive.test.ts
Source excerpt: **DO** use `test.each(cases)("<title with %s/%p/%d>", (...args) => {...})` for the same check against independent inputs — each case becomes its own named test.

CodeRabbit inference engine (.archgate/adrs/ARCH-025-idiomatic-bun-test-parametrization-and-matchers.md)

Files:

  • tests/commands/review-context-cwd.test.ts
  • tests/helpers/binary-upgrade-archive.test.ts
Source excerpt: Every TypeScript source file in `src/` and `tests/` must begin with an SPDX license identifier and copyright notice: Source excerpt: Use the exact format: `// SPDX-License-Identifier: Apache-2.0` followed by `// Copyright 20...

CodeRabbit inference engine (.archgate/adrs/LEGAL-001-spdx-license-headers.md)

Files:

  • tests/commands/review-context-cwd.test.ts
  • src/helpers/binary-upgrade.ts
  • tests/helpers/binary-upgrade-archive.test.ts
Source excerpt: **Error output conventions:** User-facing errors use `logError()` from `src/helpers/log.ts`, which formats with `styleText("red", ...)` and writes to stderr Source excerpt: **Error output conventions:** Actionable suggestion...

CodeRabbit inference engine (.archgate/adrs/ARCH-002-error-handling.md)

Files:

  • src/helpers/binary-upgrade.ts
Source excerpt: Every call to `Bun.Glob#scan()` (`glob.scan(...)`) in source MUST pass `{ dot: true }` in its options object, so dot-prefixed segments are traversed.

CodeRabbit inference engine (.archgate/adrs/ARCH-020-glob-scan-include-dotfiles.md)

Files:

  • src/helpers/binary-upgrade.ts
Source excerpt: Every `inquirer.prompt(...)` call MUST be wrapped in `withPromptFix(() => ...)` from `src/helpers/prompt.ts`.

CodeRabbit inference engine (.archgate/adrs/ARCH-019-inquirer-prompt-fix.md)

Files:

  • src/helpers/binary-upgrade.ts
Source excerpt: **Barrel files and re-exports are forbidden.**

CodeRabbit inference engine (.archgate/adrs/ARCH-004-no-barrel-files.md)

Files:

  • src/helpers/binary-upgrade.ts
Source excerpt: **Key conventions:** **Colors via `styleText` only** — All colored output uses `styleText(format, text)` from `node:util`; no raw ANSI codes or third-party color libraries.

CodeRabbit inference engine (.archgate/adrs/ARCH-003-output-formatting.md)

Files:

  • src/helpers/binary-upgrade.ts
Source excerpt: All environment variable access in `src/` MUST use `Bun.env` instead of `process.env`.

CodeRabbit inference engine (.archgate/adrs/ARCH-014-prefer-bun-env.md)

Files:

  • src/helpers/binary-upgrade.ts
Source excerpt: **DON'T** use `console.log()` or `console.warn()` directly in helper or engine files — use `logInfo()` or `logWarn()` (command files are the I/O layer and may use console directly) Source excerpt: **Archgate rule** `ARCH-002...

CodeRabbit inference engine (.archgate/adrs/ARCH-002-error-handling.md)

Files:

  • src/helpers/binary-upgrade.ts
Source excerpt: **DO** keep `process.env` in test files (`tests/`) where test harness compatibility is needed

CodeRabbit inference engine (.archgate/adrs/ARCH-014-prefer-bun-env.md)

Files:

  • tests/commands/review-context-cwd.test.ts
  • tests/helpers/binary-upgrade-archive.test.ts
Source excerpt: **Key conventions:** **Test file naming** — `.test.ts`.

CodeRabbit inference engine (.archgate/adrs/ARCH-005-testing-standards.md)

Files:

  • tests/commands/review-context-cwd.test.ts
  • tests/helpers/binary-upgrade-archive.test.ts
Source excerpt: Use Bun's built-in test runner (`bun test`) for all tests.

CodeRabbit inference engine (.archgate/adrs/ARCH-005-testing-standards.md)

Files:

  • tests/commands/review-context-cwd.test.ts
  • tests/helpers/binary-upgrade-archive.test.ts
Source excerpt: **DO** enable Renovate or Dependabot for automated SHA update PRs — pinning without automated updates leads to stale dependencies

CodeRabbit inference engine (.archgate/adrs/CI-001-pin-github-actions-by-hash.md)

Files:

  • tests/commands/review-context-cwd.test.ts
  • src/helpers/binary-upgrade.ts
  • tests/helpers/binary-upgrade-archive.test.ts
OpenGrep (1.30.1)
tests/helpers/binary-upgrade-archive.test.ts

[ERROR] 360-360: A nonliteral argument is passed to exec/execSync. Identify the receiver: Node child_process methods execute shell commands, while regular-expression and database methods have different contracts. For shell execution, prefer execFile or spawn with an argument array.

(coderabbit.command-injection.exec-js)

Additional comments: 3
tests/commands/review-context-cwd.test.ts: 1

1-64: LGTM!

src/helpers/binary-upgrade.ts: 1

20-20: LGTM!

Also applies to: 277-294

tests/helpers/binary-upgrade-archive.test.ts: 1

12-12: LGTM!

Also applies to: 20-21, 195-195, 199-199, 202-202, 208-208, 315-328, 330-371, 373-388, 390-402

Walkthrough

ZIP extraction now locates PowerShell on PATH or checks the Windows installation path before running the extraction command. Tests cover executable selection, missing PowerShell, and spawn errors. Additional command-boundary tests cover review-context behavior when process.cwd() throws.

Priority: Normal

Merge Risk: Minimal · up to f44a5

No actionable merge-blocking issue was identified in the PowerShell extraction change or current-directory error tests.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main change: discovering an installed Windows PowerShell executable for ZIP extraction during upgrades.
Docstring Coverage Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 3 files.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed The pull request description directly matches the changeset. It explains Windows PowerShell discovery for ZIP extraction and the review-context working-directory error tests.
Finishing Touches: 💡 1
🛠️ Fix failing CI checks: 💡
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@rhuanbarreto
rhuanbarreto force-pushed the fix/windows-upgrade-powershell branch from 327b214 to f44a5f2 Compare October 24, 2026 13:12
@rhuanbarreto
rhuanbarreto marked this pull request as ready for review October 24, 2026 13:26
Signed-off-by: Rhuan Barreto <rhuan@barreto.work>
Signed-off-by: Rhuan Barreto <rhuan@barreto.work>
@github-actions

github-actions Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage

Metric Value
Lines 99.9% (11316 / 11326)
Threshold 99.9% minimum — met
Platforms Linux + Windows

Full HTML report available in workflow artifacts.

Per-directory breakdown
Directory Coverage Lines
src/commands/ 100.0% 2340 / 2340
src/engine/ 100.0% 2622 / 2623
src/formats/ 100.0% 151 / 151
src/helpers/ 99.9% 6203 / 6212

@rhuanbarreto
rhuanbarreto force-pushed the fix/windows-upgrade-powershell branch 2 times, most recently from 74b889f to f44a5f2 Compare October 24, 2026 13:41
@rhuanbarreto

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Already reviewed the last commit. Use @coderabbitai full review to rerun a review of the entire changeset.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@rhuanbarreto
rhuanbarreto force-pushed the fix/windows-upgrade-powershell branch from f44a5f2 to 74b889f Compare October 24, 2026 15:52
@rhuanbarreto
rhuanbarreto enabled auto-merge (squash) October 24, 2026 15:55
@rhuanbarreto
rhuanbarreto merged commit f90760c into main Oct 24, 2026
37 of 48 checks passed
@rhuanbarreto
rhuanbarreto deleted the fix/windows-upgrade-powershell branch October 24, 2026 15:58
@archgatebot archgatebot Bot mentioned this pull request Oct 24, 2026
rhuanbarreto pushed a commit that referenced this pull request Oct 28, 2026
# archgate

## [0.61.0](v0.60.2...v0.61.0)
(2026-10-28)

### Features

* publish Intel macOS (darwin-x64) binaries
([#658](#658))
([3b9d851](3b9d851))

### Bug Fixes

* **upgrade:** discover installed Windows PowerShell for ZIP extraction
([#647](#647))
([f90760c](f90760c)),
closes [#621](#621), references
[#631](#631)
[#641](#641)

---
This PR was generated with
[simple-release](https://github.com/TrigenSoftware/simple-release).

<details>
<summary>📄 Cheatsheet</summary>
<br>



You can configure the bot's behavior through a pull request comment
using the `!simple-release/set-options` command.

### Command Format

````md
!simple-release/set-options

```json
{
  "bump": {}
}
```
````

### Useful Parameters

The options shape the pull request generation, so the `bump` ones matter
here. Release-time options like `publish` belong in the config file.

| Parameter | Type | Description |
|-----------|------|-------------|
| `version` | `string` | Force set specific version |
| `as` | `'major' \| 'minor' \| 'patch' \| 'prerelease'` | Release type.
`prerelease` keeps the type derived from the commits and makes the
version a prerelease |
| `prerelease` | `string` | Pre-release identifier (e.g., "alpha",
"beta") |
| `firstRelease` | `boolean` | Whether this is the first release |
| `skip` | `boolean` | Skip version bump |
| `byProject` | `Record<string, object>` | Per-project bump options for
monorepos |

### Usage Examples

#### Force specific version

````md
!simple-release/set-options

```json
{
  "bump": {
    "version": "2.0.0"
  }
}
```
````

#### Force major bump

````md
!simple-release/set-options

```json
{
  "bump": {
    "as": "major"
  }
}
```
````

#### Create alpha pre-release

````md
!simple-release/set-options

```json
{
  "bump": {
    "prerelease": "alpha"
  }
}
```
````

### Custom Changelog Preamble

You can add custom markdown to the top of the changelog (right after the
version header) using the `!simple-release/set-preamble` command. The
markdown after the command line becomes the preamble. Start its headings
at `###` — the level of the generated changelog sections like `###
Features`.

```md
!simple-release/set-preamble

### What's new?

- The website was completely redesigned
- The new API gives you awesome possibilities
```

In a monorepo, pass the full package name after the command to target a
single package's changelog. Wrap the name in backticks so GitHub keeps
it as text instead of a mention:

```md
!simple-release/set-preamble `@your-org/core`

### Core changes

- New plugin system
```

Use one comment per package, plus one without a name for the whole
release.

### Access Restrictions

The commands can only be used by users with permissions:
- repository owner
- organization member
- collaborator

### Notes

- The last comment with `!simple-release/set-options` command takes
priority
- The last `!simple-release/set-preamble` comment per package takes
priority
- JSON must be valid, otherwise the `set-options` command will be
ignored
- Parameters apply only to the current release execution
- The commands can be updated by editing the comment or adding a new one


</details>

<!--
  Please do not edit this comment.
  simple-release-pull-request: true
  simple-release-branch-from: release
  simple-release-branch-to: main
-->

Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant