|
||
---|---|---|
.. | ||
gnome-pwa-list-foss.csv | ||
gnome-pwa-list-foss.xml | ||
gnome-pwa-list-proprietary.csv | ||
gnome-pwa-list-proprietary.xml | ||
meson.build | ||
pwa-metainfo-generator.py | ||
README.md |
GNOME PWA list
This repository is a place to maintain a list of Progressive Web Apps that are suitable for inclusion with GNOME Software. The goals of this initiative are:
- To facilitate the discovery of useful apps by pre-populating a list of web apps in GNOME Software
- To enable users to take advantage of the powerful features of PWAs, such as offline functionality and desktop integration
- To make the GNOME platform competitive with other platforms which already make PWAs first-class citizens
There is more context available in the discussion on this issue.
Criteria for inclusion
To be eligible for inclusion, PWAs must:
- either be released under an open source license (see below) or appear in the popular apps category here or here
- be served over HTTPS
- include a web app manifest with an
icon, name, and a
display
value offullscreen
,standalone
, orminimal-ui
. The app having an Install button in Chrome means the app meets and exceeds these criteria. - be fully functional in GNOME Web
- not duplicate a native (non-Electron) app available for GNOME
Process for adding to the list
- Determine that the app meets all the criteria above.
- Gather the information for each of the columns listed below.
- If the license is FSF-approved or OSI-approved,
the app will go in
gnome-pwa-list-foss.csv
, otherwisegnome-pwa-list-proprietary.csv
. - Add a new line in the format "URL,license,categories,content-rating,adaptive,custom-summary" to either CSV file as appropriate.
- Re-build the AppStream xml; see below.
- Open a merge request here.
Column | Example value | Accepted values |
---|---|---|
URL | https://app.diagrams.net/ | the starting URL of the app |
license | Apache-2.0 | the license(s) of the client side software in a format conforming to the AppStream spec |
categories | Graphics;Office | one or more main or additional categories as defined here |
content-rating | social-info=intense;social-audio=moderate | a set of key-value pairs which are OARS 1.1 attributes and values; see here. "social-info=none" is appropriate if the service does not even store IP addresses |
adaptive | adaptive | either "adaptive" or "not-adaptive" depending on whether mobile devices are supported |
custom-summary | "Telegram web app based on the open API" | a one-sentence summary to use instead of the one in the manifest, or an empty string |
Re-generating AppStream xml
The script pwa-metainfo-generator.py
can take the CSV files mentioned above
and generate AppStream metainfo for them, which enables software centers to
display them with rich metadata such as screenshots.
- Install the
requests
andbs4
python3 modules using pip3 or your package manager - To regenerate the FOSS xml:
python3 pwa-metainfo-generator.py gnome-pwa-list-foss.xml
- To regenerate the proprietary xml:
python3 pwa-metainfo-generator.py gnome-pwa-list-proprietary.xml
- You can check the validity using e.g.
appstreamcli validate gnome-pwa-list-foss.xml
. It will complain about missing descriptions but GNOME Software handles those gracefully.