From 760f262d731684f2233ec8e0aa6dfef2ad41533a Mon Sep 17 00:00:00 2001 From: Brage Fuglseth Date: Sat, 17 Aug 2024 13:32:26 +0200 Subject: [PATCH 1/7] docs: Add review procedure --- assets/review-model.svg | 527 ++++++++++++++++++++++++++++++++++++++++ review_procedure.md | 117 +++++++++ 2 files changed, 644 insertions(+) create mode 100644 assets/review-model.svg create mode 100644 review_procedure.md diff --git a/assets/review-model.svg b/assets/review-model.svg new file mode 100644 index 0000000..2ac9418 --- /dev/null +++ b/assets/review-model.svg @@ -0,0 +1,527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Membership + + Exit + + Submission + + Review + + Control Review + + Group Notice + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/review_procedure.md b/review_procedure.md new file mode 100644 index 0000000..e3ddd6c --- /dev/null +++ b/review_procedure.md @@ -0,0 +1,117 @@ +![Review Model](assets/review_model.svg) + +# GNOME Circle Review Procedure + +This documents contains information about how the GNOME Circle Committee operates, and how the quality of any given GNOME Circle member project is ensured, both initially and long-term. It is primarily intended as a reference for GNOME Circle Committee members, referred to as "reviewers" in this context, but may be of use to anyone interested. + +## Choosing Projects to Review + +Reviewers are generally free to choose which projects to review themselves. Deciding factors can be time at hand, experience with the domain of the project, and perceived readiness for Circle. For instance, a reviewer who is currently busy with work outside of Circle may choose to review a project that looks like it is almost ready for inclusion upon submission, or is simple in scope and contains few elements to inspect. + +If possible, reviewers are advised to prioritize the projects and ongoing reviews that have gone the longest without seeing any interaction from the committee. + +Reviewers can not review projects that they maintain themselves. + +## Location + +The review primarily takes place in the thread tied to the membership application of the project on GNOME's GitLab instance. It is not required for all communication between the reviewer and applicant to happen here, but the thread should at a minimum provide an overview of everything that needs to be worked on for the project to be eligible for inclusion in Circle, including the full review checklist once it has been gone through by the reviewer. + +## Initial Interaction + +The reviewer should attempt to establish a positive and constructive tone from the start. Here are some suitable elements for the initial message: + +- A short and polite greeting (for example: "Hi, and thanks for your interest in GNOME Circle!") +- An indication of how much work is required for the project to be ready for inclusion (for example: "Just to set expectations for the review, the app will need some work before it's ready for inclusion.") +- A short list of quick and high-visibility improvements that can be made to the project's metadata, UI strings, and styling + +It is not required for the full review checklist to be gone through instantly. The point this is done at is at the discretion of the reviewer. + +## Testing an App + +The reviewer should use the latest development version of the app built from source when testing. If it is not possible to build the app, the applicant should be notified about it and subsequently fix it or provide the necessary guidance to perform a build. + +When first testing the app, the reviewer is advised to perform various actions to get a good overview of the following, if the app has them: + +- High-level UI issues +- Instability and crashes +- Small quirks that appear in given situations + +These should be put into words as concisely as possible and communicated to the applicant in a tidy manner. + +## Going Through the Criteria + +There are two checklists, one for apps, and one for components/libraries. The checklists contain the formal criteria for projects to be eligible for inclusion in Circle. The checklist for apps is located in the [App Organization][app-org] repository, while the checklist for components is located in the [Circle][circle] repository itself. + +In the app checklist, the reviewer should pay extra attention to these criteria: + +- Basic features and functionality work as expected +- Easy to get started on first run +- Follows the Human Interface Guidelines + +These are particularly wide in scope, and whether the app meets them is at the sole discretion of the reviewer. + +The reviewer should go through the checklist criterion-by-criterion, and check the boxes for the ones the project fulfills. After this, the list should be presented as-is to the applicant, accompanied by actionable steps that can be taken to meet the remaining criteria. + +To avoid cluttering the thread, this syntax can be used: + +```html +
+Press to view full checklist + +[insert checklist here] + +
+``` + +When the project meets all the criteria, it is ready for inclusion. If it still does not seem ready to the reviewer, they should go through the criteria again and see which ones the project may not quite meet. If the criteria turns out to not cover an aspect of the project that is deemed to be a blocker for inclusion, improvements to the criteria should be initiated as soon as possible. After this, the review of the app should continue as normal with the revised criteria. + +## Inclusion + +The canonical lists of Circle projects are the [apps.json][app-list] and [libs.json][lib-list] files in the GNOME Circle repository. To formally add an app, this needs to be appended to the app list: + +```json +{ + "app_id": "org.example.AppName", + "added": "YYYY-MM-DD", + "last_review": "YYYY-MM-DD" +} +``` + +To formally add a component, this needs to be appended to the library list: + +```json +{ + "name": "library-name", + "url": "https://example.org" +} +``` + +The indentation should be kept consistent, and commas should be applied correctly according to JSON syntax rules. The last element of the list should not be followed by a comma. + +The [gnome-apps.txt][gnome-software-list] file in the gnome-app-list project is used by GNOME Software to display featured apps. It contains all GNOME Circle apps, and should be kept in sync with the GNOME Circle app list. + +## Keeping up Post-Inclusion + +In accordance with the [Membership Guide][member-guide], Circle projects should continue to meet all the criteria after inclusion. + +Due to limited capacity, there are no regular reviews of the projects. Issues and deviations from the criteria are handled as they are noticed, usually by opening issues in the source code repositories of the projects, mentioning the GNOME Circle criterion being breached. The wider community is encouraged to assist the committee by being on the outlook for deviations, reporting them, and contacting the committee if deemed necessary. + +### Control Reviews + +If a project appears to deviate significantly from the standards of GNOME Circle, a control review can be initiated. This is a full re-review of the app, following the same procedure as a regular review. Control reviews have a deadline set on a case-by-case basis by the committee. If the app does not pass the review before the deadline passes, the app is excluded from Circle. It can still apply for inclusion again later, and will then be treated as any other app. + +### Group Notices + +A group notice goes out to a list of apps that all breach the same criterion. This can happen for reasons such as a GNOME runtime version reaching end-of-life, or a new criterion being added that needs conscious effort to be met. Like control reviews, group notices have a deadline set on a case-by-case basis by the committee. Apps that do not fulfill the relevant criterion before the deadline passes, are excluded from Circle. They can still apply for inclusion again later, and will then be treated as any other app. + +--- + +Any questions regarding this document should be directed to the [GNOME Circle chat room][circle-chat] on Matrix. Changes can be suggested by opening an issue against this repository or directly with a merge request. + +[circle]: https://gitlab.gnome.org/Teams/Circle +[app-org]: https://gitlab.gnome.org/Teams/Releng/AppOrganization +[app-list]: https://gitlab.gnome.org/Teams/Circle/-/blob/main/data/apps.json +[lib-list]: https://gitlab.gnome.org/Teams/Circle/-/blob/main/data/libs.json +[gnome-software-list]: https://gitlab.gnome.org/GNOME/gnome-app-list/-/blob/main/data/gnome-apps.txt +[member-guide]: https://gitlab.gnome.org/Teams/Circle/-/blob/main/membership_guide.md +[circle-chat]: https://matrix.to/#/#circle:gnome.org -- GitLab From 832bc5c918c508ff0baf87c6f1b9f0c11399c5b6 Mon Sep 17 00:00:00 2001 From: Brage Fuglseth Date: Sat, 17 Aug 2024 13:36:01 +0200 Subject: [PATCH 2/7] docs: Fix typo --- assets/{review-model.svg => review_model.svg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename assets/{review-model.svg => review_model.svg} (100%) diff --git a/assets/review-model.svg b/assets/review_model.svg similarity index 100% rename from assets/review-model.svg rename to assets/review_model.svg -- GitLab From dffb370ad7c41386a97fa214b67aabe50fee1876 Mon Sep 17 00:00:00 2001 From: Brage Fuglseth Date: Sat, 17 Aug 2024 13:43:53 +0200 Subject: [PATCH 3/7] docs: Mention cross-reviewing --- review_procedure.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/review_procedure.md b/review_procedure.md index e3ddd6c..cc845b2 100644 --- a/review_procedure.md +++ b/review_procedure.md @@ -63,7 +63,11 @@ To avoid cluttering the thread, this syntax can be used: ``` -When the project meets all the criteria, it is ready for inclusion. If it still does not seem ready to the reviewer, they should go through the criteria again and see which ones the project may not quite meet. If the criteria turns out to not cover an aspect of the project that is deemed to be a blocker for inclusion, improvements to the criteria should be initiated as soon as possible. After this, the review of the app should continue as normal with the revised criteria. +If the project still does not seem ready for inclusion to the reviewer even after having met all the criteria, the reviewer should go through the criteria again and see which ones the project may not quite meet. If the criteria turns out to not cover an aspect of the project that is deemed to be a blocker for inclusion, improvements to the criteria should be initiated as soon as possible. After this, the review of the app should continue as normal with the revised criteria. + +## Cross-Review + +When one reviewer has deemed a project ready for inclusion, another committee member assumes the role as cross-reviewer, and conducts an independent review of the project. This includes taking brief look at the project and going through the checklist. When the cross-reviewer has given their approval, the project is ready for inclusion. ## Inclusion -- GitLab From e695a65d76bbd5d23901df609c9f80f842e4988d Mon Sep 17 00:00:00 2001 From: Brage Fuglseth Date: Sat, 17 Aug 2024 11:45:34 +0000 Subject: [PATCH 4/7] docs: Typo --- review_procedure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/review_procedure.md b/review_procedure.md index cc845b2..1239d81 100644 --- a/review_procedure.md +++ b/review_procedure.md @@ -2,7 +2,7 @@ # GNOME Circle Review Procedure -This documents contains information about how the GNOME Circle Committee operates, and how the quality of any given GNOME Circle member project is ensured, both initially and long-term. It is primarily intended as a reference for GNOME Circle Committee members, referred to as "reviewers" in this context, but may be of use to anyone interested. +This document contains information about how the GNOME Circle Committee operates, and how the quality of any given GNOME Circle member project is ensured, both initially and long-term. It is primarily intended as a reference for GNOME Circle Committee members, referred to as "reviewers" in this context, but may be of use to anyone interested. ## Choosing Projects to Review -- GitLab From 2d148f108c51a43bbea70a2456cfa6ba7db6aaee Mon Sep 17 00:00:00 2001 From: Brage Fuglseth Date: Sat, 17 Aug 2024 22:42:07 +0000 Subject: [PATCH 5/7] docs: Update wording --- review_procedure.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/review_procedure.md b/review_procedure.md index 1239d81..b253893 100644 --- a/review_procedure.md +++ b/review_procedure.md @@ -98,11 +98,11 @@ The [gnome-apps.txt][gnome-software-list] file in the gnome-app-list project is In accordance with the [Membership Guide][member-guide], Circle projects should continue to meet all the criteria after inclusion. -Due to limited capacity, there are no regular reviews of the projects. Issues and deviations from the criteria are handled as they are noticed, usually by opening issues in the source code repositories of the projects, mentioning the GNOME Circle criterion being breached. The wider community is encouraged to assist the committee by being on the outlook for deviations, reporting them, and contacting the committee if deemed necessary. +Due to limited capacity, there are no reoccuring reviews of projects at set intervals. Instead, issues and deviations from the criteria are handled as they are noticed, usually by opening issues in the source code repositories of the projects, mentioning the GNOME Circle criterion being breached. The wider community is encouraged to assist the committee by being on the outlook for deviations, reporting them, and contacting the committee if deemed necessary. ### Control Reviews -If a project appears to deviate significantly from the standards of GNOME Circle, a control review can be initiated. This is a full re-review of the app, following the same procedure as a regular review. Control reviews have a deadline set on a case-by-case basis by the committee. If the app does not pass the review before the deadline passes, the app is excluded from Circle. It can still apply for inclusion again later, and will then be treated as any other app. +If a project appears to deviate significantly from the standards of GNOME Circle, a control review can be initiated. This is a full re-review of the app, following the same procedure as an initial review. Control reviews have a deadline set on a case-by-case basis by the committee. If the app does not pass the review before the deadline passes, the app is excluded from Circle. It can still apply for inclusion again later, and will then be treated as any other app. ### Group Notices -- GitLab From f8e89f6755065498cf285b609a53edceaa29cad1 Mon Sep 17 00:00:00 2001 From: Brage Fuglseth Date: Sun, 18 Aug 2024 01:13:29 +0000 Subject: [PATCH 6/7] docs: Typo --- review_procedure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/review_procedure.md b/review_procedure.md index b253893..6d583f6 100644 --- a/review_procedure.md +++ b/review_procedure.md @@ -63,7 +63,7 @@ To avoid cluttering the thread, this syntax can be used: ``` -If the project still does not seem ready for inclusion to the reviewer even after having met all the criteria, the reviewer should go through the criteria again and see which ones the project may not quite meet. If the criteria turns out to not cover an aspect of the project that is deemed to be a blocker for inclusion, improvements to the criteria should be initiated as soon as possible. After this, the review of the app should continue as normal with the revised criteria. +If the project still does not seem ready for inclusion to the reviewer even after having met all the criteria, the reviewer should go through the criteria again and see which ones the project may not quite meet. If the criteria turn out to not cover an aspect of the project that is deemed to be a blocker for inclusion, improvements to the criteria should be initiated as soon as possible. After this, the review of the app should continue as normal with the revised criteria. ## Cross-Review -- GitLab From 85ee4a56e4eec3de921dc24bdc40bfee2fc65bd9 Mon Sep 17 00:00:00 2001 From: Brage Fuglseth Date: Sun, 25 Aug 2024 19:47:17 +0200 Subject: [PATCH 7/7] docs: Switch to PNG for procedure graphic --- assets/review_model.png | Bin 0 -> 23469 bytes assets/review_model.svg | 263 +++++++--------------------------------- review_procedure.md | 2 +- 3 files changed, 44 insertions(+), 221 deletions(-) create mode 100644 assets/review_model.png diff --git a/assets/review_model.png b/assets/review_model.png new file mode 100644 index 0000000000000000000000000000000000000000..b25b08c43c96bd81be8dcdce87921bd573fb5df8 GIT binary patch literal 23469 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 @@ -125,212 +128,32 @@ id="layer1"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Membership Exit Submission Review + transform="matrix(0.74964366,0,0,0.74964366,-172.94342,-161.18989)" /> Control Review + transform="matrix(0.74964366,0,0,-0.74964366,-172.94342,561.18018)" /> Group Notice + transform="translate(-931.94532)"> + transform="matrix(0.74964366,0,0,0.74964366,-197.69553,-172.36871)"> + transform="matrix(0.74964366,0,0,0.74964366,115.35808,-162.03878)"> + transform="matrix(0.74964366,0,0,0.74964366,-175.15349,-168.74252)"> diff --git a/review_procedure.md b/review_procedure.md index 6d583f6..403d294 100644 --- a/review_procedure.md +++ b/review_procedure.md @@ -1,4 +1,4 @@ -![Review Model](assets/review_model.svg) +![Review Model](assets/review_model.png) # GNOME Circle Review Procedure -- GitLab