Skip to content

Copier update: Pyrefly implicit reexport for non libraries - #112

Merged
ejfine merged 5 commits into
mainfrom
pyrefly-implicit-reexport-for-non-libraries
Sep 30, 2026
Merged

ejfine merged 5 commits into
mainfrom
pyrefly-implicit-reexport-for-non-libraries

Conversation

@ejfine

@ejfine ejfine commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Pull in upstream template changes

Do not let the suppression of that rule cascade into the pyrefly config for the actual library repo itself

Summary by CodeRabbit

  • Chores
    • Updated development tools and generated project templates to use newer supported versions.
    • Raised minimum supported versions for several project dependencies.
    • Adjusted type-checking settings: existing projects now allow implicit public re-exports, while newly generated projects require them to be explicitly declared.

ejfine and others added 2 commits September 30, 2026 10:14
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Packages generated from this template are distributed libraries, so their public API should stay deliberate. The template repo's own .config/pyrefly.toml keeps the ignore, since it is not a distributed library.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 53 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: LabAutomationAndScreening/copier-python-package-template/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 7b0b1334-e102-4372-ac37-9e6f2c6360b2

📥 Commits

Reviewing files that changed from the base of the PR and between c55d384 and 9f66287.

📒 Files selected for processing (1)
  • template/.config/pyrefly.toml

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: 1b77a5e2-64a8-4aee-9e68-fbc5f815fc0b

📥 Commits

Reviewing files that changed from the base of the PR and between 005e8b7 and c55d384.

📒 Files selected for processing (2)
  • .config/.copier-answers.yml
  • template/.config/pyrefly.toml

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 change raises dependency minimums, updates Pyrefly error settings, and changes development-container tooling pins and metadata.

Changes

Template dependency and tooling updates

Layer / File(s) Summary
Update dependency minimums
extensions/context.py, pyproject.toml
The context hook raises minimum versions for several dependencies, adds a typing_extensions minimum, and updates the Pyrefly minimum. pyproject.toml also raises the Pyrefly minimum.
Align development tooling settings
.config/pyrefly.toml, template/.config/pyrefly.toml, .devcontainer/devcontainer.json, template/.devcontainer/devcontainer.json.jinja, .config/.copier-answers.yml
Pyrefly ignores implicit-reexport errors in .config/pyrefly.toml and sets them to errors in the template configuration. The development-container extension pin and context hash change. The recorded Copier template commit changes.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to c55d3

No actionable issue is evidenced in the supplied changes, and the stricter template check is intentional. The PR appears ready subject to normal checks.

Architecture Summary

Architecture risk: 🔵 Low · up to c55d3

The change affects 3 systems.

Changed systems: template, extensions, pyproject.toml

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — template (service) was modified; 2 changed files map to changed impact.
  • observed — extensions (service) was modified; 1 changed file maps to changed impact.
  • observed — pyproject.toml (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in extensions/context.py: ContextUpdater.hook raises the minimum versions for Pulumi (3.261.0 → 3.265.0), Pulumi AWS (7.44.0 → 7.48.0), Pulumi AWS Native (1.77.0 → 1.81.0), Pulumi GitHub (6.13.1 → 6.14.0), ephemeral Pulumi deploy (0.0.7 → 0.0.8), Starlette (1.6.0 → 1.7.0), lab-auto-pulumi (0.2.3 → 0.3.0), pytest-mock (3.15.1 → 3.16.0), and Python Kiota bundle (1.12.3 → 1.14.1). It adds the typing_extensions_version minimum of 4.16.0.
  • observed — Modified behavior in extensions/context.py: The pyrefly minimum version increases from 1.3.1 to 1.3.2.
  • observed — Modified behavior in pyproject.toml: The minimum pyrefly dependency version changed from 1.3.1 to 1.3.2.
  • observed — Modified behavior in template/.devcontainer/devcontainer.json.jinja: The Python extension pin for meta.pyrefly changes from version 1.3.1 to 1.3.2.
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the general purpose but does not follow the required template. It omits the issue link, rationale, implementation details, side effects, testing, and Other sections. Add all required template sections and provide the issue or message link, reason for the change, implementation details, side effects, testing performed, and any relevant additional information.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (2 skipped: 2 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: updating the Copier template and preserving the Pyrefly implicit-reexport setting for non-library repositories.
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.
Full details: Docstring Coverage

Explanation

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


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.

@zendern

zendern commented Sep 30, 2026

Copy link
Copy Markdown

Might be overthinking it but do we want to actually keep that line and switch it to error and update the comment explaining why we switched it so that future us know why and we dont accidently merge a future pyrefly config update and it gets swapped back incorrectly?

Documents the intentional divergence from the upstream template's "ignore" so a future copier update does not silently revert it: generated packages are distributed libraries whose public API must be deliberate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ejfine

ejfine commented Sep 30, 2026

Copy link
Copy Markdown
Contributor Author

Good call — restored the line as implicit-reexport = "error" with a comment explaining that it intentionally diverges from the upstream template's "ignore" because generated packages are distributed libraries whose public API must be deliberate. That way a future copier update conflict on this line carries the reasoning right next to it.

c45f386

Reply drafted by AI (Claude), reviewed and approved by the author before posting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ejfine
ejfine marked this pull request as ready for review September 30, 2026 12:43
@ejfine
ejfine requested a review from zendern September 30, 2026 12:43
@ejfine
ejfine merged commit dd58397 into main Sep 30, 2026
21 checks passed
@ejfine
ejfine deleted the pyrefly-implicit-reexport-for-non-libraries branch September 30, 2026 13:43
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