diff --git a/README.md b/README.md index 9f0ea447..2bf606bd 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ sudo yunohost app fetchlist -n community -u https://yunohost.org/community.json * Fork and edit the [community list](https://github.com/YunoHost/apps/tree/master/community.json) * Add your app's ID and git information at the right alphabetical place * Indicate the app's functioning state: `notworking`, `inprogress`, or `working` +* Do not add the level yourself. The CI will do it. * Send a [Pull Request](https://github.com/YunoHost/apps/pulls/) App example addition: @@ -69,5 +70,30 @@ Usage: ./add_or_update.py [community.json OR official.json] [github/gitlab url OR app name [github/gitlab url OR app name [github/gitlab url OR app name ...]]] ``` +### How to make my app a Featured app + +A featured app will be highlighted in the community list as a high quality app. +To become a Featured app, a package have to follow the following rules: + +* The app should already be in the community list for 2 months. +* The app should be keep up to date, regarding the upstream source. (If it’s possible with our current YunoHost version) +* The package itself should be up to date regarding the packaging recommendations and helpers. +* The package should be level 7, at least. +* The repository should have testing and master branches, at least. The list should point to HEAD, so the list stays up to date. +* Any modification should be done to the testing branch, and wait at least for one approval for one member of the Apps group. So that we can ensure that there’s nothing in opposition to those criteria. Nor any changes that would harm servers. + +If the app is already tag as Featured and one of those criteria isn't respected anymore. After a warning, the tag will be removed until the criteria are again validated. + +To make an app a Featured app, technically, you have to add the tag ```"featured": true```. +```json + "wallabag": { + "branch": "master", + "featured": true, + "revision": "c2fc62438ac5c9503e3f4ebfdc425ec03a0ec0c0", + "url": "https://github.com/abeudin/wallabag_ynh.git", + "state": "working" + } +``` + #### More information See [yunohost.org/packaging_apps](https://yunohost.org/packaging_apps) diff --git a/list_builder.py b/list_builder.py index 2538718c..332ab954 100755 --- a/list_builder.py +++ b/list_builder.py @@ -145,6 +145,7 @@ for app, info in apps_list.items(): app_state = info["state"] app_level = info.get("level") app_maintained = info.get("maintained", True) + app_featured = info.get("featured", False) forge_site = app_url.split('/')[2] owner = app_url.split('/')[3] @@ -167,6 +168,7 @@ for app, info in apps_list.items(): previous_url = already_built_file.get(app, {}).get("git", {}).get("url") previous_level = already_built_file.get(app, {}).get("level") previous_maintained = already_built_file.get(app, {}).get("maintained") + previous_featured = already_built_file.get(app, {}).get("featured") if forge_type == "github" and app_rev == "HEAD": @@ -210,6 +212,9 @@ for app, info in apps_list.items(): if previous_maintained != app_maintained: result_dict[app]["maintained"] = app_maintained print("... but maintained status changed, updating it from '%s' to '%s'" % (previous_maintained, app_maintained)) + if previous_featured != app_featured: + result_dict[app]["featured"] = app_featured + print("... but featured status changed, updating it from '%s' to '%s'" % (previous_featured, app_featured)) print "update translations but don't download anything" result_dict[app]['manifest'] = include_translations_in_manifest(app, result_dict[app]['manifest']) @@ -318,7 +323,8 @@ for app, info in apps_list.items(): 'manifest': include_translations_in_manifest(manifest['id'], manifest), 'state': info['state'], 'level': info.get('level', '?'), - 'maintained': app_maintained + 'maintained': app_maintained, + 'featured': app_featured } except KeyError as e: print("-> Error: invalid app info or manifest, %s" % e)