Skip to content

Remove PGO from release workflow#233

Merged
jeremy merged 3 commits intomainfrom
remove-pgo
Mar 10, 2026
Merged

Remove PGO from release workflow#233
jeremy merged 3 commits intomainfrom
remove-pgo

Conversation

@jeremy
Copy link
Copy Markdown
Member

@jeremy jeremy commented Mar 10, 2026

Summary

  • Drop the "Collect PGO profile" step from the release workflow — it iterated 30+ packages at 3s each for 16 benchmarks across 3 packages (dateparse, names, output), adding 5+ minutes to every release for code that isn't on any hot path
  • Remove -pgo=auto from GoReleaser build flags
  • Remove Makefile targets: build-pgo, collect-profile, clean-pgo
  • Delete scripts/collect-profile.sh
  • Clean up .gitignore entry for default.pgo

Test plan

  • make check passes (fmt, vet, lint, unit tests, e2e tests, surface check)
  • make build produces binary without PGO flags
  • Next release tag confirms workflow completes faster without the step

Summary by cubic

Remove PGO from the release pipeline and build tooling to cut ~5 minutes from each release. Binaries are now built without PGO.

  • Refactors
    • Remove PGO profile collection from .github/workflows/release.yml
    • Drop -pgo=auto from .goreleaser.yaml
    • Delete PGO build tooling: Makefile targets (build-pgo, collect-profile, clean-pgo) and scripts/collect-profile.sh; remove stale collect-profile notes/help and update clean-all to remove profiling/benchmark artifacts
    • Remove .gitignore entry for default.pgo
    • Clear .surface-breaking for v0.3.1

Written for commit d0e65b3. Summary will update on new commits.

Only 16 benchmarks across 3 packages (dateparse, names, output), but the
collect step iterated all 30+ packages at 3s each — 5+ minutes of CI time
for a profile of code that isn't on any hot path. A CLI that spends its
time waiting on HTTP gets no measurable benefit from PGO.

Removes: release workflow step, GoReleaser -pgo=auto flag, Makefile
targets (build-pgo, collect-profile, clean-pgo), collect-profile.sh
script, and .gitignore entry.
@jeremy jeremy requested a review from a team as a code owner March 10, 2026 12:04
Copilot AI review requested due to automatic review settings March 10, 2026 12:04
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 10, 2026

Sensitive Change Detection (shadow mode)

This PR modifies control-plane files:

  • .github/workflows/release.yml
  • .goreleaser.yaml

Shadow mode — this check is informational only. When activated, changes to these paths will require approval from a maintainer.

@github-actions github-actions bot added ci CI/CD workflows enhancement New feature or request labels Mar 10, 2026
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e4f072cdcd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 5 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="Makefile">

<violation number="1" location="Makefile:255">
P2: The `bench-cpu` and `bench-mem` targets still print `"Note: For full multi-package profiling, use 'make collect-profile'"` (Makefile lines 114 and 125), but the `collect-profile` target was removed in this PR. These echo lines should be deleted or reworded so they don't reference a non-existent target.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

jeremy added 2 commits March 10, 2026 05:07
v0.3.0 removals acknowledged; reset for next release cycle.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes Profile-Guided Optimization (PGO) generation/usage from the release pipeline and local tooling to speed up releases and simplify builds.

Changes:

  • Drops the “Collect PGO profile” step from the GitHub release workflow.
  • Removes -pgo=auto and related PGO hooks from GoReleaser.
  • Deletes PGO-related Makefile targets/flags and removes the profile collection script and .gitignore entry.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
scripts/collect-profile.sh Deletes the benchmark-based profile collection script.
Makefile Removes PGO flags/targets and updates clean-all/help output accordingly.
.goreleaser.yaml Removes PGO detection hook and -pgo=auto build flag.
.gitignore Removes ignore rule for default.pgo.
.github/workflows/release.yml Removes the PGO profiling/merge step from the release workflow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jeremy jeremy merged commit 2be2ed7 into main Mar 10, 2026
25 checks passed
@jeremy jeremy deleted the remove-pgo branch March 10, 2026 16:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD workflows enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants