← Back to issue list

Use Craft Application's Linter Service

View original Github issue

Metadata

Project
charmcraft
Number
#2546
Type
issue
State
open
Author
mr-cal
Labels
Status: Triaged Type: Refactor
Created
Updated
Closed

Current evaluation

Refactor to migrate charmcraft's linters to craft-application's shared LinterService for consistent lint UX across craft apps. Triaged and open; upstream framework (craft-application#907) is merged, but no code changes yet and no human activity for ~7 months.

Suggested action: keep open

Reason: The issue carries maintainer labels (Status: Triaged, Type: Refactor) and remains fully applicable: charmcraft still uses its own linters.py/AnalysisService with no LinterService usage, while the upstream dependency craft-application#907 (LinterService framework) has been merged, making the refactor actionable now. Inactivity (~7 months, bot-only comments) is notable but the work is not obsolete, so it should stay open rather than be closed as stale.

Impact: 45 Quick Win: 11.25 Staleness: 60 Complexity: 75 Confidence: 82 Support Request: 0

Issue body

### Check existing issues - [x] I've verified that this request isn't described by any existing issues. ### Request Migrate to the Linter Service as implemented at https://github.com/canonical/craft-application/issues/782 * All linters are implementations of the Craft Application class * The lint command uses the LinterService * Any other uses of linters use the LinterService ### The problem it solves Snapcraft and Charmcraft lint snaps and charms respectively at the end of the lifecycle. These linters don’t share common code and don’t have a similar UX. Additionally, there isn’t a way to add linters to other *craft apps without significant code duplication. Supersedes #2315

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 45
Quick Win: 11.25
Staleness: 60
Complexity: 75
Confidence: 82
Support Request: 0
keep open Refactor to migrate charmcraft's linters to craft-application's shared LinterService for consistent lint UX across craft apps. Triaged and open; upstream framework (craft-application#907) is merged, but no code changes yet and no human activity for ~7 months.
qwen/qwen3.6-35b-a3b
Staleness: 65
Complexity: 60
Confidence: 85
Support Request: 0
keep open Refactor to migrate snapcraft and charmcraft linting to the shared Craft Application Linter Service. Triaged and open, but inactive for 181 days with only automated Jira sync comments.
qwen3.6-35b-a3b-mtp-q6
Staleness: 65
Complexity: 55
Confidence: 80
Support Request: 5
keep open Refactor to migrate linting to Craft Application's LinterService, addressing code duplication and UX inconsistencies across *craft tools. Currently triaged but inactive for 167 days with only bot comments.
qwen3.6-35b-a3b-mtp-q6
Staleness: 65
Complexity: 70
Confidence: 85
Support Request: 5
keep open Refactor to migrate snapcraft and charmcraft linters to the shared Craft Application LinterService. Currently triaged and awaiting implementation, with no maintainer activity in over five months.
qwen3.6-35b-a3b-mtp-q6
Staleness: 65
Complexity: 45
Confidence: 80
Support Request: 5
keep open Migrate linting commands to the shared Craft Application Linter Service to reduce duplication and unify UX across craft tools. Currently triaged, inactive for 145 days, and awaiting assignment.

Update history

No update history recorded yet.

Related work

  • Related To: craft-application#907 (confidence 90%)

    Merged PR adding the shared LinterService framework (closed craft-application#782); this is the upstream dependency this refactor migrates to, now available.

  • Duplicate Of: charmcraft#2315 (confidence 90%)

    Body states 'Supersedes #2315'; that earlier issue with the same title was closed after its bounty lapsed, so this issue is the live successor.

  • Related To: snapcraft#5971 (confidence 85%)

    Same LinterService migration tracked for snapcraft; open and triaged, so the two apps' refactors are likely coordinated.

Related issues

Issue Project State Summary Similarity
#5971 Use Craft Application's Linter Service snapcraft open Refactor to migrate snapcraft linters to craft-application's LinterService. Triaged and labeled; upstream framework (craft-application#907) is merged, but no code changes yet. Supersedes closed #5542.
91%
#2315 Use Craft Application's Linter Service charmcraft closed The bounty for migrating to the Craft Application Linter Service was closed, abandoning the issue. Implementation remained blocked by upstream dependency resolution, and no code changes were merged.
84%
#5542 Use Craft Application's Linter Service snapcraft closed Abandoned without implementation. Migrating linters to the Craft Application LinterService was blocked by the upstream dependency, and the associated $400 bounty was closed.
83%
#907 feat(linter): add linter service framework craft-application merged Merged a shared Linter Service framework for craft-application, enabling consistent linting across downstream apps. Approved by three reviewers, passed all CI checks, and closed issue #782.
79%