flathub-infra / flatpak-builder-lint

A linter for flatpak-builder manifests
MIT License
49 stars 123 forks source link

Only checks for `developer_name` which is now deprecated and replaced by `developer` (only since AppStream 1.0) #274

Closed travier closed 6 months ago

travier commented 7 months ago

Since AppStream 1.0 release (https://github.com/ximion/appstream/blob/edb25f166d43df9a489c26ef78548bb37b730981/NEWS#L76), the developer_name tag is now deprecated and replaced by developer.

The linter currently only checks for the developer_name tag: https://github.com/flathub-infra/flatpak-builder-lint/blob/7105a9643543123ffa487aada296ac462b2dbd66/flatpak_builder_lint/appstream.py#L39

bbhtt commented 7 months ago

Please use developer_name like the docs say https://docs.flathub.org/docs/for-app-authors/appdata-guidelines/#name-summary-and-developer-name until libappstream migration happens which is tracked separately in https://github.com/flathub/flathub/issues/4882.

Can't allow just the developer and no developer_name tag until the migration happens because the website (and other parts of infra) will loose developer names/grouping based on that and break.

travier commented 7 months ago

Yes, we likely also want to support pre-appstream 1.0 systems for a while so there is no rush. I raised this issue so that we have a trace.

bbhtt commented 7 months ago

Solved by https://github.com/flathub-infra/flatpak-builder-lint/commit/7bcac8e2eba9f2d2e06bd9d752972036c3f0e6c9 I should work now if either tag is present.

But I'm switching the recommendation to the latest spec supported developer with the name child tag in docs. https://github.com/flathub-infra/documentation/pull/228

travier commented 7 months ago

I'm not sure we can do that yet. Have you verified that older appstream accept the new developer tag?

bbhtt commented 7 months ago

That's just the recommendation, you can use either one and it's going to be fine.

By older appstream do you mean appstream-glib or older versions of appstreamcli? If it's the former, it will not show an error on validation, it ignores the new tag.

bbhtt commented 6 months ago

Looks like "older" appstreamcli 0.16.1 (the version shipped in Fedora 39 right now for me), emits a harmless warning "unknown-tag-developer" on appstreamcli validate but the composed catalogue data removes the new developer tag (tested it on the current Slack package). So that's going to get caught by the linter unless you have developer_name too in the metainfo file. Maybe talk to @ximion about this.

Flathub uses appstreamcli 1.0.1 with a few unreleased patches. So everything should work fine there.

I guess if your upstream CI still has to use older appstream (be it as-glib or appstreamcli), continue using developer_name and everything should work on Flathub/linter.

So from the linter's or Flathub's perspective the issue in the title is solved.

ximion commented 6 months ago

Is there a chance older CI could update to AppStream 0.16.4, potentially? That would also resolve it without introducing any breaking changes.

bbhtt commented 6 months ago

Let's close this. I see it is being discussed and resolved on the KDE side https://invent.kde.org/packaging/flatpak-kde-applications/-/issues/5

The original issue in the title is solved anyways.