project_loader: allow loading null parts
Metadata
Current evaluation
Merged as commit 78cb692f5, allowing null-valued parts so remote parts can be listed without an artificial after dependency.
Resolution: closed resolved
Reason: PR #2153 was merged as commit 78cb692f5. The change fixed LP #1772027 by accepting null part definitions for remote parts without requiring an after relationship.
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] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on [bug reports](https://bugs.launchpad.net/snapcraft)?
- [x] If this is a new feature. Have you discussed the design on the [forum](https://forum.snapcraft.io)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh unit`?
-----
This PR fixes [LP: #1772027](https://bugs.launchpad.net/snapcraft/+bug/1772027) by allowing one to specify remote parts without requiring the use of `after`, which implies a relationship which may not exist. With this PR, one can specify that the want a remote part simply by listing the part name, e.g.:
```yaml
parts:
my-part:
plugin: whatever
# build my stuff
# Also pull in gtk3, although my-part doesn't strictly depend on it for
# pulling or building.
desktop-gtk3:
```
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged as commit 78cb692f5, allowing null-valued parts so remote parts can be listed without an artificial after dependency. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2153 (commit 78cb692f5) fixed LP: #1772027 by allowing remote parts to load without an after relationship. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged PR #2153 fixes LP: #1772027 by allowing the project loader to accept remote parts without requiring the after directive. Approved and merged by maintainer kyrofa with 100% diff coverage. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into master, enabling null part loading without the after directive. Resolves Launchpad bug #1772027 by allowing remote parts to be listed by name alone, removing implied build dependencies. Test coverage increased marginally. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #735 Load the remote parts only when needed. | snapcraft | merged | Merged PR #735 (commit 25fbbe8ef) to defer loading remote parts until they are needed, avoiding unnecessary remote-part loading. | |
| #2304 project loader: remove remote parts support for bases | snapcraft | merged | Merged PR #2304 as commit 06532fe0c, removing remote-part support for bases, rejecting invalid `after` parts, and dropping the update/search/define CLI commands. | |
| #2472 project loader: do not leak a part's build-environment | snapcraft | merged | Merged #2472 as commit 8ca7dd7f2, preventing a part's build environment from leaking into parts declared with after and avoiding unintended concatenation. |