Skip to content

[breaking-change] Daily Breaking Change Analysis - 2026-06-18 #40102

@github-actions

Description

@github-actions

Summary

  • Total Breaking Changes: 1
  • Severity: HIGH
  • Commits Analyzed: 1
  • Status: ⚠️ Requires Immediate Review

Critical Breaking Changes

Commit File Category Change Impact
bb2a018 .changeset/major-remove-imports-if.md + pkg/workflow/ Schema Change Removed if condition support from imports: frontmatter entries Any workflow using imports: [{path: ..., if: ...}] will now fail to compile
Full Code Diff Analysis

Detailed Commit Analysis

Commit: bb2a018 — Fix apply_samples cross-repo subdirectory patch staging (#40086) (#40087)
Author: Don Syme
Date: 2026-06-18

Alongside the primary bug fix, this commit introduced a major schema breaking change via the changeset major-remove-imports-if.md.

What changed:

  • imports: entries in workflow frontmatter no longer accept an if condition.
  • Schema validation now rejects imports entries with an if field (error: "Unknown property: if").
  • A migration guard also rejects it with error: "import 'if' is no longer supported".
  • Tests explicitly assert that CompileWorkflow fails with these errors when imports.if is present.

Before (now broken):

imports:
  - path: shared/tools.md
    if: ${{ experiments.my-experiment }}

After (required):

# Use runtime-import in the workflow body instead:
{{#if experiments.my-experiment}}
{{#runtime-import shared/tools.md}}
{{/if}}

Breaking Change Patterns Detected

  • Schema Change: Removing accepted properties from imports object entries → BREAKING per policy
  • Behavior Change: Workflows using imports.if now fail at compile time instead of being accepted
All Commits Analyzed
Commit Description Author Relevant Files
bb2a018 Fix apply_samples cross-repo subdirectory patch staging (#40086) (#40087) Don Syme 2248 Go files + schema/changeset files

Action Checklist

Complete the following items to address these breaking changes:

  • Review all breaking changes detected - Verify each change is correctly categorized
  • Create a changeset file in .changeset/ directory - ✅ Already created: .changeset/major-remove-imports-if.md with major bump type
  • Add migration guidance to changeset - ✅ Migration guidance already included in the changeset file
  • Document breaking changes in CHANGELOG.md - Add entry under "Breaking Changes" section: removal of imports.if support
  • Verify backward compatibility was considered - Confirm that runtime-import alternative was tested

Recommendations

Version bump: This change requires a major semver bump (breaking change).

Migration steps for users:

  1. Search workflows for imports: entries containing if: conditions.
  2. Replace with {{#if experiments.<name>}} + {{#runtime-import ...}} template conditionals in the workflow body.
  3. Recompile all affected workflows with gh aw compile.

Reason for removal: Conditional imports could change workflow setup and security posture at runtime, creating unpredictable behavior and potential security issues.

Reference

See scratchpad/breaking-cli-rules.md for the complete breaking change policy.


Once all checklist items are complete, close this issue.

⚠️ Compatibility report by Breaking Change Checker ·

  • expires on Jun 20, 2026, 8:09 AM UTC-08:00

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions