feat(remote-build): add LaunchpadClient
Metadata
Current evaluation
Closed unmerged and superseded by #4390, which merged the LaunchpadClient and WorkTree migration as commit 80ffb5191.
Resolution: closed superseded
Reason: The changes were completed through PR #4390 and merged in commit 80ffb5191, resolving #4323.
Evaluated by: mr-cal-bot
No scores available.
Issue body
- [x] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] Have you successfully run `make lint`?
- [x] Have you successfully run `pytest tests/unit`?
-----
Migrate `WorkTree`, `LaunchpadClient`, and their tests from `snapcraft_legacy`. Reviewing by commit is the easiest.
Scope:
- Add extra errors and utilities
- Tweak the `GitRepo` class
- Migrate `WorkTree`, `LaunchpadClient`, and their unit tests
- Modernize to current code conventions and style
- Update tests from `unit.TestCase` to `pytest`
Note that the WorkTree class is pretty empty now. It will get populated more as part of #4324.
Fixes #4323
(CRAFT-1978)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed superseded | Closed unmerged and superseded by #4390, which merged the LaunchpadClient and WorkTree migration as commit 80ffb5191. | |
| stealth/space-bunny-alpha | — | closed superseded | Closed unmerged and superseded by #4390, merged as 80ffb5191. That PR migrated LaunchpadClient and WorkTree from snapcraft_legacy, modernized GitRepo, and converted tests to pytest. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed after migrating LaunchpadClient and WorkTree from snapcraft_legacy, modernizing code conventions and updating tests to pytest. Resolves issue #4323. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Migrated WorkTree, LaunchpadClient, and unit tests from snapcraft_legacy, modernized code to current conventions, updated tests to pytest, and added error utilities. Resolves #4323. |
Update history
No update history recorded yet.
Related work
-
Superseded By:
snapcraft#4390
(confidence 100%)
Merged the equivalent LaunchpadClient and WorkTree migration in commit 80ffb5191.
-
Related To:
snapcraft#4323
(confidence 100%)
The tracked remote-build rework issue was resolved by the superseding PR.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #4323 remote-build: rework WorkTree and LaunchpadClient classes | snapcraft | closed | Resolved by merged PR #4390 (commit 80ffb5191), migrating LaunchpadClient and WorkTree into snapcraft/remote_build. | |
| #4390 chore(remote-build): migrate LaunchpadClient and WorkTree | snapcraft | merged | Merged PR #4390 as commit 80ffb5191, migrating LaunchpadClient and WorkTree out of snapcraft_legacy and modernizing their implementation and pytest coverage; fixes #4323. | |
| #224 fix(remotebuild): create the launchpad instance correctly | craft-application | merged | Merged PR #224 as commit 87bc56a7, fixing remotebuild to create the Launchpad instance correctly. | |
| #230 fix: make launchpad client always create relevant files | craft-application | merged | Merged PR #230 fixed Launchpad client file creation and landed as commit ff1714d4. | |
| #194 feat: launchpad client | craft-application | merged | Merged PR #194 (commit 1e105e49) added craft_application/launchpad, a generic launchpadlib wrapper with a unified interface, modelled on Snapcraft's remote-build client. It later gained models, getters and bug fixes (#215-#615). |