Skip to content

Copier update: pulumi install fix#88

Merged
ejfine merged 2 commits intomainfrom
pulumi-fix
Mar 31, 2026
Merged

Copier update: pulumi install fix#88
ejfine merged 2 commits intomainfrom
pulumi-fix

Conversation

@ejfine
Copy link
Copy Markdown
Contributor

@ejfine ejfine commented Mar 31, 2026

Pull in upstream template changes

Summary by CodeRabbit

  • Documentation

    • Added testing guidance for validating tests that pass immediately without implementation changes.
    • Added testing guideline requiring presence assertions before absence checks to prevent false passes.
  • Chores

    • Updated template version and development container configuration.
    • Enhanced development setup with improved install script existence checks.
    • Added timeout protection to CI workflow jobs to prevent hanging executions.

@ejfine ejfine self-assigned this Mar 31, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 31, 2026

📝 Walkthrough

Walkthrough

This PR synchronizes updates across both the main repository and its Copier template directory. Changes include adding test validation guidance, improving Pulumi CLI installation logic with file existence checks, updating the Copier template version, adding CI workflow timeout configuration, and introducing testing assertions for absence checks.

Changes

Cohort / File(s) Summary
Documentation & Testing Guidelines
.claude/commands/red.md, template/.claude/commands/red.md, AGENTS.md, template/AGENTS.md
Added guidance on validating tests that pass immediately without implementation changes, and introduced requirement for prior presence assertions when tests check for absence conditions.
Dev Container Setup
.devcontainer/manual-setup-deps.py, template/.devcontainer/manual-setup-deps.py
Added PULUMI_CLI_INSTALL_SCRIPT constant and conditional file existence check before running Pulumi CLI installation; skips installation with message if script does not exist.
Dev Container Configuration
.devcontainer/devcontainer.json
Updated context hash value from d77a3ff3 to 087a93d5.
CI/CD Workflows
.github/workflows/ci.yaml, template/.github/workflows/ci.yaml.jinja
Added timeout-minutes configuration to check-skip-duplicate job (parameterized in template version).
Copier Template Version
.copier-answers.yml
Updated _commit field from v0.0.109 to v0.0.110.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • idonaldson
  • zendern
🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request description 'Pull in upstream template changes' is vague and does not follow the provided template structure with required sections like 'Why is this change necessary?' or 'How does this change address the issue?'. Expand the description to follow the template: explain why the upstream template changes are being pulled in, what specific issues are being addressed (e.g., Pulumi install fix), and what side effects or testing considerations exist.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Copier update: pulumi install fix' directly aligns with the primary change: updating the Copier template version and fixing Pulumi CLI installation handling in multiple files.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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 and usage tips.

@ejfine ejfine requested a review from idonaldson March 31, 2026 20:27
@ejfine ejfine marked this pull request as ready for review March 31, 2026 20:27
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/commands/red.md:
- Around line 101-110: Update the validation flow so the targeted test is run
before the full suite by changing the instruction that currently reads "Run the
**full test suite** (not just the new test)"; instead, instruct to first run the
new/targeted test in isolation to confirm it fails for the expected assertion,
then run the full suite to check broader impact, and adjust the surrounding
wording to reflect "When iterating on a single test, run that test in isolation
first; only run the full suite once the target test behaves as expected."

In `@template/.claude/commands/red.md`:
- Around line 101-110: Update the procedure so the "Run the **full test suite**
(not just the new test)" step is not executed before validating the new test in
isolation: change the sequence in the checklist to first run only the
targeted/new test to confirm it fails for the expected reason, then, after
confirming the isolated failure, run the full test suite to detect regressions;
edit the wording around the three steps to make this order explicit and preserve
the guidance about interpreting results and confirming the correct failure mode.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: f3524e4d-0e20-40a1-9fae-841656535323

📥 Commits

Reviewing files that changed from the base of the PR and between 6df486c and 3b46ec1.

📒 Files selected for processing (10)
  • .claude/commands/red.md
  • .copier-answers.yml
  • .devcontainer/devcontainer.json
  • .devcontainer/manual-setup-deps.py
  • .github/workflows/ci.yaml
  • AGENTS.md
  • template/.claude/commands/red.md
  • template/.devcontainer/manual-setup-deps.py
  • template/.github/workflows/ci.yaml.jinja
  • template/AGENTS.md

Comment on lines +101 to +110
1. Identify the implementation line most likely responsible for the pass
2. Temporarily remove that line
3. Run the **full test suite** (not just the new test)

Then interpret the result:

- **Only the new test fails** — the line was never driven by a prior test. This is accidental over-implementation: delete the line permanently and proceed to the green phase to reintroduce it properly.
- **Other existing tests also fail** — the line was already legitimately required by prior work. The new test is valid regression coverage. Restore the line; the test is confirmed correct as written.

In both cases, confirm the new test fails for the expected reason before proceeding (the right assertion, not a syntax or import error).
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Reorder validation flow to run the targeted test before the full suite.

At Line 103, requiring a full-suite run immediately conflicts with the project’s targeted-first test iteration rule. After temporarily removing the line, first run the new test alone to confirm it turns red for the expected assertion reason; then run the full suite to assess prior coverage impact.

Suggested wording update
-1. Identify the implementation line most likely responsible for the pass
-2. Temporarily remove that line
-3. Run the **full test suite** (not just the new test)
+1. Identify the implementation line most likely responsible for the pass
+2. Temporarily remove that line
+3. Run the **new test in isolation** and confirm it fails for the expected assertion reason
+4. Then run the **full test suite** to check whether prior tests also depend on that line

Based on learnings: "When iterating on a single test, run that test in isolation first... Only run the full suite once the target test behaves as expected."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/commands/red.md around lines 101 - 110, Update the validation flow
so the targeted test is run before the full suite by changing the instruction
that currently reads "Run the **full test suite** (not just the new test)";
instead, instruct to first run the new/targeted test in isolation to confirm it
fails for the expected assertion, then run the full suite to check broader
impact, and adjust the surrounding wording to reflect "When iterating on a
single test, run that test in isolation first; only run the full suite once the
target test behaves as expected."

Comment on lines +101 to +110
1. Identify the implementation line most likely responsible for the pass
2. Temporarily remove that line
3. Run the **full test suite** (not just the new test)

Then interpret the result:

- **Only the new test fails** — the line was never driven by a prior test. This is accidental over-implementation: delete the line permanently and proceed to the green phase to reintroduce it properly.
- **Other existing tests also fail** — the line was already legitimately required by prior work. The new test is valid regression coverage. Restore the line; the test is confirmed correct as written.

In both cases, confirm the new test fails for the expected reason before proceeding (the right assertion, not a syntax or import error).
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Keep template guidance aligned with targeted-first test execution.

Line 103 currently pushes a full-suite run too early. To match established workflow, validate the new test’s red state in isolation first, then run the full suite for dependency/regression signal.

Suggested wording update
-1. Identify the implementation line most likely responsible for the pass
-2. Temporarily remove that line
-3. Run the **full test suite** (not just the new test)
+1. Identify the implementation line most likely responsible for the pass
+2. Temporarily remove that line
+3. Run the **new test in isolation** and confirm it fails for the expected assertion reason
+4. Then run the **full test suite** to check whether prior tests also depend on that line

Based on learnings: "When iterating on a single test, run that test in isolation first... Only run the full suite once the target test behaves as expected."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@template/.claude/commands/red.md` around lines 101 - 110, Update the
procedure so the "Run the **full test suite** (not just the new test)" step is
not executed before validating the new test in isolation: change the sequence in
the checklist to first run only the targeted/new test to confirm it fails for
the expected reason, then, after confirming the isolated failure, run the full
test suite to detect regressions; edit the wording around the three steps to
make this order explicit and preserve the guidance about interpreting results
and confirming the correct failure mode.

@ejfine ejfine merged commit 9194ed8 into main Mar 31, 2026
27 checks passed
@ejfine ejfine deleted the pulumi-fix branch March 31, 2026 21:05
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