flathub-infra / flatpak-builder-lint

A linter for flatpak-builder manifests
MIT License
50 stars 133 forks source link

Flathub strips out captions from appstream data #280

Closed bbhtt closed 8 months ago

bbhtt commented 8 months ago

For some reason Flathub, server side is stripping out captions from appstream catalogue data. The same is not reproducible when building locally using the exact same commands and org.flatpak.Builder

The caption check should be re-enabled once the catalogue data has captions, otherwise the check has no meaning

See also https://github.com/flathub-infra/website/issues/48

https://hub.flathub.org/repo/appstream/x86_64/appstream.xml.gz:

cat appstream.xml|grep "<caption>"

        <caption>Main window</caption>
        <caption>Main window</caption>
        <caption>The main user interface</caption>

shows only 3

bbhtt commented 8 months ago

I'm doing a PR to disable the check for now.

hadess commented 8 months ago

Ran into this building https://github.com/flathub/com.github.shonumi.gbe-plus/, which would complain about appstream-screenshot-missing-caption even though I just added captions.

Locally, it doesn't complain about it:

$ flatpak run --command=flatpak-builder-lint org.flatpak.Builder builddir _build/
{
    "errors": [
        "appid-uses-code-hosting-domain"
    ],
    "warnings": [
        "finish-args-redundant-device-all"
    ]
}

Please consult the documentation at https://docs.flathub.org/docs/for-app-authors/linter
bbhtt commented 8 months ago

Yea that's what confused me too. Clearly, something is going wrong on the server, but I don't have the power to debug that.

bbhtt commented 8 months ago

Solved by porting to libappstream, will re-enable the check once more apps get rebuilt and composes their metadata with libappstream

current state ``` cat appstream.xml|grep "" Screnshoot 1 Classic View RHDC View Image of Arduino IDE v2 Simple view Advanced view Recording page Talk on an invite only server Voice and Video Dark Mode Window Light Mode Window Available on Linux, macOS, Windows, iOS, Android, and your web browser Running the benchmark CLEAR AND SIMPLE UI PERFECT FOR ORIGINAL PRUSA BUILT-IN 3RD PARTY PRINTER PROFILES MSLA AND MULTI MATERIAL SUPPORT AUTO-UPDATING PROFILES FIRMWARE FLASHER G-CODE VIEWER Application showcase Print preparation screen Editing TypeScript and searching for extensions YACReader & YACReaderLibrary Properties The Library page The Library page with the category sidebar open The Preferences page (Library settings) The Explorer page in mobile format (Servers list) The Details page The Details page (chapters list) The Reader page The Reader page in mobile format The Category editor page in mobile format The Reading history page in mobile format Light Theme Dark Theme A simple tag search Media viewer The thread watcher works for 4chan and 8chan Gallery downloader Display and manage thousands of files Files can be sorted and collected by their tags Media viewer in fullscreen Many file formats are supported You can run your own (simple!) booru YesPlayMusic's Library Page Stimulator light screenshot Stimulator dark screenshot Stimulator light screenshot Stimulator dark screenshot Main window Main window with tabs Main Window Main Window Dark Preferences Adaptive Main Window RPCS3 running a game using the Vulkan backend JMeter screen Results aggregate graph Results response time graph The Gaphor main window Sequence diagram Customizable styling Dark mode Placing a call The call history Homepage Menu Actions Tabs View Desktop User Interface Managing archives with Ark Training in Artikulate Using Maxima backend of Cantor Playing Granatier Index file manager 2D plot in KAlgebra Periodic table of elements view in Kalzium Kdenlive Timeline Kdenlive Audio Adjustments Kdenlive Effects Main view of Kontrast Main view of Kontrast on mobile Solitaire selection screen The main screen in KPhotoAlbum The typical board position in KSquares The completed squares in KSquares An initial board in KSquares Editing code with KWrite Basic visualization of data Basic visualization of data Advanced layouting of plots and images Theming Visualization of mathematical functions Fit pre-defined or custom models to the data Smooth the data with the help of various smoothing methods Notebook interface for interactive sessions in Maxima, Octave, R, Sage, Scilab, Python, Julia, etc Signal analysis Herzsprung-Russel diagram in LabPlot Visualization of data calculated in an interactive Maxima session Earth globe in Marble Training with Minuet Reading manual in Okular Choosing a collection for training in Parley The Pix music player Working with graphs in Rocs Main screen The Legend of Zelda: Breath of the Wild running in fullscreen on Ryujinx Metroid Dread running in fullscreen on Ryujinx Pokémon Legends: Arceus in fullscreen on Ryujinx Testing SOAP API Testing REST API Settings window Test as HTML form The TeXworks source and preview windows Vinegar gameplay of Phantom Forces, an experience on Roblox The main Plex window showing Movies and TV Shows Live TV guide Playback Onboarding Dialog Wallet Overlay Store Page Library Page Main window Main window The main user interface ```