Re: [modularity] Modules and AppStream

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 24 August 2017 at 08:45, Marius Vollmer <marius.vollmer@xxxxxxxxxx> wrote:
> If appstream-builder finds two packages that both contain metainfo for
> the same component id, what does it do?

If I understand correctly, in appstream-builder it's an error, and the
"first encountered" component wins.

>  What should it do?  What should
> the Software Center do.  This isn't described in the AppStream spec
> beyond the "merge" and "pripority" attributes for the <components> tag.

You have to remember, the AppStream spec was initially designed as a
way to map application IDs to package names. AppStream metadata is
written by basically every distro and consumed by every software
center, and it's not Fedora specific, so you probably shouldn't be
super surprised it doesn't map into the Fedora modularity system very
well.

My personal feeling is that this whole modularity initiative is being
pushed hard into all layers of Fedora without actually working out how
this is going to work with the various upstream specifications and
projects. I'm sure it'll be great for Fedora in the short term, but
longer term it's going to hurt being a little island of
Fedora-specific schemas and tools.

> One approach is just to put them all into the collection data:

You can't have two components with the same ID inside a <components>
group with the same origin.

> This is what they do for Flatpaks if I understand Owen correctly.

No, flatpaks components have different <id> names for each different
branch. e.g. the org.mozilla.Firefox.Nightly.desktop thing I explained
in my last email.

> I had assumed that the spec doesn't allow this and I thought that
> changing it to allow it would be too drastic.  If this is established
> practice and we just need to update the spec to catch up with reality,
> great!

No, please can you re-read mine and Owens previous emails please.

> My proposed approach was to encode the exact same data via a spec
> extension:
>       <variants>
>         <variant>
>            <variantsummary>Recommended</variantsummary>
>         </variant>
>         <variant>
>            <variantsummary>Nightly builds</variantsummary>
>            <pkgname>foo-nightly</pkgname>
>         </variant>

I'm sorry, but that makes almost no sense.  What is the software
center supposed to do with variantsummary? Is the application name the
same between the two variants? Should reviews for the different
variants be treated as the same thing or as different things?

To me a module is a superset of a set of packages, much like a
<component> -- so it would make sense to have something like
<id>org.fedoraproject.modularity.http2-6</id> which contains the
translated name, the translated description, the SPDX license, and any
URL links too. Of course, this is mostly the same as the modulemd
metadata as specified
https://docs.pagure.org/modularity/development/building-modules/developing.html
so you can certainly create AppStream from that pretty easily. I don't
think it makes any sense at all making projects like GNOME Software,
Apper, Discover, Muon and Cockpit (and others) understand much about
the Fedora modularity stuff when everything seems to have standardized
on AppStream -- including next-generation distributions methods like
Flatpak.

> If a client understands "variants", it can trivially expand them back
> into multiple entries for the same id.  Clients that don't understand
> this will continue to just see one.

They're two different things. Would gnome-software and cockpit show
two search entries for the two variants or one? Would you be able to
switch between the variants? Can both be installed at the same time,
by two different users on the same system? If the modules are flatpaks
then they're two different components with two different AppIDs, that
can both be installed at the same time. I'm having a very hard time
working out how we'd communicate difficult to understand concepts to
the end user using packages, even wrapped up with modulemd metadata.

> Maybe I should emphasize that I am only trying to figure out what
> happens if we subject a modularized repository to the usual AppStream
> treatment.

Can you provide some specifications on what a modularized repository
should actually look like please? Is a repo going to contain .rpm
packages like firefox-1.23.rpm and also firefox-2.34.rpm or something
completely different? If both packages contain a metainfo/appdata file
with the same component <id> it's just not going to work very well
using appstream-builder.

> I think we would create broken AppStream collection data right now, or
> at least AppStream data that doesn't let us take advantage of the new
> features that modularity enables (streams and profiles).

Has anyone talked to the Fedora or GNOME designers about this? I'm
trying hard not to get frustrated about questions about XML schema
when I don't think anybody has considered the user experience of
modularity. From a desktop point of view I'm currently of the opinion
that it only makes sense to show modules that are flatpaks, and
continue to use the appstream branch of the flatpak repository to get
information about the modules.

> I am happy to just say that modularized repositories don't have
> AppStream data, period.

Why are you happy they don't have AppStream? I'm not sure trying to
antagonize the people involved is a very good idea at all.

Richard
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux