feat(remote-build): add LaunchpadClient
Metadata
Current evaluation
Closed after migrating LaunchpadClient and WorkTree from snapcraft_legacy, modernizing code conventions and updating tests to pytest. Resolves issue #4323.
Suggested action: —
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 |
|---|---|---|---|---|
| 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Migrated WorkTree, LaunchpadClient, and unit tests from snapcraft_legacy, modernized code conventions, and updated tests to pytest. Resolved #4323. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #4390 chore(remote-build): migrate LaunchpadClient and WorkTree | snapcraft | merged | Merged into main after two approvals and passing CI. Migrates LaunchpadClient and WorkTree classes and tests from snapcraft_legacy, modernizing conventions, updating to pytest, and refactoring GitRepo. Resolves #4323. | |
| #4323 remote-build: rework WorkTree and LaunchpadClient classes | snapcraft | closed | The remote-build refactoring was closed without implementation. Migration to snapcraft/remote_build/ and WorkTree simplifications were abandoned or superseded by subsequent project updates. | |
| #194 feat: launchpad client | craft-application | merged | Merged a generic Launchpad client wrapper around launchpadlib. Approved by two reviewers and passed CI. Adds 1632 lines across 20 files to provide a unified interface inspired by snapcraft's remote build implementation. |