1"use strict";(globalThis.webpackChunkflathub_docs_docusaurus=globalThis.webpackChunkflathub_docs_docusaurus||[]).push([[8921],{178(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"for-team-members/review","title":"Review","description":"Reviews happen via comments on GitHub PR\'s where we also have","source":"@site/docs/03-for-team-members/01-review.md","sourceDirName":"03-for-team-members","slug":"/for-team-members/review","permalink":"/docs/for-team-members/review","draft":false,"unlisted":false,"editUrl":"https://github.com/flathub/documentation/tree/main/docs/03-for-team-members/01-review.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{},"sidebar":"mainSidebar","previous":{"title":"For team members","permalink":"/docs/category/for-team-members"},"next":{"title":"Becoming a Flathub Team Member","permalink":"/docs/for-team-members/becoming-a-team-member"}}');var r=n(4848),a=n(8453);const i={},o="Review",l={},c=[{value:"General checklist",id:"general-checklist",level:2},{value:"Special app-id rules",id:"special-app-id-rules",level:2}];function h(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"review",children:"Review"})}),"\n",(0,r.jsxs)(t.p,{children:["Reviews happen via comments on GitHub PR's where we also have\n",(0,r.jsx)(t.a,{href:"https://github.com/flathub/flathub/labels",children:"labels"})," to make note the\nstatus of a PR which is useful when no actions have happened over a\nlong period."]}),"\n",(0,r.jsx)(t.h2,{id:"general-checklist",children:"General checklist"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:"Ensure the domain from the app ID is linked to the submission,\nmanually check by going to the website. Check if the domain will allow\nverification on website."}),"\n",(0,r.jsxs)(t.li,{children:["Ensure submissions meet all the ",(0,r.jsx)(t.a,{href:"/docs/for-app-authors/requirements",children:"App Requirements"})]}),"\n",(0,r.jsx)(t.li,{children:"Ensure the applications are functional and do/act what submitter\nclaims by using the test builds."}),"\n",(0,r.jsx)(t.li,{children:"Ensure it uses proper permissions, ask to submit linter exceptions\nif needed."}),"\n",(0,r.jsx)(t.li,{children:"Do a test build before merge."}),"\n",(0,r.jsxs)(t.li,{children:["In general, for the domain ",(0,r.jsx)(t.code,{children:"example.com"})," obtained from the rDNS ID,\nwe should verify that the submitter controls the domain or the website\nor in case of community repackages - that the domain is related to\nupstream and the website mentions the app or its authors etc."]}),"\n",(0,r.jsxs)(t.li,{children:["Verify that no user-visible elements of the submission - such as the\napp name or icon in the metainfo or desktop file, violate\ntrademarks. Refer to the ",(0,r.jsx)(t.a,{href:"/docs/for-app-authors/requirements#no-trademark-violations",children:"requirements"}),"."]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"special-app-id-rules",children:"Special app-id rules"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"org.gnome"})," ID is moderated, ",(0,r.jsx)(t.a,{href:"https://gitlab.gnome.org/Teams/Releng/AppOrganization/-/blob/main/data/registered-app-ids.yml",children:"this list"}),"\nprovides the current applications that are allowed to use it. The\nrestriction only applies to the toplevel namespace."]}),"\n",(0,r.jsxs)(t.li,{children:["Apps belonging to a group ",(0,r.jsx)(t.a,{href:"https://invent.kde.org/explore/groups?page=1",children:"here"}),"\nare allowed to use ",(0,r.jsx)(t.code,{children:"org.kde"})," IDs. flathub/kde team should be cc-ed\nfor ",(0,r.jsx)(t.code,{children:"org.kde."})," submissions."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"Once the PR ready to be merged you can use the merge command to merge\nthe submission. The syntax is"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"/merge:<optional target repo default branch, default:master> head=<pr head commit sha, 40 chars> <additional colloborators @foo @baz, default: PR author>\n\n# Examples\n\n/merge head=SHA -> creates 'master'\n/merge:beta head=SHA -> creates 'beta'\n/merge:24.08 head=SHA -> creates 'branch/24.08'\n/merge:24.08 head=SHA @foo @baz -> creates 'branch/24.08', adds PR author, GitHub user 'foo' and 'baz' to colloborators\n"})})]})}function d(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},8453(e,t,n){n.d(t,{R:()=>i,x:()=>o});var s=n(6540);const r={},a=s.createContext(r);function i(e){const t=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.