Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Displaying suggested packages #87

Closed
aleixpol opened this issue Nov 9, 2016 · 1 comment
Closed

Displaying suggested packages #87

aleixpol opened this issue Nov 9, 2016 · 1 comment

Comments

@aleixpol
Copy link
Collaborator

aleixpol commented Nov 9, 2016

At the moment the spec offers addons, which are components that directly target another component. Sometimes though we have suggested dependencies, something that isn't necessary but recommended, as you very well known it's done in distros. These suggested dependencies should be displayed in software centers: you want to offer cmake together with KDevelop (https://packages.debian.org/jessie/kdevelop)

Do you think it's possible to extend the appstream spec to define these dependencies?
AppStream could also use the packaging information for the final information passed to the Software Centers as well.

@ximion
Copy link
Owner

ximion commented Nov 10, 2016

Short version: We discussed that in-depth about a year ago, and a suggests/enhances/recommends system will not happen.

Long version: We have addons to indicate extensions to enhance a certain software component. If a software requires certain stuff to be present, or recommends it to be there, it should depend on it, bundle it, or let the package manager handle the details. AppStream is no place for this packaging logic.

If an application finds out that it needs a specific addon to perform a task, it can request any AppStream-capable software center to prompt the user to install a missing module, or just use AppStream directly to install the piece.

The package manager should manage the complicated dependencies and allow the fine-grained verbose mode of handling dependencies, including very technical bits. AppStream is not set to replicate and duplicate the logic and metadata a package manager provides.

It could be that you want some kind of reverse-addon logic here, so something that allows an app to suggest other apps which go well with it (e.g. "if user has KDevelop, they might also want cmake").
This logic is already defined and available in AppStream, both for upstream projects to define (type="upstream") and machines to select (type="heuristic"). See https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-suggests and https://www.freedesktop.org/software/appstream/docs/chap-CollectionData.html#tag-ct-suggests

@ximion ximion closed this as completed Nov 10, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants