Hi Nico,

Thank you so much for reviewing! Sorry for this HTML mess, I was thinking
of making things easier to read… but the end result seems to be the
opposite, sorry!

I went through all your comments, and for the first step I took all the
pieces that you agreed with. So that was in total 4 small changes, which I
will list below. I did only those 4 changes, I didn’t move sections around,
and didn’t remove anything.
It would be great to continue improvements on Dev guidelines, but I see
that the rest of the suggestions needs more discussion. I will send another
email later, with a plaintext version, hopefully that would be easier to
read.

Here are the changes I made:
1. Update text for GitHub section (the section itself stays where it was).
I kept the wording “reviewers do not look at pull requests”, because I
don’t think anyone looks at them now? Diffs1
https://www.flashrom.org/index.php?title=Development_Guidelines&type=revision&diff=2513&oldid=2512


2. Strong preference for Gerrit code reviews p.1 of “Sending a patch”.
Diffs2
https://www.flashrom.org/index.php?title=Development_Guidelines&type=revision&diff=2514&oldid=2513

3. Updating a text of mailing list reviews p.2 of “Sending a patch”. Diffs3
https://www.flashrom.org/index.php?title=Development_Guidelines&type=revision&diff=2515&oldid=2514

4. Update the links referring to coreboot guidelines. You suggested that we
maybe can remove that paragraph, but I was not sure, so as a first step I
decided to try to update the links (so that they point to a new website).
Diffs4
https://www.flashrom.org/index.php?title=Development_Guidelines&type=revision&diff=2516&oldid=2515

Thank you so much again! I will send another email with remaining
suggestions in plaintext, maybe in a few days.

Anastasia.

On Mon, Mar 7, 2022 at 12:42 AM Nico Huber <nic...@gmx.de> wrote:

> Hi Anastasia,
>
> thank you for getting this started.
>
> For the mailing list, especially reviews, text-only messages (i.e. no
> HTML) are preferred. If one would export the wiki source (not sure if
> there is a better way to do it than to copy-paste into a text editor),
> and after breaking long lines, it can also be run through `diff` quite
> nicely. Not 100% sure if it would have helped a lot here, moving things
> around can create rather confusing diffs.
>
> I tried to comment as best as I could inline on what was left of the
> HTML.
>
> Nico
>
> On 06.03.22 05:04, Anastasia Klimchuk wrote:
> > -----------------------------------------------------------------
> > *Patch Submission*
> > Coding style (unchanged)
> >
> > Flashrom generally follows Linux kernel style
> > <
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/coding-style.rst
> >
> > .
> >
> > The notable exception is the line length limit. Our guidelines are:
> >
> >    -
> >
> >    80-columns soft limit for most code and comments. This is to encourage
> >    simple design and concise naming.
> >
> >
> >    -
> >
> >    112-columns hard limit. Use this to reduce line breaks in cases where
> >    they harm grep-ability or overall readability, such as print
> statements and
> >    function signatures. Don't abuse this for long variable/function
> names or
> >    deep nesting.
> >
> >
> >    -
> >
> >    Tables are the only exception to the hard limit and may be as long as
> >    needed for practical purposes.
> >
> > GitHub
>
> Why start with GitHub if it's not the preferred way?
>
> >
> > The official Flashrom mirror on GitHub is:
> > https://github.com/flashrom/flashrom
> >
> > Importantly, GitHub repo is only a mirror, so all changes must go through
> > Gerrit on review.coreboot.org in order to be merged, even small patches
> > such as adding support for a flash chip. For this reason, reviewers do
> not
> > look at pull requests. Even if pull requests were automatically
> transferred
> > to Gerrit, requirements such as the #Sign-off Procedure
> > <https://www.flashrom.org/Development_Guidelines#Sign-off_Procedure>
> still
> > present a problem.
>
> Change seems ok to me. Can't tell if really nobody is looking at PRs,
> though.
>
> >
> > The quickest and best way to get your patch reviewed and merged is by
> > sending it to review.coreboot.org. Conveniently, you can use your
> GitHub,
> > GitLab or Google account as an OAuth2 login method. Please continue
> > reading, the instructions are below.
>
> Please add a link.
>
> > Preparing a patch
> >
> > Before sending a patch for review, put your Signed-off-by line
> > <https://www.flashrom.org/Development_Guidelines#Sign-off_Procedure> in
> the
> > commit message.
> >
> > Currently there are two ways to send patches for review:
> >
> >    1.
> >
> >    Our strong preference, especially for large patches, is via Gerrit on
> >    review.coreboot.org <https://review.coreboot.org/#/q/project:flashrom
> >,
> >    i.e. git push origin HEAD:refs/for/master
>
> SGTM
>
> >    2.
> >
> >    For small patches, with the reviewer’s agreement, there is an option
> to
>
> How should one get the agreement before sending the patch?
>
> >    send via our mailing list <
> https://www.flashrom.org/Contact#Mailing_List>.
> >    When sending a patch via the mailing list, send it in-line instead of
> as an
> >    attachment so that reviewers can easily comment on specific parts of
> it.
> >    However, eventually the reviewer will need to push patch to gerrit
> anyway.
>
> *G*errit with upper-case G, please.
>
> >
> > Our guidelines borrow heavily from the coreboot development guidelines
> > <https://doc.coreboot.org/contributing/index.html>, and most of them
> apply
>
> That link seems too generic, it also points to coreboot's project ideas
> and GSoC page. If there is no good link, maybe it's time to just drop
> this paragraph?
>
> > to flashrom as well. The really important part is about the #Sign-off
> > Procedure
> > <https://www.flashrom.org/Development_Guidelines#Sign-off_Procedure>.
> >
> > We try to reuse as much code as possible and create new files only if
> > absolutely needed, so if you find a function somewhere in the tree which
> > already does what you want (even if it is for a totally different chip),
> > please use it. See also Command set secrets
> > <https://www.flashrom.org/Random_notes#Command_set_secrets>.
> >
> > The patch reviews may sound harsh, but please don't get discouraged. We
> try
> > to merge simple patches after one or two iterations and complicated ones
> as
> > soon as possible, but we have quite high standards regarding code
> quality.
> >
> > If you introduce new features (not flash chips, but stuff like partial
> > programming, support for new external programmers, voltage handling, etc)
> > please discuss your plans on the mailing list
> > <https://www.flashrom.org/Contact#Mailing_List> first. That way, we can
> > avoid duplicated work and know about how flashrom internals need to be
> > adjusted and you avoid frustration if there is some disagreement about
> the
> > design.
> >
> > For patches that modify convoluted tables like struct flashchip
> flashchips[]
> > in flashchips.c it may make sense to increase the lines of context to
> > include enough information directly in the patch for reviewers (for
> example
> > to include the chip names when changing other parameters like .voltage).
> To
> > do this with git use git format-patch -U5 where 5 is an example for the
> > number of lines of context you want.
>
> > Commit message (unchanged)
> >
> > Commit messages shall have the following format:
> >
> > <component>: Short description (up to 72 characters)
> >
> > This is a long description. Max width of each line in the description
> >
> > is 72 characters. It is separated from the summary by a blank line. You
> >
> > may skip the long description if the short description is sufficient,
> >
> > for example "flashchips: Add FOO25Q128" to add FOO25Q128 chip support.
> >
> > You may have multiple paragraphs in the long description, but please
> >
> > do not write a novel here. For non-trivial changes you must explain
> >
> > what your patch does, why, and how it was tested.
> >
> > TEST=tests that you performed
> >
> > Finally, follow the #Sign-off Procedure
> > <https://www.flashrom.org/Development_Guidelines#Sign-off_Procedure> to
> add
> > your sign-off!
> >
> > Signed-off-by: Your Name <your(a)domain>
> >
> >
> > Sign-off Procedure (unchanged)
> >
> > We employ a similar sign-off procedure as the Linux kernel developers
> > <
> http://web.archive.org/web/20070306195036/http://osdlab.org/newsroom/press_releases/2004/2004_05_24_dco.html
> >
> > do. Add a note such as
> >
> > Signed-off-by: Random J Developer <random(a)developer.example.org>
> >
> > to your email/patch if you agree with the Developer's Certificate of
> Origin
> > 1.1 printed below. Read this post on the LKML
> > <https://lkml.org/lkml/2004/5/23/10> for rationale (spoiler: SCO).
> >
> > You must use your real name in the Signed-off-by line and in any
> copyright
> > notices you add. Patches without an associated real name lack provenance
> > and cannot be committed!
> >
> > Developer's Certificate of Origin 1.1:
> >
> > By making a contribution to this project, I certify that:
> >
> > (a) The contribution was created in whole or in part by me and I have
> >
> > the right to submit it under the open source license indicated in the
> file;
> > or
> >
> > (b) The contribution is based upon previous work that, to the best of my
> >
> > knowledge, is covered under an appropriate open source license and I have
> > the
> >
> > right under that license to submit that work with modifications, whether
> > created
> >
> > in whole or in part by me, under the same open source license (unless I
> am
> >
> > permitted to submit under a different license), as indicated in the
> file; or
> >
> > (c) The contribution was provided directly to me by some other person who
> >
> > certified (a), (b) or (c) and I have not modified it; and
> >
> > (d) In the case of each of (a), (b), or (c), I understand and agree that
> >
> > this project and the contribution are public and that a record of the
> > contribution
> >
> > (including all personal information I submit with it, including my
> > sign-off) is
> >
> > maintained indefinitely and may be redistributed consistent with this
> > project or the
> >
> > open source license indicated in the file.
> >
> > Note: The Developer's Certificate of Origin 1.1
> > <
> http://web.archive.org/web/20070306195036/http://osdlab.org/newsroom/press_releases/2004/2004_05_24_dco.html
> >
> > is licensed under the terms of the Creative Commons
> Attribution-ShareAlike
> > 2.5 License <http://creativecommons.org/licenses/by-sa/2.5/>.
>
> > Submitting a patch using Gerrit
>
> Sounds like a very good idea to make this guide more generic. I wonder
> if it shouldn't be on its own page, though? We should link to it of
> course.
>
> Also, something like "Extra steps if you cloned from GitHub" might be
> nice so we don't have to drop these things.
>
> > Setting up a Gerrit account
>
> > All changes have
> > to go through Gerrit on review.coreboot.org in order to be merged, even
> > small patches such as adding support for a flash chip. Our Gerrit
> supports
> > multiple authentication methods <https://review.coreboot.org/login>
> > including OAUTH2, e.g. Google, GitHub or GitLab, or also OpenID.
> >
> >    1.
> >
> >    Go to https://review.coreboot.org/login and sign in.
> >    2.
> >
> >    Edit your settings by clicking on the gear icon in the upper right
> >    corner.
> >    3.
> >
> >    Set your Gerrit username.
> >    4.
> >
> >    Add an email address so that you receive notifications when others
> >    commented or reviewed your patch.
> >    5.
> >
> >    Add a SSH public key to your account, or click the button to generate
> an
> >    HTTPS password.
> >
> > Preparing your local repository
> >
> > Open https://review.coreboot.org/admin/repos/flashrom and choose your
> > desired method to clone the repository. Supported methods are HTTPS and
> > SSH. The same method will also be used when you push your changes to
> Gerrit
> > later.
> >
> > Also, make sure to install the Change-Id hook. This generates a unique ID
> > which is appended to your commit message. It is used by Gerrit to
> identify
> > if a patch with the same ID exists, and if so it will add a new version
> to
> > it called “patchset”.
>
> Isn't this taken care of by `make`?
>
> >
> > If you are just about getting a fresh copy of the flashrom repository,
> then
> > you can use the command which you can find under “Clone with commit-msg
> > hook”.
>
> I never used this, might be new. How well does it work with our
> automatism?
>
> > If you have an existing copy of the repository and you need to
> > install the hook afterwards, then you can run this command within your
> > flashrom directory
> >
> >
> >    -
> >
> >    mkdir -p .git/hooks && curl -Lo `git rev-parse
> >    --git-dir`/hooks/commit-msg
> >    https://review.coreboot.org/tools/hooks/commit-msg; chmod +x `git
> >    rev-parse --git-dir`/hooks/commit-msg)
> >
> > Pushing your patch to Gerrit
> >
> >    1.
> >
> >    Check out a new local branch that tracks origin/master: git checkout
> -b
> >    <branch_name> origin/master
>
> Seems like something for the "Extra GitHub steps" category. Otherwise
> one would just want to checkout `master` right?
>
> >    2.
> >
> >    Do your changes
> >    3.
> >
> >    Add your changes using `git add` and create a commit using `git commit
> >    -s`
> >    4.
> >
> >    Push to gerrit: git push origin HEAD:refs/for/master.
>
> NB. This might be a candidate for a tl;dr for experienced Git users.
>
> >
> >
> >    -
> >
> >    If using HTTPS you will be prompted for the username and password you
> >    set in the Gerrit UI.
> >
> >
> >    -
> >
> >    If successful, the Gerrit URL for your patch will be shown in the
> output.
> >
> >
>
>

-- 
Anastasia.
_______________________________________________
flashrom mailing list -- flashrom@flashrom.org
To unsubscribe send an email to flashrom-le...@flashrom.org

Reply via email to