← Back to issue list

Declare public API names

View original Github issue

Metadata

Project
craft-cli
Number
#38
Type
pull request
State
merged
Author
cjwatson
Labels
—
Created
Updated
Closed

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.
74%
#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.
70%