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
spec: New "cockpit-manifest" launchable type #127
Conversation
|
I am usually against vendor/product-specific stuff in AppStream, so, convince me!
I'll need to read the linked documentation on what a cockpit-package is (so far, I just quickly skimmed through it). |
|
I'm really not sure about the suffix |
That is a fair objection, of course. If you squint hard enough, you can see Cockpit as a type of desktop shell that launches applications within itself. Traditionally, all applications were coming from the Cockpit project itself, but we want to open this up. The equivalent of Cockpit to Here is an example: https://github.com/mvollmer/cockpit-app-freeipa/blob/master/manifest.json This example puts a new "FreeIPA" entry into the Cockpit navigation, and clicking on that entry will load If there would be competing versions of Cockpit-like desktops (like there are GNOME, KDE, ...), we would have to make this manifest mechanism Cockpit-independent, and it would be almost exactly like the desktop-file situation, except for 'browser based desktops'.
I am not sure I understand. We can't use any of the existing Maybe we can encode it like this: Thus, a component of type "addon" can contain launchables of type "addon" and what they mean is determined by the thing that is being extended.
It would be implementable by others, but I haven't tried to find any other 'browser-based desktops'.
Yes, this only makes sense with Cockpit. All components with a
"Users" == components that will include a I know of two, right now. :-) Hard to predict how many there will be. |
Yeah.
But it's a different thing to put them in the spec, no? Will things like
Yes. We will use |
I would have rejected a new component type, as I want to keep the amount of different component types as small as possible. Having addons extending a base is a far more powerful method. Otherwise, as soon as I allow one, I would need to allow new types for a lot of projects, which isn't manageable. That being said, your shell extensions should be addons to the @mvollmer Thank you for your detailed explanation! I actually think adding this does make sense here, and I also agree with hughsie that the "package" naming is a bit odd. I like your |
Yes, of course. I'll make that change. |
2e04b1a
to
3364b9b
Compare
|
@ximion, do you think we can go ahead and start using |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey, sorry for the lack of feedback - I was busy converting the codebase to the Meson buildsystem, and I found a stunning amount of bugs or weird behavior while doing so... (most of them are fixed now, a few PRs for Meson are pending).
Since I don't merge changes in the spec without having the implementation also ready quickly afterwards, I delayed this PR (the implementation here consists of a simple four-line patch though ^^)
I added a few minor nitpicks (an example would be nice, a hyperlink to the project page would be nice as well).
I'll probably merge this tomorrow.
docs/sources/metainfo/component.xml
Outdated
| <listitem> | ||
| <para> | ||
| The software can be launched from the menus of | ||
| the Cockpit admin interface. The value of the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you link "Cockpit" to the project page, so everyone can quickly look up which project this is about?
docs/sources/metainfo/component.xml
Outdated
| The manifest of the package is expected to | ||
| contain at least one entry for the Cockpit | ||
| shell menus. | ||
| </para> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you maybe add an example of how this looks like? (So it's quick to find out what the "name of a cockpit package" is to insert.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is already explained in the linked Cockpit documentation, no?
I think we can actually remove this paragraph completely and trust people to do the right thing. Cockpit currently expects a menu entry named "index", but that's just a implementation limitation that we should lift.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was quickly looking through the docs and it wasn't immediately clear to me what the "package name" is actually derived from. But it turns out the "Package Manifest" section is pretty clear about it.
Let's go without example then (if one goes crazy with examples, reading the docs will also become annoying, just like when there are too few examples).
|
Oh, and btw, to answer your question: I think it's safe to use this - but ideally wait until it's implemented in AppStream, so people have a chance to get a working validator from somewhere :-) |
3364b9b
to
6423bdc
Compare
Turns out, yes. appstream-builder throws away unknown type attributes. It leaves the |
|
I think it converts them to enums as part of the parsing process. Thanks for the patch tho :) |
|
Great :-) |
(This is not correct, I got confused by looking at appstream-builder debugging output. The whole |
This is used by the upcoming Cockpit "Software Center": cockpit-project/cockpit#7076