mirror of
https://github.com/YunoHost/apps.git
synced 2024-09-03 20:06:07 +02:00
Merge pull request #677 from YunoHost/featured_apps
Add support for featured and high quality apps
This commit is contained in:
commit
e9f9c92c93
5 changed files with 130 additions and 5 deletions
66
README.md
66
README.md
|
@ -28,6 +28,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:
|
||||
|
@ -57,5 +58,70 @@ 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 High Quality app ?
|
||||
|
||||
A High Quality app will be highlighted in the app list and marked as a level 8 app.
|
||||
To become a High Quality app, a package has to follow the following rules:
|
||||
|
||||
* The app should already have been in the community list for 2 months.
|
||||
* The app should be kept 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 for at least 1 month.
|
||||
* 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 of 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.
|
||||
* The package should comply with the [requirements of the level 8](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels.md#level-8).
|
||||
|
||||
You can find the validation form used by Apps group [here](https://github.com/YunoHost/apps/blob/master/hq_validation_template.md).
|
||||
|
||||
If the app is already tagged as High Quality and one of those criteria isn't respected anymore: after a warning, the tag will be removed until the criterion is again validated.
|
||||
|
||||
To make an app a High Quality app, technically, you have to add the tag ```"high_quality": true```.
|
||||
```json
|
||||
"wallabag": {
|
||||
"branch": "master",
|
||||
"high_quality": true,
|
||||
"revision": HEAD,
|
||||
"url": "https://github.com/abeudin/wallabag_ynh.git",
|
||||
"state": "working"
|
||||
}
|
||||
```
|
||||
|
||||
### How to make my app a Featured app ?
|
||||
|
||||
A Featured app is highlighted in the app list and shown before any others.
|
||||
To become a Featured app, a package has to follow the following rules:
|
||||
|
||||
* The app should already be a High Quality app.
|
||||
* The upstream app should be accessible and well made.
|
||||
* The app should be interesting and demanded by the community.
|
||||
* The app should fit the spirit of YunoHost.
|
||||
|
||||
**Please note that the exact process to decide which apps are going to be Featured, and for how many time, isn't yet defined...**
|
||||
|
||||
To make an app a Featured app, technically, you have to add the tag ```"featured": true```.
|
||||
```json
|
||||
"wallabag": {
|
||||
"branch": "master",
|
||||
"high_quality": true,
|
||||
"featured": true,
|
||||
"revision": HEAD,
|
||||
"url": "https://github.com/abeudin/wallabag_ynh.git",
|
||||
"state": "working"
|
||||
}
|
||||
```
|
||||
|
||||
### What to do if I can't maintain my app anymore ?
|
||||
|
||||
If you don't have time anymore to maintain an app, you can update its status to inform users and packagers that you will not maintain it anymore.
|
||||
In order to do so, use the tag `"maintained":`.
|
||||
This tag can have 5 different values:
|
||||
- `"maintained": true` That's the default value if the tag isn't present for your app. That simply means that this app is maintained.
|
||||
- `"maintained": "request_help"` Use that value to inform other packagers that you need help to maintain this app. You'll then be more than one maintainer for this apps.
|
||||
- `"maintained": "request_adoption"` Use that value to inform other packagers, as well as users, that you're going to give up that app. So that you would like another maintainer to take care of it.
|
||||
- `"maintained": false` or `"maintained": "orphaned"` This value means that this app is no longer maintained... That means also that a packager can declare himself/herself as its new maintainer.
|
||||
Please contact the Apps group if you want to take care of an unmaintained app.
|
||||
|
||||
If you want to modify the status of one of your apps, for any reason, please consider informing the community via the forum. Users would probably be glad to be informed that an app they use will become unmaintained.
|
||||
|
||||
#### More information
|
||||
See [yunohost.org/packaging_apps](https://yunohost.org/packaging_apps)
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
"applevel_1": "Installable",
|
||||
"applevel_2": "Installable in all situations",
|
||||
"applevel_3": "Can be updated",
|
||||
"applevel_4": "Single Sign On support",
|
||||
"applevel_4": "Backup and restore support",
|
||||
"applevel_5": "Clean",
|
||||
"applevel_6": "Backup and restore support",
|
||||
"applevel_6": "Open to contributions from the community",
|
||||
"applevel_7": "Successfully pass functional tests",
|
||||
"applevel_8": "Respect main guidelines",
|
||||
"applevel_9": "Respect all guidelines",
|
||||
"applevel_8": "High quality app",
|
||||
"applevel_9": "Respect higher guidelines",
|
||||
"applevel_10": "Package assessed as perfect"
|
||||
}
|
||||
|
|
24
hq_validation_template.md
Normal file
24
hq_validation_template.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
# Validation template for High Quality tag request
|
||||
|
||||
This template is designed to be used as it is by Apps group to validate requests from packagers for the tag High Quality.
|
||||
|
||||
Mandatory check boxes:
|
||||
- [ ] The package is level 7.
|
||||
- [ ] The package has been level 7 for at least 1 month.
|
||||
- [ ] The package has been in the list for at least 2 months.
|
||||
- [ ] The package is up to date regarding the packaging recommendations and helpers.
|
||||
- [ ] The repository has a testing branch.
|
||||
- [ ] All commits are made in testing branch before being merged into master.
|
||||
- [ ] The list points to HEAD, not to a specific commit.
|
||||
- [ ] The repository has a [`pull_request_template.md`](https://github.com/YunoHost/apps/blob/master/pull_request_template-HQ-apps.md)
|
||||
- [ ] The package shows the YunoHost tile `yunohost_panel.conf.inc`
|
||||
|
||||
Optional check boxes:
|
||||
- [ ] The package is level 7 for ARM as well.
|
||||
*If the app is really important for the community, we can accept it with a broken ARM support. But this should be clearly explained and managed.*
|
||||
- [ ] The app is up to date with the upstream version.
|
||||
*If this is possible with the last YunoHost version.*
|
||||
- [ ] The package supports LDAP
|
||||
*If the app upstream supports it*
|
||||
- [ ] The package supports HTTP authentication
|
||||
*If the app upstream supports it*
|
|
@ -145,6 +145,8 @@ 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)
|
||||
app_high_quality = info.get("high_quality", False)
|
||||
|
||||
forge_site = app_url.split('/')[2]
|
||||
owner = app_url.split('/')[3]
|
||||
|
@ -167,6 +169,8 @@ 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")
|
||||
previous_high_quality = already_built_file.get(app, {}).get("high_quality")
|
||||
|
||||
if forge_type == "github" and app_rev == "HEAD":
|
||||
|
||||
|
@ -210,6 +214,12 @@ 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))
|
||||
if previous_high_quality != app_high_quality:
|
||||
result_dict[app]["high_quality"] = app_high_quality
|
||||
print("... but high_quality status changed, updating it from '%s' to '%s'" % (previous_high_quality, app_high_quality))
|
||||
|
||||
print "update translations but don't download anything"
|
||||
result_dict[app]['manifest'] = include_translations_in_manifest(app, result_dict[app]['manifest'])
|
||||
|
@ -318,7 +328,9 @@ 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,
|
||||
'high_quality': app_high_quality,
|
||||
'featured': app_featured
|
||||
}
|
||||
except KeyError as e:
|
||||
print("-> Error: invalid app info or manifest, %s" % e)
|
||||
|
|
23
pull_request_template-HQ-apps.md
Normal file
23
pull_request_template-HQ-apps.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
## Problem
|
||||
- *Description of why you made this PR*
|
||||
|
||||
## Solution
|
||||
- *And how do you fix that problem*
|
||||
|
||||
## PR Status
|
||||
- [ ] Code finished.
|
||||
- [ ] Tested with Package_check.
|
||||
- [ ] Fix or enhancement tested.
|
||||
- [ ] Upgrade from last version tested.
|
||||
- [ ] Can be reviewed and tested.
|
||||
|
||||
## Validation
|
||||
---
|
||||
- [ ] **Code review**
|
||||
- [ ] **Approval (LGTM)**
|
||||
*Code review and approval have to be from a member of @YunoHost/apps group*
|
||||
- **CI succeeded** :
|
||||
[](https://ci-apps-hq.yunohost.org/jenkins/job/APP_ynh%20-BRANCH-/)
|
||||
*Please replace '-BRANCH-' in this link by the name of the branch used.*
|
||||
*If the PR is from a forked repository. Please provide public results from package_check.*
|
||||
When the PR is marked as ready to merge, you have to wait for 3 days before really merging it.
|
Loading…
Add table
Reference in a new issue