Repository navigation
Copier update (v0.0.64 → v0.0.78) and pyrefly fixes - #35
Conversation
Clone Repository in Container Volume runs initializeCommand in a bootstrap container, so the compose bind mount of .. points at a path the Docker host lacks and shadows the clone with an empty directory. Detect that case and write WORKSPACE_MOUNT_TARGET=/workspaces to .devcontainer/.env so VS Code's own /workspaces volume mount replaces the bind mount. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Resolve rejected hunks: keep project version 0.0.7, repo-specific dev deps, coverage fail_under=33 (now in .config/.coveragerc), and the workspace mount retargeting in initialize-command.sh with its .devcontainer/.env gitignore entry. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Make string emptiness checks explicit, type the empty outputs dict in the CLI test, and update the devcontainer context hash. Adds a TODO for the pre-existing None-to-"None" region bug. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ff format Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Adds typing-extensions as a runtime dependency (closed= on TypedDict needs Python 3.15 in stdlib) and bumps version to 0.0.8. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Removes the always-true isinstance assert and pyright-specific type: ignore comments that pyrefly no longer needs. Updates the devcontainer context hash. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Important Review skippedToo many files! This PR contains 119 files, which is 19 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Repository: LabAutomationAndScreening/ephemeral-pulumi-deploy/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (119)
You can disable this status message by setting the 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. Comment |
Codecov Report❌ Patch coverage is
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dict[str, object] rejected callers passing dicts with narrower value types, since dict is invariant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pulumi 3.265.0, pulumi-aws 7.48.0, pulumi-aws-native 1.81.0, boto3/boto3-stubs 1.43.103, typing-extensions 4.16.0, pytest-mock 3.16.0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Link to Issue or Message thread
N/A — routine copier template update.
Why is this change necessary?
Pulls in the upstream
copier-base-templatechanges fromv0.0.64tov0.0.78. The biggest change for this repo is that the template now type-checks source code with pyrefly (strict config in.config/pyrefly.toml) instead of pyright, which surfaced new type errors that had to be resolved for linting to pass.How does this change address the issue?
Copier update
.config/(.coveragerc,ruff.toml,pylintrc.toml,_typos.toml,.prettierrc,.copier-answers.yml), and new Claude skills/hooks, aTaskfile.yaml, and a release workflow were added.boto3-stubs/pytest-mockdev dependencies, the coverage threshold, and the workspace-mount retargeting in.devcontainer/initialize-command.sh(with.devcontainer/.envgitignored).Minimal changes to satisfy pyrefly (no intended behavior changes)
if not region:/if resource_name:→ explicit== ""/!= ""comparisons (implicit-bool).str(args.stack)so the argparse result is typed asstr(args.stackis alreadyrequired=True, type=str).dict[str, Any]→dict[str, object]forget_config's return type.run_cli'sstack_configkeepsdict[str, Any]with an inline# pyrefly: ignore[explicit-any], matching Pulumi'sStackSettings.config.get_stack'sstack_configkeepsdict[str, Any]with an inline# pyrefly: ignore[explicit-any]— its values are a mix ofstrandConfigValue, and Pulumi'sStackSettings.configis itself typeddict[str, Any].StackKwargsis now a closed TypedDict (closed=True) so it can be unpacked intoStack.up()/Stack.preview(). The stdlib only supportsclosed=from Python 3.15, soTypedDictis imported fromtyping_extensions, which is added as a runtime dependency.get_config:value: object = json_dict["value"](narrowed by the existingisinstancecheck), removed an always-trueassert, and removed stale pyright-specific# type: ignorecomments.outputsdict in one CLI test.Other
initialize-command.shwritesWORKSPACE_MOUNT_TARGET=/workspacesto.devcontainer/.envso the compose bind mount of..no longer shadows the cloned volume with an empty directory.0.0.8.What side effects does this change have?
typing-extensions>=4.12.2.run_cli(stack_config=...)is typeddict[str, Any](with a# pyrefly: ignore[explicit-any]) to match Pulumi's ownStackSettings.config, so downstream callers passing dicts with narrower value types (e.g.dict[str, ConfigValue]) are unaffected. A TODO notes a possible future switch toMapping[str, object], which would meanget_stackwrites its injected keys into a copy rather than the caller's dict.get_aws_region:str(pulumi_aws.config.region)turns aNoneregion into"None", so the empty-string check never catches a missing region. This is a pre-existing bug, intentionally not fixed in this PR.How is this change tested?
Other
🤖 Generated with Claude Code