I also don't understand this practice of separating documentation from code. When changes in the code have to be reflected in the documentation, what's the point of splitting it into separate commits? If, for example, I do a `git revert`, it may happen that the documentation and code are out of sync! The same applies to separate commits for arch and board, but in this case it's even worse, because we'll have commits that can't even be compiled. Now we'll have to pay extra attention to the changes that spread across multiple commits.
`git revert` and `git bisec` will be even more difficult, which is already problematic because we have to sync nuttx and nuttx-apps. I don't know who this rule is supposed to help, because it certainly isn't good for users and devs. pt., 7 mar 2025 o 10:27 Alin Jerpelea <jerpe...@gmail.com> napisał(a): > Hi Alan, > > development best practices ask for commits to be split in areas they touch > > Related to that PR: Documentation in not software and does not belong to > code changes in arch > > I think that this rule should be enforced even if we don't do LTS releases > for now but we will do them in the future. > > Best regards > > Alin > > On Fri, 7 Mar 2025, 09:58 Alan C. Assis, <acas...@gmail.com> wrote: > > > Hi Tomek, > > > > My vote -1 was because the breaking text was saying that the author of > > commit needs to test it and many (all?) arch and boards supported by > NuttX. > > > > This transfers the responsibility of NuttX QA from the project > organization > > to the end developer, that is unfair. We as project responsible need to > > improve or CI and hw testing to detect possible commits that could break > > the system. > > > > About the PRs, one I missed the change request and the other the author > had > > fixed all important questions, the only remaining has separating the > > Documentation into a new PR, but this rules doesn't need to apply because > > we are not going to LTS now. > > > > BR, > > > > Alan > > > > On Thu, Mar 6, 2025 at 4:13 PM Tomek CEDRO <to...@cedro.info> wrote: > > > > > Alan, I think that some honest discussion may be necessary regarding > > > rules propositions that are blocked only with your -1 vote and quite > > > against the discussion on breaking changes, thus allowing breaking > > > code to be freely merged with the upstream, with no breaking changes > > > handling process, and by single company / group of interests. We also > > > noticed you have recently merged two PRs with pending "change > > > requested" discussions, what seems even against the old and general > > > merge rules. The whole breaking changes discussion was to avoid this > > > kind of situations. > > > > > > My question is do you still block rules 10 (breaking changes not > > > welcome), 12 (breaking rules handling process), 16 (single company > > > commit/review/merge)? If so what are your propositions in this area? > > > How do you see these points exactly full text? > > > > > > We really need to fix these areas as people are loosing trust to NuttX > > > and I understand that. > > > > > > Thanks :-) > > > Tomek > > > > > > > > > ### 10. Breaking changes not welcome. > > > > > > Breaking changes are not welcome. We do not "break by design". When > > > unavoidable breaking changes need prior discussion and agreement of > > > the community (see Breaking Changes handling rule). This is anything > > > that alters Build / Kernel / Architecture / API, alters both nuttx and > > > nuttx-apps repo at the same time, breaks build/runtime/api for single > > > or many boards/architectures/applications, breaks self-compatibility, > > > breaks build/runtime compatibility with existing release code > > > (packages) both for nuttx and nuttx-apps, etc. Because thousands of > > > users / companies and their projects / products depend on NuttX code, > > > we strongly prefer self-compatibility and long-term maintenance over > > > "change is good" ideologies. Any code change may impact other users > > > and their business, please keep that in mind. > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > In the internet form you gave -1 and 0 answers, with priority to > > > answer -1, thus the only blocking vote for breaking changes. > > > > > > Remarks: > > > Alan: -1, Breaking are necessary sometimes, saying "Breaking changes > > > are not welcome" will make people afraid of contributing innovation > > > that breaks existing APIs. > > > > > > > > > ### 12. Breaking changes handling process. > > > > > > This rule complements "Breaking changes not welcome" rules. We avoid > > > breaking changes unless absolutely necessary and unavoidable (i.e. > > > security fix, broken code, etc), then special case considerations may > > > apply: > > > 1. First reviewer that recognizes a breaking change should block > > > accidental merge with "Request Changes" mark and ask for discussion. > > > 2. PR is marked as "Draft" to avoid accidental merge. > > > 3. Detailed discussion should follow both in PR AND dev@ Mailing List. > > > 4. Alternative non-breaking alternative solution is researched with > > > help of the community. > > > 5. Breaking change after discussion / updates is voted on the mailing > > > list, requires at least 4 +1 binding votes and single -1 binding vote > > > blocks the change (binding vote means PMC member). > > > 6. Breaking changes **must** be verified on various different real > > > world hardware architectures, build and runtime logs are > > > **mandatory**, help of the community is desired. > > > 7. Breaking change requires at least 4 independent organizations > > > positive PR reviews. > > > 8. Change must be well documented (buid/runtime test logs, pr, git > > > commit, documentation, release notes, etc). > > > 9. Change must be clearly marked with [BREAKING] mark (pr, git commit, > > > release notes, etc). > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > Here too -1 and 0 was given, the only -1. > > > > > > Remarks: > > > Alan: -1, Mostly a repetition of 10 mixed with 9 and 11 > > > > > > > > > ### 16. Self company commit/review/merge not allowed > > > > > > Single company commit, review, merge is not allowed. Each PMC Member, > > > Committer, and Reviewer must report up-to-date Affiliation for clear > > > identification. > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > Also -1 and 0 answers given here with priority to -1, thus the only -1 > > > vote. > > > > > > Remarks: > > > Alan: -1, People in big companies could work in different areas or be > > > physically distant of the author of PR, and sometimes someone in the > > > company knows more about that subject than some "independent" > > > reviewer. > > > > > > > > > > > > > > > > > > On Sat, Mar 1, 2025 at 11:11 AM Alan C. Assis <acas...@gmail.com> > wrote: > > > > > > > > Hi Tomek, > > > > > > > > Nice work! Kudos! > > > > > > > > About Documentation I voted +1 to have Documentation, but later I > > > realized > > > > it was required to be in a separate PR, which I don't agree with. > > > > > > > > When I contributor submit a new feature that doesn't have > > Documentation I > > > > ask them to include it to avoid creating hidden feature (a nice > > > > functionality that nobody knows what is it used for and how to use > it, > > I > > > > have a nice example here: > > > > > > > > > > https://acassis.wordpress.com/2024/07/02/how-a-supposed-malfunction-revealed-another-hidden-feature-of-nuttx/ > > > > ). > > > > > > > > NuttX has many hidden features, this is something we need to fix, > more > > > and > > > > better documentation will help newcomers to use the system. > > > > > > > > Even basic features like USERLEDS are missing documentation, people > > spend > > > > days before they realize they need to include > > > > userled_lower_initialize("/dev/userleds") into bringup. There is no > > > > reference to it in our site: > > > > > > > > > > https://nuttx.apache.org/docs/latest/search.html?q=userled_lower_initialize&check_keywords=yes&area=default > > > > > > > > The only reference to LEDs is the WS2812: > > > > > > > > > > https://nuttx.apache.org/docs/latest/components/drivers/character/leds/index.html > > > > > > > > BR, > > > > > > > > Alan > > > > > > > > On Sat, Mar 1, 2025 at 4:00 AM Tomek CEDRO <to...@cedro.info> wrote: > > > > > > > > > My thoughts and comments that I did not want to put as part of the > > > > > results message: > > > > > > > > > > It seems like this voting revealed two mindsets - one wants quick > and > > > > > dirty experimental changes with low bar for acceptance that may be > > > > > streamed up from a single big organization that is probably paid > for > > > > > the amount of changes or can simply allow to buy that much focus, > as > > > > > opposed to more careful approach where self-compatibility and long > > > > > term maintenance are more important than quickly changing features > > > > > because of most probable personal and financial responsibility for > > > > > unexpected additional maintenance and maybe even damages (small > > > > > companies). This may look like Linux vs BSD, maybe more general > terms > > > > > progressive vs conservative. NuttX was initially BSD, that aligned > > > > > with my mindset, and most part of the community seems quite > > > > > conservative that is opposing enforced changes. > > > > > > > > > > If we want to follow other moving-target projects that try to catch > > > > > some sort of rabbit all the time, just to gather some new > community, > > > > > then we will loose existing community that was here all the time > just > > > > > to avoid that rabbit. In that case no tools will be helpful or even > > > > > necessary because these will always prove only "current things" as > > > > > bleeding edge is in the mindset and you cannot ever fix "break by > > > > > design". Those two worlds are exclusive. > > > > > > > > > > If we ever agree internally to a moving target approach, and have > no > > > > > commitment to self-compatibility and long term maintenance as the > > > > > ultimate goal, then NuttX will become just like any other project > > that > > > > > you will have to re-discover each time you use it after update, and > > > > > there will be completely no difference which one to choose. > > > > > > > > > > I did my best to clarify things. > > > > > > > > > > Have a good weekend folks :-) > > > > > Tomek > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Sat, Mar 1, 2025 at 7:23 AM Tomek CEDRO <to...@cedro.info> > wrote: > > > > > > > > > > > > Allright Ladies and Gentlemen, here goes the results :-) > > > > > > > > > > > > ACCEPTED: > > > > > > 1. Contributing Guidelines with hints for Reviewers. > > > > > > 2. PR and GIT COMMITS must adhere to Contributing Guidelines or > > > rejected. > > > > > > 3. Git commit messages as important as PR description. > > > > > > 4. Proper description details requirements. > > > > > > 5. PR must adhere to description requirements. > > > > > > 6. Git commit message must adhere to description requirements. > > > > > > 7. Git commit message mandatory fields (topic, desctiption, > > > signature). > > > > > > 9. Zero trust approach to user testing. > > > > > > 11. Respect long term maintenance and self-compatibility. > > > > > > 13. Breaking changes build and runtime test logs are mandatory. > > > > > > 14. Minimum code reviews. > > > > > > 17. Merge rules. > > > > > > 18. PR as small as possible. > > > > > > > > > > > > REJECTED: > > > > > > 8. Changes must come with documentation. > > > > > > 10. Breaking changes not welcome. > > > > > > 16. Self company commit/review/merge not allowed > > > > > > 19. Lazy Consensus. > > > > > > > > > > > > INCOMPLETE: > > > > > > 12. Breaking changes handling process. > > > > > > 15. Reviews independence. > > > > > > > > > > > > > > > > > > Please verify the answers, it took me ~3h of manual responses > > > processing > > > > > ;-) > > > > > > > > > > > > I will next prepare a PR draft with updated guidelines for final > > > > > > polishing and review. In addition to points Accepted I will also > > add > > > > > > points Rejected/Incomplete marked for discussion and hopefully we > > > will > > > > > > reach the agreement on independence, breaking changes, quality, > > > trust, > > > > > > compatibility, and maintenance. > > > > > > > > > > > > Thanks! :-) > > > > > > Tomek > > > > > > > > > > > > > > > > > > ### 1. Contributing Guidelines with hints for Reviewers. > > > > > > > > > > > > We are adding additional section for Reviewers to Contributing > > > > > > Guidelines in order to provide checklist and complementary set of > > > > > > rules that should filter out breaking code as much as possible > also > > > on > > > > > > our side. > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan / PMC > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: > > > > > > TimH: +1 to all - on the basis that if this doesn't work out > quite > > > > > > right it will be reviewed and changed. Best to try something like > > > this > > > > > > than not - it will become clear very soon if something isn't > > working > > > > > > as intended! > > > > > > > > > > > > > > > > > > > > > > > > ### 2. PR and GIT COMMITS must adhere to Contributing Guidelines > or > > > > > rejected. > > > > > > > > > > > > Each PR and GIT COMMIT **must** adhere to requirements presented > in > > > > > > Contributing Guidelines or will be auto-rejected until fixed / > > > > > > updated. Both code authors and reviewers/committers must follow > the > > > > > > rules. Special cases are defined in a separate dedicated rules. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: none. > > > > > > > > > > > > > > > > > > > > > > > > ### 3. Git commit messages as important as PR description. > > > > > > > > > > > > Git commit messages are as important as PR descriptions. These > > > provide > > > > > > in-code descriptions of each change and are git interface > > > independent. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: none. > > > > > > > > > > > > > > > > > > > > > > > > ### 4. Proper description details requirements. > > > > > > > > > > > > Proper description of change is mandatory. Description must > contain > > > > > > explanation on what proposed change do, why it is necessary, what > > if > > > > > > fixes, and how things are changed / fixed / updated, what is the > > > > > > impact (build / runtime / api / what area), how it was tested. > > Local > > > > > > code build and real world hardware runtime test logs must be > > provided > > > > > > (for code related changes). Description can be single..several > > > > > > sentences long or bullet points but enough for anyone to > understand > > > > > > change goals and details. Usually it will look similar for PR and > > git > > > > > > commit message. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Tomek: +1, However I understand this PR template is separate from > > the > > > > > > rule and will be updated / voted independently. > > > > > > > > > > > > TimK: +1, Better to have the 'Motivation/Background' section, > while > > > > > > simplifying the rest. In my view, commit messages should address > > the > > > > > > 'What', whereas PR documents should elaborate more on the 'Why'. > > > > > > > > > > > > > > > > > > > > > > > > ### 5. PR must adhere to description requirements. > > > > > > > > > > > > Proper description in PR according to template is mandatory, fill > > in > > > > > > all required fields or change is auto-rejected until fixed / > > > updated. > > > > > > For code changes build and runtime logs are mandatory to prove > code > > > > > > was tested on at least one real world hardware. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: This point was mostly missing in the answers but no 0 or > > -1 > > > > > > reported so assuming +1, as voted before, and the template > example > > is > > > > > > taken from existing Guidelines, will discuss the PR. > > > > > > > > > > > > > > > > > > PR TEMPLATE / EXAMPLE: > > > > > > > > > > > > Summary > > > > > > 1. Why change is necessary (fix, update, new feature)? > > > > > > 2. What functional part of the code is being changed? > > > > > > 3. How does the change exactly work (what will change and how)? > > > > > > 4. Related NuttX Issue reference if applicable. > > > > > > 5. Related NuttX Apps Issue / Pull Request reference if > applicable. > > > > > > 6. Related NuttX Documentation Pull Request reference if > > applicable. > > > > > > > > > > > > Impact > > > > > > 1. New feature added? Existing feature changed? > > > > > > 2. User (will user need to adapt to change)? NO / YES (please > > > describe > > > > > if yes). > > > > > > 3. Build (will build process change)? NO / YES (please descibe if > > > yes). > > > > > > 4. Hardware (will arch(s) / board(s) / driver(s) change)? NO / > YES > > > > > > (please describe if yes). > > > > > > 5. Documentation (is update required / provided)? NO / YES > (please > > > > > > describe if yes). > > > > > > 6. Security (any sort of implications)? NO / YES (please describe > > if > > > > > yes). > > > > > > 7. Compatibility (backward/forward/interoperability)? NO / YES > > > (please > > > > > > describe if yes). > > > > > > 8. Anything else to consider? > > > > > > > > > > > > Testing > > > > > > > > > > > > 1. I confirm that changes are verified on local setup and works > as > > > > > > intended NO / YES. > > > > > > 2. Build Host(s): OS (Linux,BSD,macOS,Windows,..), > > > CPU(Intel,AMD,ARM), > > > > > > compiler(GCC,CLANG,version), etc. > > > > > > Target(s): arch(sim,RISC-V,ARM,..), board:config, etc. > > > > > > 3. Testing logs before change: > > > > > > runtime / build logs before change goes here > > > > > > 4.Testing logs after change: > > > > > > runtime / build logs after change goes here > > > > > > 5. (optional) How to repeat. You can also provide steps on how to > > > > > > reproduce problem and verify the change if not obvious from test > > > logs. > > > > > > > > > > > > Optional PR remarks: > > > > > > 1. This PR introduces only one functional change. > > > > > > 2. I have updated all required description fields above. > > > > > > 3. My PR adheres to Contributing Guidelines and Documentation > (git > > > > > > commit message, coding standard, testing etc). > > > > > > 4. My PR is still work in progress (not ready for review). > > > > > > 5. My PR is ready for review and can be safely merged into a > > > codebase. > > > > > > > > > > > > > > > > > > > > > > > > ### 6. Git commit message must adhere to description > requirements. > > > > > > > > > > > > Proper GIT COMMIT message according to template is mandatory, or > > > > > > change is rejected until fixed / updates. Build and runtime logs > > are > > > > > > optional here if these are too long and already provided in PR. > > > > > > > > > > > > Git commit message consists of: > > > > > > 1. Topic with functional name prefix, ":" mark, and short > > > > > > self-explanatory context. > > > > > > 2. Blank line > > > > > > 3. Description on what is changed, how, and why. May use several > > > > > > lines, short sentences, or bullet points. > > > > > > 4. Blank line. > > > > > > 5. Signature (created with `git commit -s`). > > > > > > > > > > > > GIT COMMIT TEMPLATE / EXAMPLE: > > > > > > > > > > > > net/can: Add g_ prefix to can_dlc_to_len and len_to_can_dlc. > > > > > > > > > > > > Add g_ prefix to can_dlc_to_len and len_to_can_dlc to > > > > > > follow NuttX coding style conventions for global symbols, > > > > > > improving code readability and maintainability. > > > > > > * you can also use bullet points. > > > > > > * to note different thing briefly. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > TimK: +1, Regarding the commit message header, I recommend using > > the > > > > > > style adopted by the Angular Community, which is widely accepted. > > > > > > <type>(<scope>): <short summary> > > > > > > > > > > > > Filipe: +1, Let's make sure we have example for this on docs and > > also > > > > > > on PR bot). > > > > > > > > > > > > > > > > > > > > > > > > ### 7. Git commit message mandatory fields (topic, desctiption, > > > > > signature). > > > > > > > > > > > > Each git commit message must consist of topic, description, and > > > > > > signature (git commit -s), as presented in GIT COMMIT TEMPLATE, > > which > > > > > > are mandatory, or change is auto-rejected until fixed / updated. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: none. > > > > > > > > > > > > > > > > > > > > > > > > ### 8. Changes must come with documentation. > > > > > > > > > > > > Changes must come with with documentation update where > applicable. > > > For > > > > > > maintenance reasons code and documentation should be split into > two > > > > > > separate PR with the same name marked [1/2 CODE] for code and > [2/2 > > > > > > DOC] for documentation. If change presents new functionality a > > > > > > documentation must be provided along with the code (not in > future). > > > If > > > > > > change requires documentation update it must be contained along > > with > > > > > > the code (not in future). Successful documentation build log > > shortcut > > > > > > is welcome. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > 0: Tomek / PMC > > > > > > 0 Alin / PMC > > > > > > 0 Tiago / PMC > > > > > > -1 TimK > > > > > > 0 Lup / PMC > > > > > > -1 Filipe > > > > > > -1 Sebastien > > > > > > -1 Nathan / PMC > > > > > > 0 Dmitri > > > > > > -1 Matteo > > > > > > 0 Roberto > > > > > > +1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: REJECTED / +1: 2 (1 binding), 0: 6 (4 binding), -1: 5 (1 > > > > > binding). > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Tomek: 0, Having documentation in a single PR (same pr separate > > > commit > > > > > > is easier to perform and review, otherwise we may get out of > > code/doc > > > > > > sync? But if this is the only way and better for release manager > > then > > > > > > okay. > > > > > > > > > > > > Alin: 0, Having documentation in a single PR (same pr separate > > commit > > > > > > is easier to perform and review. The release process can use it. > > > > > > > > > > > > Tiago: 0, Yes, documentation should be provided, but I don't see > > any > > > > > > reason for splitting it into two different PRs. We keep our > > > > > > documentation in the same repository and - for the sake of > > > > > > traceability - it should be updated in the same PR (separate > > commit, > > > > > > not PR). We should make reviewers' and committers lives easier. > > > > > > Alternative writing would be: > > > > > > "Changes must come with a documentation update where applicable. > > For > > > > > > maintenance reasons, code and documentation should be split into > > two > > > > > > commits in the same PR. If change presents new functionality > > > > > > documentation must be provided along with the code (not in the > > > > > > future). If change requires a documentation update it must be > > > > > > contained along with the code (not in the future)." > > > > > > > > > > > > TimK: -1, I'd like say "should" instead of "must". > > > > > > > > > > > > Lup: 0, It depends? Smaller PRs can include a Doc Commit. When I > > add > > > a > > > > > > new Arch + Board (e.g. StarPro64), the PR will include a link to > my > > > > > > article that explains the new code. Then I prepare another PR for > > the > > > > > > User Docs. > > > > > > > > > > > > Filipe: -1, Don't see any problem in having documentation on same > > PR, > > > > > > in fact I think it makes things easier. > > > > > > > > > > > > Sebastien: -1, separate commits in same pr. > > > > > > > > > > > > Nathan: -1, : Similar to others' comments. Also, could be same PR > > but > > > > > > separate commits? > > > > > > > > > > > > Matteo: -1, : Documentation should be required, in the same PR as > > the > > > > > > change. No separate PRs. > > > > > > > > > > > > > > > > > > PROPOSED UPDATED TEXT: > > > > > > > > > > > > Changes must come with a documentation update where applicable. > For > > > > > > maintenance reasons, code and documentation should be split into > > two > > > > > > commits in the same PR. If change presents new functionality > > > > > > documentation must be provided along with the code (not in the > > > > > > future). If change requires a documentation update it must be > > > > > > contained along with the code (not in the future). Successful > > > > > > documentation build log shortcut is welcome. > > > > > > > > > > > > See: > > > > > > 1. https://github.com/apache/nuttx/tree/master/Documentation > > > > > > 2. https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > > > > > > > <--- Quick note from Tomek: TimK the word "must" is used on > purpose > > > to > > > > > > improve documentation that is usually skipped, and complemented > > > "where > > > > > > applicable" :-) > > > > > > > > > > > > > > > > > > > > > > > > ### 9. Zero trust approach to user testing. > > > > > > > > > > > > We implement zero trust approach to user provided testing. It is > > the > > > > > > commit author duty to provide real world hardware build and > runtime > > > > > > logs for at least one device. Remember that any code change may > > break > > > > > > things for others, please avoid that. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan / PMC > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > 0 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 12 (5 binding), 0: 1 (1 binding), -1: 0. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Alan: 0, We cannot transfer this responsibility to the developer, > > he > > > > > > should test it in the HW he has, but we need to have better HW > > > > > > coverage to avoid issues. > > > > > > > > > > > > > > > > > > > > > > > > ### 10. Breaking changes not welcome. > > > > > > > > > > > > Breaking changes are not welcome. We do not "break by design". > When > > > > > > unavoidable breaking changes need prior discussion and agreement > of > > > > > > the community (see Breaking Changes handling rule). This is > > anything > > > > > > that alters Build / Kernel / Architecture / API, alters both > nuttx > > > and > > > > > > nuttx-apps repo at the same time, breaks build/runtime/api for > > single > > > > > > or many boards/architectures/applications, breaks > > self-compatibility, > > > > > > breaks build/runtime compatibility with existing release code > > > > > > (packages) both for nuttx and nuttx-apps, etc. Because thousands > > of > > > > > > users / companies and their projects / products depend on NuttX > > code, > > > > > > we strongly prefer self-compatibility and long-term maintenance > > over > > > > > > "change is good" ideologies. Any code change may impact other > users > > > > > > and their business, please keep that in mind. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan / PMC > > > > > > +1 Dmitri > > > > > > 0 Matteo > > > > > > +1 Roberto > > > > > > -1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: REJECTED / +1: 11 (5 binding), 0: 1 , -1: 1 (1 binding). > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Alan: -1, Breaking are necessary sometimes, saying "Breaking > > changes > > > > > > are not welcome" will make people afraid of contributing > innovation > > > > > > that breaks existing APIs. > > > > > > > > > > > > <--- Quick note from Tomek: Alan please re-read that point, it > was > > > > > > updated not to scare people except people that want to break the > > code > > > > > > on purpose, a dedicated section is mentioned and created for > > breaking > > > > > > changes after last round. The whole point of this voting is to > > avoid > > > > > > breaking changes that impact self-compatibility and long term > > > > > > maintenance. It is again blocked without preferred text > > alternative. > > > > > > You gave -1 answer then 0 and asked to use the first form, > correct? > > > > > > > > > > > > > > > > > > > > > > > > ### 11. Respect long term maintenance and self-compatibility > > > > > > > > > > > > We respect long term maintenance and self-compatibility is our > > > > > > ultimate goal. Alternative solutions and non-invasive approaches > > are > > > > > > preferred that offers user a choice and compatibility. Breaking > > > > > > changes are avoided, and planned towards next major release, see > > > > > > Breaking Changes rule. > > > > > > Experimental code that does not impact overall project > > > > > > self-compatibility in terms of Breaking Changes should be clearly > > > > > > marked [EXPERIMENTAL]. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan / PMC > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > 0 Roberto > > > > > > 0 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 11 (5 binding), 0: 2 (1 binding), -1: 0. > > > > > > > > > > > > Remarks: none. > > > > > > > > > > > > > > > > > > > > > > > > ### 12. Breaking changes handling process. > > > > > > > > > > > > This rule complements "Breaking changes not welcome" rules. We > > avoid > > > > > > breaking changes unless absolutely necessary and unavoidable > (i.e. > > > > > > security fix, broken code, etc), then special case considerations > > may > > > > > > apply: > > > > > > 1. First reviewer that recognizes a breaking change should block > > > > > > accidental merge with "Request Changes" mark and ask for > > discussion. > > > > > > 2. PR is marked as "Draft" to avoid accidental merge. > > > > > > 3. Detailed discussion should follow both in PR AND dev@ Mailing > > > List. > > > > > > 4. Alternative non-breaking alternative solution is researched > with > > > > > > help of the community. > > > > > > 5. Breaking change after discussion / updates is voted on the > > mailing > > > > > > list, requires at least 4 +1 binding votes and single -1 binding > > vote > > > > > > blocks the change (binding vote means PMC member). > > > > > > 6. Breaking changes **must** be verified on various different > real > > > > > > world hardware architectures, build and runtime logs are > > > > > > **mandatory**, help of the community is desired. > > > > > > 7. Breaking change requires at least 4 independent organizations > > > > > > positive PR reviews. > > > > > > 8. Change must be well documented (buid/runtime test logs, pr, > git > > > > > > commit, documentation, release notes, etc). > > > > > > 9. Change must be clearly marked with [BREAKING] mark (pr, git > > > commit, > > > > > > release notes, etc). > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 Lup / PMC > > > > > > .. <- votes lost here > > > > > > 0 Roberto > > > > > > -1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: REJECTED / INCOMPLETE / +1: 5 (4 binding), 0: 1, -1: (1 > > > binding). > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Alan: -1, Mostly a repetition of 10 mixed with 9 and 11. > > > > > > > > > > > > <--- Quick note from Tomek: Alan, this procedure is dedicated for > > > > > > handling breaking changes. If rejecting please provide > alternative > > > > > > expected text. > > > > > > > > > > > > > > > > > > > > > > > > ### 13. Breaking changes build and runtime test logs are > mandatory. > > > > > > > > > > > > Breaking changes are special case where build and runtime test > logs > > > > > > (i.e. apps/ostest) from more than one different architecture is > > > > > > **mandatory** . QEmu tests does not count here as it passed > > breaking > > > > > > change that did not work on a real hardware. Community support is > > > > > > desired. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > 0 Roberto > > > > > > 0 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 11 (5 binding), 0: 2 (1 binding), -1: 0. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Sebastien: +1, Also some mandatory documentation on how to fix > the > > > > > > build after the breaking change. rust has cargo fix. Python has > > 2to3. > > > > > > > > > > > > Alan: 0, All the changes need to be equally coveraged, not only > > those > > > > > > that break some existing code > > > > > > > > > > > > > > > > > > > > > > > > ### 14. Minimum code reviews. > > > > > > > > > > > > Each PR requires at least 2 independent positive reviews, except > > > > > > Breaking Changes where at least 4 positive independent > > organizations > > > > > > reviews, are required before merge to the upstream. > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > -1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > 0 Nathan / PMC > > > > > > 0 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 10 (5 binding), 0: 2 (1 binding), -1: 1. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Tomek: +1, Although I think 3 should be default to increase > > > cross-checks. > > > > > > > > > > > > Alin: +1, minimum 3. > > > > > > > > > > > > Tiago: +1, I still prefer Nathan's proposal of creating "areas". > > > > > > Documentation and experimental features shouldn't require 2 > > > reviewers. > > > > > > For the sake of simplicity, this rule works. Even 2 reviewers for > > > > > > documentation and experimental features are too restrictive. > > > > > > > > > > > > TimK: -1, "at least 2 independent positive reviews", may be too > > high > > > bar > > > > > we set. > > > > > > > > > > > > Nathan: 0, Tiago summarized my proposal above. However, I am OK > > with > > > > > > whatever the community decides on this. > > > > > > > > > > > > Matteo: +1, Agree that pure documentation changes can have 1 > > > reviewer. > > > > > > > > > > > > <--- Quick note from Tomek: We currently require 2 independent > > > > > > reviewers right now for all changes, when breaking changes are > > > > > > reported or discovered then 4 reviewers are required. Its not a > big > > > > > > change but simple and should prevent breaking changes. Nathan's > > > > > > proposal is good and desired, we will for sure make it in another > > > > > > step. > > > > > > > > > > > > > > > > > > > > > > > > ### 15. Reviews independence. > > > > > > > > > > > > PR Reviews should come from independent organizations. Each PMC > > > > > > Member, Committer, and Reviewer must report up-to-date > Affiliation > > > for > > > > > > clear identification. When code comes from the same organization > as > > > > > > positive review, then at least one independent review is > necessary > > > > > > (except Breaking Changes). Self review is not allowed. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > -1 Sebastien > > > > > > ?? Nathan / PMC > > > > > > 0 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > 0 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: INCOMPLETE / +1: 9 (4 binding), 0: 2 (1 binding), -1: 1. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Sebastien: -1, No. Reviewers must not be from same organization > as > > > > > > coder. Otherwise there is no independence. > > > > > > > > > > > > Nathan: ??, Reviews from same organization are nice to have, but > > > > > > shouldn't count toward number of reviews needed. > > > > > > > > > > > > <--- Quick note from Tomek: This is why I preferred online > testing > > > > > > solution because there _must_ be a valid vote cast, also proposed > > > > > > alternative text was required ;-) This point goal was to solve > > single > > > > > > company pr/review/merge. Please provide alternative text that you > > > > > > expect! :-) > > > > > > > > > > > > > > > > > > > > > > > > ### 16. Self company commit/review/merge not allowed > > > > > > > > > > > > Single company commit, review, merge is not allowed. Each PMC > > Member, > > > > > > Committer, and Reviewer must report up-to-date Affiliation for > > clear > > > > > > identification. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > 0 Sebastien > > > > > > +1 Nathan / PMC > > > > > > 0 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > -1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: REJECTED / +1: 10 (5 binding), 0: 2, -1: 1 (1 binding). > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Alan: -1, People in big companies could work in different areas > or > > be > > > > > > physically distant of the author of PR, and sometimes someone in > > the > > > > > > company knows more about that subject than some "independent" > > > > > > reviewer. > > > > > > > > > > > > <--- Quick note from Tomek: This point 16 can be merged with 15. > > > Again > > > > > > the goal was to get independent reviews. Please provide full > > > > > > alternative text in comments. > > > > > > > > > > > > > > > > > > > > > > > > ### 17. Merge rules. > > > > > > > > > > > > Each change **must** be provided as PR that undergoes independent > > > > > > review process. Self committed code merge with or without review > is > > > > > > not allowed, just as direct push to master, and will be punished. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > 0 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 12 (5 binding), 0: 1 (1 binding), -1: 0. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > TimK: +1, However, I would prefer the maintainer to perform a > > 'squash > > > > > > merge' by default. In the case of a significant or breaking PR > > > change, > > > > > > we could consider a 'rebase merge'. On a second thought, why does > > > > > > GitHub provide the 'Squash' option? > > > > > > > > > > > > Nathan: +1, We should guard our master branches from direct > pushes. > > > > > > See > > > > > > > > > > > https://github.com/apache/infrastructure-asfyaml?tab=readme-ov-file#branchpro > > > > > > > > > > > > <--- Quick note from Tomek: Nathan totally true, and all > > discussions > > > > > > must be resolved before merge is possible, not sure why its not > > here, > > > > > > could you please take a look and fix on all repos please? > > > > > > > > > > > > > > > > > > > > > > > > ### 18. PR as small as possible. > > > > > > > > > > > > 1. Pull Requests should be as small as possible and focused on > only > > > > > > one functional change. > > > > > > 2. Different functional changes must be provided in separate Pull > > > > > Requests. > > > > > > 3. PR may contain several commits but every single commit > included > > > > > > must not break break overall build, runtime, and compatibility, > > > > > > especially for other components. > > > > > > 4. PR that breaks build or runtime anyhow is considered a > Breaking > > > > > > Change, is not welcome and requires special considerations (see > > > > > > Breaking Changes rule). > > > > > > 5. PR that introduces a new feature must have Documentation > > included > > > > > > in separate commit. > > > > > > 6. When changes for dedicated function must be bundled together > in > > > > > > order to maintain functionality and self-compatibility, exception > > can > > > > > > be made, and this must be clearly stated there is no other way > and > > > > > > this is not a Breaking Change. > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan / PMC > > > > > > +1 Dmitri > > > > > > -1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 12 (6 binding), 0:0, -1:1. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Filipe: +1, item 5 clashes with voting item 8 discussion. > > > > > > > > > > > > Sebastien: +1, I'm ok with a single PR that contains separate > > commits > > > > > > for code and doc. > > > > > > > > > > > > Matteo: -1, #5 PR with new features should not require docs in a > > > > > > separate commit. It's difficult to make changes based on review > and > > > > > > still keep the two commits (code and docs) separate when > squashing. > > > > > > One commit for both should be fine. > > > > > > > > > > > > <--- Quick note from Tomek: Filipe / Matteo I think you talk > about > > > two > > > > > > PR not commits? We will update documentation requirement to be > > along > > > > > > the code in a single PR but separate commits (like it is right > > now). > > > > > > > > > > > > > > > > > > > > > > > > ### 19. Lazy Consensus. > > > > > > > > > > > > A PR may be *eligible* to be merged under the concept of *Lazy > > > > > > consensus* with the following conditions: > > > > > > 1. It affects only a single chip or board (no > > kernel/libs/upper-half > > > > > > drivers etc). > > > > > > 2. It implements a new feature (or app) that doesn't introduce > any > > > > > > breaking changes or backward incompatibility. > > > > > > 3. It didn't get the minimum reviewers after two weeks. > > > > > > 4. At least one independent reviewer reviewed it. > > > > > > 5. It adheres to all other Contributing Guide requirements > > > conditions. > > > > > > > > > > > > The PR's author should: > > > > > > 1. After a week without any reviewers, send an e-mail to the > > mailing > > > > > > list asking for more people to review it. > > > > > > 2. Explain why the PR can't be split into smaller PRs (if > > > applicable). > > > > > > 3. After two weeks ask for the independent reviewer to merge if > > there > > > > > > are no other reviews. The independent reviewer is responsible for > > > > > > checking if the PR matches the *Lazy Consensus* conditions before > > > > > > merging it. > > > > > > > > > > > > -1 Tomek / PMC > > > > > > -1 Alin / PMC > > > > > > -1 Tiago / PMC > > > > > > 0 TimK > > > > > > 0 Lup / PMC > > > > > > 0 Filipe > > > > > > -1 Sebastien > > > > > > -1 Nathan / PMC > > > > > > 0 Dmitri > > > > > > -1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: REJECTED / +1: 3 (1 binding), 0: 4 (1 binding), -1: 6 (4 > > > > > binding). > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Tomek: -1, Considering we are leaving 2 reviewers as is > (increased > > to > > > > > > 4 for breaking changes), lazy consensus may undermine quality, I > > > think > > > > > > this point is not required anymore :-) > > > > > > > > > > > > Alin: -1, We risk critical bugs or harmful code to slip as lazy > > > > > > consensus. > > > > > > > > > > > > Tiago: -1, For the sake of simplicity, let's adopt rule 14 only > and > > > > > > re-evaluate in the future. > > > > > > > > > > > > Lup: 0, I don't think this is priority right now? We can tweak > the > > > > > > guideline later. > > > > > > > > > > > > Sebastien: -1, NERVER EVER let untrusted and unverified code in > > > > > > without a review even if the process is slowed down. If > developer > > > > > > WANTS his code merged the burden is on them to get other > reviewers > > > > > > involved so merge becomes possible. > > > > > > > > > > > > Nathan: -1, I think I suggested Lazy Consensus initially, but > after > > > > > > reading the discussions and comments about this, I think it is > > better > > > > > > to let PR authors to request reviews and keep their PR alive. > > > > > > > > > > > > Alan: +1, Why to increase from 1 week to 2 weeks? > > > > > > > > > > > > > > > > > > -- > > > > > > CeDeROM, SQ7MHZ, http://www.tomek.cedro.info > > > > > > > > > > > > > > > > > > > > -- > > > > > CeDeROM, SQ7MHZ, http://www.tomek.cedro.info > > > > > > > > > > On Sat, Mar 1, 2025 at 7:23 AM Tomek CEDRO <to...@cedro.info> > wrote: > > > > > > > > > > > > Allright Ladies and Gentlemen, here goes the results :-) > > > > > > > > > > > > ACCEPTED: > > > > > > 1. Contributing Guidelines with hints for Reviewers. > > > > > > 2. PR and GIT COMMITS must adhere to Contributing Guidelines or > > > rejected. > > > > > > 3. Git commit messages as important as PR description. > > > > > > 4. Proper description details requirements. > > > > > > 5. PR must adhere to description requirements. > > > > > > 6. Git commit message must adhere to description requirements. > > > > > > 7. Git commit message mandatory fields (topic, desctiption, > > > signature). > > > > > > 9. Zero trust approach to user testing. > > > > > > 11. Respect long term maintenance and self-compatibility. > > > > > > 13. Breaking changes build and runtime test logs are mandatory. > > > > > > 14. Minimum code reviews. > > > > > > 17. Merge rules. > > > > > > 18. PR as small as possible. > > > > > > > > > > > > REJECTED: > > > > > > 8. Changes must come with documentation. > > > > > > 10. Breaking changes not welcome. > > > > > > 16. Self company commit/review/merge not allowed > > > > > > 19. Lazy Consensus. > > > > > > > > > > > > INCOMPLETE: > > > > > > 12. Breaking changes handling process. > > > > > > 15. Reviews independence. > > > > > > > > > > > > > > > > > > Please verify the answers, it took me ~3h of manual responses > > > processing > > > > > ;-) > > > > > > > > > > > > I will next prepare a PR draft with updated guidelines for final > > > > > > polishing and review. In addition to points Accepted I will also > > add > > > > > > points Rejected/Incomplete marked for discussion and hopefully we > > > will > > > > > > reach the agreement on independence, breaking changes, quality, > > > trust, > > > > > > compatibility, and maintenance. > > > > > > > > > > > > Thanks! :-) > > > > > > Tomek > > > > > > > > > > > > > > > > > > ### 1. Contributing Guidelines with hints for Reviewers. > > > > > > > > > > > > We are adding additional section for Reviewers to Contributing > > > > > > Guidelines in order to provide checklist and complementary set of > > > > > > rules that should filter out breaking code as much as possible > also > > > on > > > > > > our side. > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan / PMC > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: > > > > > > TimH: +1 to all - on the basis that if this doesn't work out > quite > > > > > > right it will be reviewed and changed. Best to try something like > > > this > > > > > > than not - it will become clear very soon if something isn't > > working > > > > > > as intended! > > > > > > > > > > > > > > > > > > > > > > > > ### 2. PR and GIT COMMITS must adhere to Contributing Guidelines > or > > > > > rejected. > > > > > > > > > > > > Each PR and GIT COMMIT **must** adhere to requirements presented > in > > > > > > Contributing Guidelines or will be auto-rejected until fixed / > > > > > > updated. Both code authors and reviewers/committers must follow > the > > > > > > rules. Special cases are defined in a separate dedicated rules. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: none. > > > > > > > > > > > > > > > > > > > > > > > > ### 3. Git commit messages as important as PR description. > > > > > > > > > > > > Git commit messages are as important as PR descriptions. These > > > provide > > > > > > in-code descriptions of each change and are git interface > > > independent. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: none. > > > > > > > > > > > > > > > > > > > > > > > > ### 4. Proper description details requirements. > > > > > > > > > > > > Proper description of change is mandatory. Description must > contain > > > > > > explanation on what proposed change do, why it is necessary, what > > if > > > > > > fixes, and how things are changed / fixed / updated, what is the > > > > > > impact (build / runtime / api / what area), how it was tested. > > Local > > > > > > code build and real world hardware runtime test logs must be > > provided > > > > > > (for code related changes). Description can be single..several > > > > > > sentences long or bullet points but enough for anyone to > understand > > > > > > change goals and details. Usually it will look similar for PR and > > git > > > > > > commit message. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Tomek: +1, However I understand this PR template is separate from > > the > > > > > > rule and will be updated / voted independently. > > > > > > > > > > > > TimK: +1, Better to have the 'Motivation/Background' section, > while > > > > > > simplifying the rest. In my view, commit messages should address > > the > > > > > > 'What', whereas PR documents should elaborate more on the 'Why'. > > > > > > > > > > > > > > > > > > > > > > > > ### 5. PR must adhere to description requirements. > > > > > > > > > > > > Proper description in PR according to template is mandatory, fill > > in > > > > > > all required fields or change is auto-rejected until fixed / > > > updated. > > > > > > For code changes build and runtime logs are mandatory to prove > code > > > > > > was tested on at least one real world hardware. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: This point was mostly missing in the answers but no 0 or > > -1 > > > > > > reported so assuming +1, as voted before, and the template > example > > is > > > > > > taken from existing Guidelines, will discuss the PR. > > > > > > > > > > > > > > > > > > PR TEMPLATE / EXAMPLE: > > > > > > > > > > > > Summary > > > > > > 1. Why change is necessary (fix, update, new feature)? > > > > > > 2. What functional part of the code is being changed? > > > > > > 3. How does the change exactly work (what will change and how)? > > > > > > 4. Related NuttX Issue reference if applicable. > > > > > > 5. Related NuttX Apps Issue / Pull Request reference if > applicable. > > > > > > 6. Related NuttX Documentation Pull Request reference if > > applicable. > > > > > > > > > > > > Impact > > > > > > 1. New feature added? Existing feature changed? > > > > > > 2. User (will user need to adapt to change)? NO / YES (please > > > describe > > > > > if yes). > > > > > > 3. Build (will build process change)? NO / YES (please descibe if > > > yes). > > > > > > 4. Hardware (will arch(s) / board(s) / driver(s) change)? NO / > YES > > > > > > (please describe if yes). > > > > > > 5. Documentation (is update required / provided)? NO / YES > (please > > > > > > describe if yes). > > > > > > 6. Security (any sort of implications)? NO / YES (please describe > > if > > > > > yes). > > > > > > 7. Compatibility (backward/forward/interoperability)? NO / YES > > > (please > > > > > > describe if yes). > > > > > > 8. Anything else to consider? > > > > > > > > > > > > Testing > > > > > > > > > > > > 1. I confirm that changes are verified on local setup and works > as > > > > > > intended NO / YES. > > > > > > 2. Build Host(s): OS (Linux,BSD,macOS,Windows,..), > > > CPU(Intel,AMD,ARM), > > > > > > compiler(GCC,CLANG,version), etc. > > > > > > Target(s): arch(sim,RISC-V,ARM,..), board:config, etc. > > > > > > 3. Testing logs before change: > > > > > > runtime / build logs before change goes here > > > > > > 4.Testing logs after change: > > > > > > runtime / build logs after change goes here > > > > > > 5. (optional) How to repeat. You can also provide steps on how to > > > > > > reproduce problem and verify the change if not obvious from test > > > logs. > > > > > > > > > > > > Optional PR remarks: > > > > > > 1. This PR introduces only one functional change. > > > > > > 2. I have updated all required description fields above. > > > > > > 3. My PR adheres to Contributing Guidelines and Documentation > (git > > > > > > commit message, coding standard, testing etc). > > > > > > 4. My PR is still work in progress (not ready for review). > > > > > > 5. My PR is ready for review and can be safely merged into a > > > codebase. > > > > > > > > > > > > > > > > > > > > > > > > ### 6. Git commit message must adhere to description > requirements. > > > > > > > > > > > > Proper GIT COMMIT message according to template is mandatory, or > > > > > > change is rejected until fixed / updates. Build and runtime logs > > are > > > > > > optional here if these are too long and already provided in PR. > > > > > > > > > > > > Git commit message consists of: > > > > > > 1. Topic with functional name prefix, ":" mark, and short > > > > > > self-explanatory context. > > > > > > 2. Blank line > > > > > > 3. Description on what is changed, how, and why. May use several > > > > > > lines, short sentences, or bullet points. > > > > > > 4. Blank line. > > > > > > 5. Signature (created with `git commit -s`). > > > > > > > > > > > > GIT COMMIT TEMPLATE / EXAMPLE: > > > > > > > > > > > > net/can: Add g_ prefix to can_dlc_to_len and len_to_can_dlc. > > > > > > > > > > > > Add g_ prefix to can_dlc_to_len and len_to_can_dlc to > > > > > > follow NuttX coding style conventions for global symbols, > > > > > > improving code readability and maintainability. > > > > > > * you can also use bullet points. > > > > > > * to note different thing briefly. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > TimK: +1, Regarding the commit message header, I recommend using > > the > > > > > > style adopted by the Angular Community, which is widely accepted. > > > > > > <type>(<scope>): <short summary> > > > > > > > > > > > > Filipe: +1, Let's make sure we have example for this on docs and > > also > > > > > > on PR bot). > > > > > > > > > > > > > > > > > > > > > > > > ### 7. Git commit message mandatory fields (topic, desctiption, > > > > > signature). > > > > > > > > > > > > Each git commit message must consist of topic, description, and > > > > > > signature (git commit -s), as presented in GIT COMMIT TEMPLATE, > > which > > > > > > are mandatory, or change is auto-rejected until fixed / updated. > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 13 (6 binding), 0: 0, -1: 0. > > > > > > > > > > > > Remarks: none. > > > > > > > > > > > > > > > > > > > > > > > > ### 8. Changes must come with documentation. > > > > > > > > > > > > Changes must come with with documentation update where > applicable. > > > For > > > > > > maintenance reasons code and documentation should be split into > two > > > > > > separate PR with the same name marked [1/2 CODE] for code and > [2/2 > > > > > > DOC] for documentation. If change presents new functionality a > > > > > > documentation must be provided along with the code (not in > future). > > > If > > > > > > change requires documentation update it must be contained along > > with > > > > > > the code (not in future). Successful documentation build log > > shortcut > > > > > > is welcome. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > 0: Tomek / PMC > > > > > > 0 Alin / PMC > > > > > > 0 Tiago / PMC > > > > > > -1 TimK > > > > > > 0 Lup / PMC > > > > > > -1 Filipe > > > > > > -1 Sebastien > > > > > > -1 Nathan / PMC > > > > > > 0 Dmitri > > > > > > -1 Matteo > > > > > > 0 Roberto > > > > > > +1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: REJECTED / +1: 2 (1 binding), 0: 6 (4 binding), -1: 5 (1 > > > > > binding). > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Tomek: 0, Having documentation in a single PR (same pr separate > > > commit > > > > > > is easier to perform and review, otherwise we may get out of > > code/doc > > > > > > sync? But if this is the only way and better for release manager > > then > > > > > > okay. > > > > > > > > > > > > Alin: 0, Having documentation in a single PR (same pr separate > > commit > > > > > > is easier to perform and review. The release process can use it. > > > > > > > > > > > > Tiago: 0, Yes, documentation should be provided, but I don't see > > any > > > > > > reason for splitting it into two different PRs. We keep our > > > > > > documentation in the same repository and - for the sake of > > > > > > traceability - it should be updated in the same PR (separate > > commit, > > > > > > not PR). We should make reviewers' and committers lives easier. > > > > > > Alternative writing would be: > > > > > > "Changes must come with a documentation update where applicable. > > For > > > > > > maintenance reasons, code and documentation should be split into > > two > > > > > > commits in the same PR. If change presents new functionality > > > > > > documentation must be provided along with the code (not in the > > > > > > future). If change requires a documentation update it must be > > > > > > contained along with the code (not in the future)." > > > > > > > > > > > > TimK: -1, I'd like say "should" instead of "must". > > > > > > > > > > > > Lup: 0, It depends? Smaller PRs can include a Doc Commit. When I > > add > > > a > > > > > > new Arch + Board (e.g. StarPro64), the PR will include a link to > my > > > > > > article that explains the new code. Then I prepare another PR for > > the > > > > > > User Docs. > > > > > > > > > > > > Filipe: -1, Don't see any problem in having documentation on same > > PR, > > > > > > in fact I think it makes things easier. > > > > > > > > > > > > Sebastien: -1, separate commits in same pr. > > > > > > > > > > > > Nathan: -1, : Similar to others' comments. Also, could be same PR > > but > > > > > > separate commits? > > > > > > > > > > > > Matteo: -1, : Documentation should be required, in the same PR as > > the > > > > > > change. No separate PRs. > > > > > > > > > > > > > > > > > > PROPOSED UPDATED TEXT: > > > > > > > > > > > > Changes must come with a documentation update where applicable. > For > > > > > > maintenance reasons, code and documentation should be split into > > two > > > > > > commits in the same PR. If change presents new functionality > > > > > > documentation must be provided along with the code (not in the > > > > > > future). If change requires a documentation update it must be > > > > > > contained along with the code (not in the future). Successful > > > > > > documentation build log shortcut is welcome. > > > > > > > > > > > > See: > > > > > > 1. https://github.com/apache/nuttx/tree/master/Documentation > > > > > > 2. https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > > > > > > > <--- Quick note from Tomek: TimK the word "must" is used on > purpose > > > to > > > > > > improve documentation that is usually skipped, and complemented > > > "where > > > > > > applicable" :-) > > > > > > > > > > > > > > > > > > > > > > > > ### 9. Zero trust approach to user testing. > > > > > > > > > > > > We implement zero trust approach to user provided testing. It is > > the > > > > > > commit author duty to provide real world hardware build and > runtime > > > > > > logs for at least one device. Remember that any code change may > > break > > > > > > things for others, please avoid that. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan / PMC > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > 0 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 12 (5 binding), 0: 1 (1 binding), -1: 0. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Alan: 0, We cannot transfer this responsibility to the developer, > > he > > > > > > should test it in the HW he has, but we need to have better HW > > > > > > coverage to avoid issues. > > > > > > > > > > > > > > > > > > > > > > > > ### 10. Breaking changes not welcome. > > > > > > > > > > > > Breaking changes are not welcome. We do not "break by design". > When > > > > > > unavoidable breaking changes need prior discussion and agreement > of > > > > > > the community (see Breaking Changes handling rule). This is > > anything > > > > > > that alters Build / Kernel / Architecture / API, alters both > nuttx > > > and > > > > > > nuttx-apps repo at the same time, breaks build/runtime/api for > > single > > > > > > or many boards/architectures/applications, breaks > > self-compatibility, > > > > > > breaks build/runtime compatibility with existing release code > > > > > > (packages) both for nuttx and nuttx-apps, etc. Because thousands > > of > > > > > > users / companies and their projects / products depend on NuttX > > code, > > > > > > we strongly prefer self-compatibility and long-term maintenance > > over > > > > > > "change is good" ideologies. Any code change may impact other > users > > > > > > and their business, please keep that in mind. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan / PMC > > > > > > +1 Dmitri > > > > > > 0 Matteo > > > > > > +1 Roberto > > > > > > -1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: REJECTED / +1: 11 (5 binding), 0: 1 , -1: 1 (1 binding). > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Alan: -1, Breaking are necessary sometimes, saying "Breaking > > changes > > > > > > are not welcome" will make people afraid of contributing > innovation > > > > > > that breaks existing APIs. > > > > > > > > > > > > <--- Quick note from Tomek: Alan please re-read that point, it > was > > > > > > updated not to scare people except people that want to break the > > code > > > > > > on purpose, a dedicated section is mentioned and created for > > breaking > > > > > > changes after last round. The whole point of this voting is to > > avoid > > > > > > breaking changes that impact self-compatibility and long term > > > > > > maintenance. It is again blocked without preferred text > > alternative. > > > > > > You gave -1 answer then 0 and asked to use the first form, > correct? > > > > > > > > > > > > > > > > > > > > > > > > ### 11. Respect long term maintenance and self-compatibility > > > > > > > > > > > > We respect long term maintenance and self-compatibility is our > > > > > > ultimate goal. Alternative solutions and non-invasive approaches > > are > > > > > > preferred that offers user a choice and compatibility. Breaking > > > > > > changes are avoided, and planned towards next major release, see > > > > > > Breaking Changes rule. > > > > > > Experimental code that does not impact overall project > > > > > > self-compatibility in terms of Breaking Changes should be clearly > > > > > > marked [EXPERIMENTAL]. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan / PMC > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > 0 Roberto > > > > > > 0 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 11 (5 binding), 0: 2 (1 binding), -1: 0. > > > > > > > > > > > > Remarks: none. > > > > > > > > > > > > > > > > > > > > > > > > ### 12. Breaking changes handling process. > > > > > > > > > > > > This rule complements "Breaking changes not welcome" rules. We > > avoid > > > > > > breaking changes unless absolutely necessary and unavoidable > (i.e. > > > > > > security fix, broken code, etc), then special case considerations > > may > > > > > > apply: > > > > > > 1. First reviewer that recognizes a breaking change should block > > > > > > accidental merge with "Request Changes" mark and ask for > > discussion. > > > > > > 2. PR is marked as "Draft" to avoid accidental merge. > > > > > > 3. Detailed discussion should follow both in PR AND dev@ Mailing > > > List. > > > > > > 4. Alternative non-breaking alternative solution is researched > with > > > > > > help of the community. > > > > > > 5. Breaking change after discussion / updates is voted on the > > mailing > > > > > > list, requires at least 4 +1 binding votes and single -1 binding > > vote > > > > > > blocks the change (binding vote means PMC member). > > > > > > 6. Breaking changes **must** be verified on various different > real > > > > > > world hardware architectures, build and runtime logs are > > > > > > **mandatory**, help of the community is desired. > > > > > > 7. Breaking change requires at least 4 independent organizations > > > > > > positive PR reviews. > > > > > > 8. Change must be well documented (buid/runtime test logs, pr, > git > > > > > > commit, documentation, release notes, etc). > > > > > > 9. Change must be clearly marked with [BREAKING] mark (pr, git > > > commit, > > > > > > release notes, etc). > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > +1 Lup / PMC > > > > > > .. <- votes lost here > > > > > > 0 Roberto > > > > > > -1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: REJECTED / INCOMPLETE / +1: 5 (4 binding), 0: 1, -1: (1 > > > binding). > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Alan: -1, Mostly a repetition of 10 mixed with 9 and 11. > > > > > > > > > > > > <--- Quick note from Tomek: Alan, this procedure is dedicated for > > > > > > handling breaking changes. If rejecting please provide > alternative > > > > > > expected text. > > > > > > > > > > > > > > > > > > > > > > > > ### 13. Breaking changes build and runtime test logs are > mandatory. > > > > > > > > > > > > Breaking changes are special case where build and runtime test > logs > > > > > > (i.e. apps/ostest) from more than one different architecture is > > > > > > **mandatory** . QEmu tests does not count here as it passed > > breaking > > > > > > change that did not work on a real hardware. Community support is > > > > > > desired. > > > > > > > > > > > > See: https://github.com/apache/nuttx/blob/master/INVIOLABLES.md > > > > > > > > > > > > +1 Tomek > > > > > > +1 Alin > > > > > > +1 Tiago > > > > > > +1 TimK > > > > > > +1 Lup > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > +1 Nathan > > > > > > +1 Dmitri > > > > > > +1 Matteo > > > > > > 0 Roberto > > > > > > 0 Alan > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 11 (5 binding), 0: 2 (1 binding), -1: 0. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Sebastien: +1, Also some mandatory documentation on how to fix > the > > > > > > build after the breaking change. rust has cargo fix. Python has > > 2to3. > > > > > > > > > > > > Alan: 0, All the changes need to be equally coveraged, not only > > those > > > > > > that break some existing code > > > > > > > > > > > > > > > > > > > > > > > > ### 14. Minimum code reviews. > > > > > > > > > > > > Each PR requires at least 2 independent positive reviews, except > > > > > > Breaking Changes where at least 4 positive independent > > organizations > > > > > > reviews, are required before merge to the upstream. > > > > > > > > > > > > +1 Tomek / PMC > > > > > > +1 Alin / PMC > > > > > > +1 Tiago / PMC > > > > > > -1 TimK > > > > > > +1 Lup / PMC > > > > > > +1 Filipe > > > > > > +1 Sebastien > > > > > > 0 Nathan / PMC > > > > > > 0 Dmitri > > > > > > +1 Matteo > > > > > > +1 Roberto > > > > > > +1 Alan / PMC > > > > > > +1 TimH > > > > > > > > > > > > Result: PASSED / +1: 10 (5 binding), 0: 2 (1 binding), -1: 1. > > > > > > > > > > > > Remarks: > > > > > > > > > > > > Tomek: +1, Although I think 3 should be default to increase > > > cross-checks. > > > > > > > > > > > > Alin: +1, minimum 3. > > > > > > > > > > > > Tiago: +1, I still prefer Nathan's proposal of creating "areas". > > > > > > Documentation and experimental features shouldn't require 2 > > > reviewers. > > > > > > For the sake of simplicity, this rule works. Even 2 reviewers for > > > > > > documentation and experimental features are too restrictive. > > > > > > > > > > > > TimK: -1, "at least 2 independent positive reviews", may be too > > high > > > bar > > > > > we set. > > > > > > > > > > > > Nathan: 0, Tiago summarized my proposal above. However, I am OK > > with > > > > > > whatever the community decides on this. > > > > > > > > > > > > Matteo: +1, Agree that pure documentation changes can have 1 > > > reviewer. > > > > > > > > > > >