Skip to content

feat(dev-workflow): PR E — real release pipeline (all defineFunction)#224

Merged
Neftedollar merged 4 commits into
masterfrom
feat/dev-workflow-release-pipeline-real
Apr 18, 2026
Merged

feat(dev-workflow): PR E — real release pipeline (all defineFunction)#224
Neftedollar merged 4 commits into
masterfrom
feat/dev-workflow-release-pipeline-real

Conversation

@Neftedollar
Copy link
Copy Markdown
Owner

Summary

Fifth and final of the dev-run.md PR plan. Makes the release pipeline end-to-end real.

All 4 nodes are defineFunction — release mechanics don't need LLM judgment, and an LLM-driven npm publish is a footgun.

Changes

  • bump: semver bump from labels
  • changelog: dated CHANGELOG.md entries
  • publish: npm publish in dep order (respects dryRun via plan:true)
  • cleanup: git tag release commit (no auto-push)

Safety

  • publish with plan: true prints commands without running them. dryRun flag on WorkflowInput gates this.

Test plan

  • typecheck / test / lint green
  • --dry-run 194 works

Refs #194. Closes the main dev-run.md plan — only PR F (10-run retrospective) remains and that's a docs-only retro after real runs land.

Swaps 4 noop nodes in release.ts for defineFunction implementations:
- bump: semver bump via package.json rewrite (patch/minor/major from labels)
- changelog: append dated section to CHANGELOG.md at repo root
- publish: npm publish in PUBLISH_ORDER (critical path); respects dryRun
  via plan:true mode that prints instead of executes
- cleanup: git tag the release commit (no auto-push — operator pushes)

No LLM agents — release mechanics are deterministic.

Bumps @ageflow/dev-workflow 0.0.13 → 0.0.14 (private).
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: 7d2bb9607c

ℹ️ 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".

Comment on lines +288 to +290
// TODO: parse affectedPackages from issue body. For now empty → no-op;
// operator fills via issue labels/body convention.
affectedPackages: [] as string[],
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Derive affected packages before running bump

The release pipeline hardcodes affectedPackages to an empty array, and WorkflowInput does not provide any alternate source for this value, so bumpFn always produces an empty bumps list. In real runs that means no package versions are changed and publish has nothing to publish, yet the workflow still advances to changelog/tag steps as if a release happened.

Useful? React with 👍 / 👎.

Comment on lines +20 to +24
"@ageflow/runner-claude",
"@ageflow/runner-codex",
"@ageflow/runner-api",
"@ageflow/testing",
"@ageflow/server",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Include runner-anthropic in publish order

The publish order omits @ageflow/runner-anthropic (a non-private package under packages/runners/anthropic), so any release that bumps that package will never attempt npm publish for it. This can leave internal package versions out of sync by completing a release where one bumped package was silently never published.

Useful? React with 👍 / 👎.

Comment on lines +229 to +233
} catch (err) {
skipped.push({
package: pkgName,
reason: (err as Error).message.slice(0, 200),
});
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Fail the workflow when npm publish errors occur

When npm publish fails for a package, the error is converted into a skipped entry and execution continues. In production this allows the workflow to proceed to cleanup/tagging after partial publish failures (for example, registry/auth/network errors), creating a release tag that incorrectly implies a complete successful release.

Useful? React with 👍 / 👎.

Roman Melnikov added 3 commits April 19, 2026 01:30
1. bump: parse affectedPackages from issue body (regex @ageflow/X);
   throw when list is empty to prevent silent no-op releases.
2. PUBLISH_ORDER: add @ageflow/runner-anthropic (non-private package,
   was omitted — would silently skip its publish on release).
3. publish: throw when any npm publish fails, instead of continuing
   to changelog+tag. Prevents misleading release tags on partial failure.

Bumps @ageflow/dev-workflow 0.0.14 → 0.0.15 (private).
P1-3 fix (throw on publish failure) was too eager: it fired even in
plan:true mode where package lookup failures are informational during
dry-run. Restructured: skip directory lookup entirely in plan mode,
treating it as a pure dry-run.
@Neftedollar Neftedollar merged commit 43c0fb2 into master Apr 18, 2026
3 checks passed
@Neftedollar Neftedollar deleted the feat/dev-workflow-release-pipeline-real branch April 18, 2026 22:50
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