Declare public API names
Metadata
Current evaluation
Merged PR #38 (a89b2be), adding explicit public API declarations for mypy --strict; Emitter remained non-public pending clarification.
Resolution: closed resolved
Reason: The approved change landed through merge commit a89b2be, based on implementation commit 0d9f3b1, adding explicit public API declarations to two modules. A maintainer confirmed the PR would land while noting Emitter's ambiguous status.
Evaluated by: mr-cal-bot
No scores available.
Issue body
`mypy --strict` enforces these by default.
I'm not sure whether `Emitter` should be public. It doesn't have an underscore, but it also isn't used by charmcraft - I guess it might be needed to implement test fixtures? I decided to err on the side of strictness and you can always open it up if you want.
- [X] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)? (Canonical employee, so not required.)
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #38 (a89b2be), adding explicit public API declarations for mypy --strict; Emitter remained non-public pending clarification. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged canonical/craft-cli#38 (a89b2be), adding explicit public API declarations for mypy --strict while keeping Emitter non-public. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR “Declare public API names” to satisfy mypy --strict by explicitly marking API names public/private, including treating Emitter as private. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged to declare public API names and satisfy mypy strict mode. Emitter visibility was debated but accepted. Approved and merged by maintainer, acknowledging it as the main message system interface. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #78 api: declare public api names (CRAFT-570) | craft-providers | merged | Merged PR #78 (commit 06c2176) explicitly exported craft-providers public API names for PEP 561 py.typed compatibility. | |
| #52 api: declare public api names | craft-cli | merged | Merged PR (commit 7dfe254, merged via 6d5d9be) added an explicit __all__ to craft_cli/__init__.py listing the 11 public API names, satisfying pyright's PEP-561 py.typed enforcement. |