← Back to issue list

Refactor how managed mode and provider are determined

View original Github issue

Metadata

Project
craft-application
Number
#262
Type
issue
State
open
Author
mr-cal
Labels
Created
Updated
Closed

Current evaluation

Technical debt: consolidate managed-mode and provider determination (currently in 2 places) into one earlier step in craft-application. Code still exhibits the split structure; no labels, no maintainer response, 15 months inactive.

Suggested action: needs triage

Reason: No labels, no assignee, and the only comment is the Jira-sync bot (2024-03-11) — no maintainer has triaged or acknowledged this. The code still shows the split structure: `util/platforms.py:is_managed_mode()` and `ProviderService.is_managed()` both check the env var independently, and `application.py:552` still calls `command.provider_name(parsed_args)` before `_configure_services`, so the refactor described is still applicable and not obsolete.

Impact: 25 Quick Win: 11.25 Staleness: 75 Complexity: 55 Confidence: 72 Support Request: 0

Issue body

### What needs to get done Snapcraft determines if it should run in managed mode or not and which provider to use. This is done in 2 discrete places in the codebase. This was upstreamed in https://github.com/canonical/craft-application/pull/242. To make the code more readable and maintainable in craft-application, this code could be combined and done earlier in craft-application's execution. Source: https://github.com/canonical/craft-application/pull/242#discussion_r1507992182 ### Why it needs to get done To reduce code debt

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 25
Quick Win: 11.25
Staleness: 75
Complexity: 55
Confidence: 72
Support Request: 0
needs triage Technical debt: consolidate managed-mode and provider determination (currently in 2 places) into one earlier step in craft-application. Code still exhibits the split structure; no labels, no maintainer response, 15 months inactive.
qwen/qwen3.6-35b-a3b
Staleness: 85
Complexity: 40
Confidence: 65
Support Request: 5
needs triage Refactor to consolidate managed mode and provider determination logic in craft-application. Currently unlabelled, inactive for over a year, and awaiting maintainer assessment.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 40
Confidence: 75
Support Request: 5
needs triage Refactor to consolidate managed mode and provider determination logic in craft-application. Currently unlabelled, unassessed, and inactive for over a year.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 40
Confidence: 80
Support Request: 5
close stale Refactor craft-application to consolidate duplicated managed mode and provider determination logic into a single, earlier execution point, improving readability and reducing technical debt. Open with internal Jira ticket CRAFT-2597 created, awaiting implementation.

Update history

No update history recorded yet.

Related work

  • Related To: canonical/craft-application#242 (confidence 90%)

    PR #242 is cited as the source of the duplicated managed-mode/provider logic that this issue asks to consolidate.

Related issues

No related issues found above the similarity threshold.