Skip to content

Copier update: install CI tooling - #115

Merged
ejfine merged 4 commits into
mainfrom
harden-ci-tooling-network
Oct 8, 2026
Merged

ejfine merged 4 commits into
mainfrom
harden-ci-tooling-network

Conversation

@ejfine

@ejfine ejfine commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Pull in upstream changes, tested in downstream repo

Summary by CodeRabbit

  • Bug Fixes
    • Development environment setup now retries failed network operations, uses safer download checks, and better handles timed-out processes across platforms.
    • Setup verifies that the selected uv executable is available and working, and retries installation of additional development tools.
    • Generated projects now require pytest-recording version 0.14.0 or later.
  • Documentation
    • Pull request templates now ask for a test plan, including verification methods, coverage gaps, and checks already handled by CI.

ejfine added 2 commits October 7, 2026 20:47
Pulls retries with backoff for the network steps in install-ci-tooling.py, downloading the uv installer to a file instead of piping it into sh, and killing the whole process tree when a retried step times out.
Pulls: npm keeps its own fetch retry settings, only the pnpm install is retried (not the local version checks), a single retry loop that re-raises the last attempt's error, and keyword-only install_uv/install_task. Also the PR template's guidance to leave out anything CI already covers.
@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: Repository: LabAutomationAndScreening/copier-python-package-template/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 3df4e442-0972-428f-b5eb-899f1a959594
📥 Commits

Reviewing files that changed from the base of the PR and between 4d4b9f0 and 0ba5ba6.

📒 Files selected for processing (3)
  • .claude/skills/address-pr-comments/SKILL.md
  • .config/.copier-answers.yml
  • template/.claude/skills/address-pr-comments/SKILL.md

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: LabAutomationAndScreening/copier-python-package-template/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 0e5fbc21-67bb-4790-907c-fe9be9e7fe69
📥 Commits

Reviewing files that changed from the base of the PR and between 392d58d and 4d4b9f0.

📒 Files selected for processing (1)
  • .config/.copier-answers.yml

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


📝 Walkthrough

Walkthrough

The devcontainer installer and its Jinja template add retries, shared download options, and process-tree timeout handling for tool installation commands. The changes also update project metadata, the pytest-recording version requirement, and pull request template guidance.

Changes

Project Template Updates

Layer / File(s) Summary
Retry and process execution
.devcontainer/install-ci-tooling.py, template/.devcontainer/install-ci-tooling.py.jinja
Both installer versions add retry settings, exponential backoff, shared curl options, and process-tree termination for timed-out commands.
Tool installation flows
.devcontainer/install-ci-tooling.py, template/.devcontainer/install-ci-tooling.py.jinja
uv, Task, pnpm, Copier, pre-commit, prek, and SSM plugin installation steps use the retry helpers where specified. uv installation verifies the selected executable and its version.
Template and project metadata
.config/.copier-answers.yml, .devcontainer/devcontainer.json, extensions/context.py, .github/pull_request_template.md, template/.github/pull_request_template.md
The Copier commit reference, devcontainer context-hash comment, and pytest-recording version requirement change. Both pull request templates add test-plan guidance.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant install_ci_tooling.py
  participant run_with_retries
  participant run_process_tree
  participant InstallerCommand
  install_ci_tooling.py->>run_with_retries: run command with retry settings
  run_with_retries->>run_process_tree: execute command attempt
  run_process_tree->>InstallerCommand: start command
  InstallerCommand-->>run_process_tree: exit status or timeout
  run_process_tree-->>run_with_retries: result or exception
  run_with_retries-->>install_ci_tooling.py: return or raise final exception
Loading

Merge Risk: ⚪ Minimal · up to 4d4b9

The installer, template, and metadata changes are suitable to merge based on the available source evidence.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 45.45% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 11 functions across 2 files. (1 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ⚠️ Warning The description is largely incomplete. It does not include the required issue link, rationale, implementation details, side effects, test plan, or other relevant information. Complete the required sections: provide the issue or message-thread link, explain why the Copier update is necessary, describe how it addresses the issue, document side effects, and provide a specific test plan with coverage and limitations…
✅ Passed checks (3 passed)
Check name Status Explanation
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.
Title check ✅ Passed The title clearly identifies the main change: updating Copier-managed CI tooling installation.
Full details: Docstring Coverage

Explanation

Docstring coverage is 45.45% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 11 functions across 2 files. (1 skipped: 1 unsupported.)

Full details: Description check

Resolution

Complete the required sections: provide the issue or message-thread link, explain why the Copier update is necessary, describe how it addresses the issue, document side effects, and provide a specific test plan with coverage and limitations.

  • Fix all pre-merge checks with AI
  • Autopilot · 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.

@ejfine
ejfine marked this pull request as ready for review October 8, 2026 09:19
@ejfine
ejfine requested a review from zendern October 8, 2026 09:19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ejfine
ejfine merged commit 7575d0d into main Oct 8, 2026
21 checks passed
@ejfine
ejfine deleted the harden-ci-tooling-network branch October 8, 2026 12:57
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.

2 participants