Docs/tutorial: Wrap the text in part?.md to 72 characters

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I4f0a07b4ab729aafdb4a1149a7617cd34392cf12
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64967
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
This commit is contained in:
Martin Roth
2022-06-04 19:52:42 -06:00
committed by Martin L Roth
parent 25aeaac85b
commit d2c3e26513
3 changed files with 348 additions and 313 deletions

View File

@@ -4,28 +4,29 @@
If you already have an account, skip to Step 2.
Otherwise, go to <https://review.coreboot.org> in your preferred web browser.
Select **Sign in** in the upper right corner.
Otherwise, go to <https://review.coreboot.org> in your preferred web
browser. Select **Sign in** in the upper right corner.
Select the appropriate sign-in. For example, if you have a Google account,
select **Google OAuth2** (gerrit-oauth-provider plugin). **Note:** Your
username for the account will be the username of the account you used to
sign-in with. (ex. your Google username).
Select the appropriate sign-in. For example, if you have a Google
account, select **Google OAuth2** (gerrit-oauth-provider plugin).
**Note:** Your username for the account will be the username of the
account you used to sign-in with. (ex. your Google username).
## Step 2a: Set up SSH keys
If you prefer to use an HTTP password instead, skip to Step 2b.
If you do not have an SSH key set up on your account already (as is the case
with a newly created account), follow the instructions below; otherwise,
doing so could overwrite an existing key.
If you do not have an SSH key set up on your account already (as is the
case with a newly created account), follow the instructions below;
otherwise, doing so could overwrite an existing key.
In a terminal, run `ssh-keygen -t ed25519` and confirm the default path
`.ssh/id_ed25519`.
Make a passphrase -- remember this phrase. It will be needed whenever you use
this public key. **Note:** You might want to use a short password, or
forego the password altogether as you will be using it very often.
Make a passphrase -- remember this phrase. It will be needed whenever
you use this public key. **Note:** You might want to use a short
password, or forego the password altogether as you will be using it very
often.
Copy the content of `.ssh/id_ed25519.pub` (notice the ".pub" suffix
as you need to send the public key) into the textbox "New SSH Key" at
@@ -33,17 +34,19 @@ https://review.coreboot.org/settings/#SSHKeys and save it.
## Step 2b: Set up an HTTP Password
Alternatively, instead of using SSH keys, you can use an HTTP password. To do so,
after you select your name and click on **Settings** on the left-hand side, rather
than selecting **SSH Public Keys**, select **HTTP Password**.
Alternatively, instead of using SSH keys, you can use an HTTP password.
To do so, after you select your name and click on **Settings** on the
left-hand side, rather than selecting **SSH Public Keys**, select **HTTP
Password**.
Click **Generate Password**. This should fill the "Password" box with a password. Copy
the password, and add the following to your `$HOME/.netrc` file:
Click **Generate Password**. This should fill the "Password" box with a
password. Copy the password, and add the following to your
`$HOME/.netrc` file:
machine review.coreboot.org login YourUserNameHere password YourPasswordHere
where YourUserNameHere is your username, and YourPasswordHere is the password you
just generated.
where YourUserNameHere is your username, and YourPasswordHere is the
password you just generated.
If your system is behind a snooping HTTPS proxy, you might also have to
make its SSL certificate known to curl, a system specific operation.
@@ -55,26 +58,28 @@ certificate verification in git:
The `--global` argument sets it for all git transfers of your local
user, `false` means not to validate the certificate.
If that still doesn't allow you to pull or push changes to the server, the
proxy is likely tampering with the data stream, in which case there's nothing
we can do.
If that still doesn't allow you to pull or push changes to the server,
the proxy is likely tampering with the data stream, in which case
there's nothing we can do.
## Step 3: Clone coreboot and configure it for submitting patches
On Gerrit, click on the **Browse** tab in the upper left corner and select
**Repositories**. From the listing, select the "coreboot" repo. You may have
to click the next page arrow at the bottom a few times to find it.
On Gerrit, click on the **Browse** tab in the upper left corner and
select **Repositories**. From the listing, select the "coreboot" repo.
You may have to click the next page arrow at the bottom a few times to
find it.
If you are using SSH keys, select **ssh** from the tabs under "Project
coreboot" and run the "clone with commit-msg hook" command that's provided.
This should prompt you for your id_rsa passphrase, if you previously set one.
coreboot" and run the "clone with commit-msg hook" command that's
provided. This should prompt you for your id_rsa passphrase, if you
previously set one.
**Note:** if the **ssh** option is not showing, check that you have a username
set. Click the profile picture at the top right and select **User Settings**,
then set your username in the **Profile** section.
**Note:** if the **ssh** option is not showing, check that you have a
username set. Click the profile picture at the top right and select
**User Settings**, then set your username in the **Profile** section.
If you are using HTTP, instead, select **http** from the tabs under "Project coreboot"
and run the command that appears.
If you are using HTTP, instead, select **http** from the tabs under
"Project coreboot" and run the command that appears.
Now is a good time to configure your global git identity, if you haven't
already.
@@ -82,30 +87,32 @@ already.
git config --global user.name "Your Name"
git config --global user.email "Your Email"
Finally, enter the local git repository and set up repository specific hooks
and other configurations.
Finally, enter the local git repository and set up repository specific
hooks and other configurations.
cd coreboot
make gitconfig
## Step 4: Submit a commit
An easy first commit to make is fixing existing checkpatch errors and warnings
in the source files. To see errors that are already present, build the files in
the repository by running `make lint` in the coreboot directory. Alternatively,
if you want to run `make lint` on a specific directory, run:
An easy first commit to make is fixing existing checkpatch errors and
warnings in the source files. To see errors that are already present,
build the files in the repository by running `make lint` in the coreboot
directory. Alternatively, if you want to run `make lint` on a specific
directory, run:
util/lint/lint-007-checkpatch <filepath>
where `filepath` is the filepath of the directory (ex. `src/cpu/amd/car`).
where `filepath` is the filepath of the directory (ex.
`src/cpu/amd/car`).
Any changes made to files under the src directory are made locally,
and can be submitted for review.
Once you finish making your desired changes, use the command line to stage
and submit your changes. An alternative and potentially easier way to stage
and submit commits is to use git cola, a graphical user interface for git. For
instructions on how to do so, skip to Step 4b.
Once you finish making your desired changes, use the command line to
stage and submit your changes. An alternative and potentially easier way
to stage and submit commits is to use git cola, a graphical user
interface for git. For instructions on how to do so, skip to Step 4b.
## Step 4a: Use the command line to stage and submit a commit
@@ -119,20 +126,21 @@ To commit the change, run
git commit -s
**Note:** The -s adds a signed-off-by line by the committer. Your commit should be
signed off with your name and email (i.e. **Your Name** **\<Your Email\>**, based on
what you set with git config earlier).
**Note:** The -s adds a signed-off-by line by the committer. Your commit
should be signed off with your name and email (i.e. **Your Name**
**\<Your Email\>**, based on what you set with git config earlier).
Running git commit first checks for any errors and warnings using lint. If
there are any, you must go back and fix them before submitting your commit.
You can do so by making the necessary changes, and then staging your commit again.
Running git commit first checks for any errors and warnings using lint.
If there are any, you must go back and fix them before submitting your
commit. You can do so by making the necessary changes, and then staging
your commit again.
When there are no errors or warnings, your default text editor will open.
This is where you will write your commit message.
When there are no errors or warnings, your default text editor will
open. This is where you will write your commit message.
The first line of your commit message is your commit summary. This is a brief
one-line description of what you changed in the files using the template
below:
The first line of your commit message is your commit summary. This is a
brief one-line description of what you changed in the files using the
template below:
<filepath>: Short description
@@ -143,29 +151,30 @@ For example,
**Note:** It is good practice to use present tense in your descriptions
and do not punctuate your summary.
Then hit Enter. The next paragraph should be a more in-depth explanation of the
changes you've made to the files. Again, it is good practice to use present
tense. Ex.
Then hit Enter. The next paragraph should be a more in-depth explanation
of the changes you've made to the files. Again, it is good practice to
use present tense. Ex.
Fix space prohibited between function name and open parenthesis,
line over 80 characters, unnecessary braces for single statement blocks,
space required before open brace errors and warnings.
line over 80 characters, unnecessary braces for single statement
blocks, space required before open brace errors and warnings.
When you have finished writing your commit message, save and exit the text
editor. You have finished committing your change. If, after submitting your
commit, you wish to make changes to it, running `git commit --amend` allows
you to take back your commit and amend it.
When you have finished writing your commit message, save and exit the
text editor. You have finished committing your change. If, after
submitting your commit, you wish to make changes to it, running `git
commit --amend` allows you to take back your commit and amend it.
When you are done with your commit, run `git push` to push your commit to
coreboot.org. **Note:** To submit as a private patch, use
`git push origin HEAD:refs/for/master%private`. Submitting as a private patch
means that your commit will be on review.coreboot.org, but is only visible to
yourself and those you add as reviewers. This mode isn't perfect: Somebody who
knows the commit ID can still fetch the change and everything it refers (e.g.
parent commits).
When you are done with your commit, run `git push` to push your commit
to coreboot.org. **Note:** To submit as a private patch, use `git push
origin HEAD:refs/for/master%private`. Submitting as a private patch
means that your commit will be on review.coreboot.org, but is only
visible to yourself and those you add as reviewers. This mode isn't
perfect: Somebody who knows the commit ID can still fetch the change and
everything it refers (e.g. parent commits).
This has been a quick primer on how to submit a change to Gerrit for review
using git. You may wish to review the [Gerrit code review workflow
This has been a quick primer on how to submit a change to Gerrit for
review using git. You may wish to review the [Gerrit code review
workflow
documentation](https://gerrit-review.googlesource.com/Documentation/intro-user.html#code-review),
especially if you plan to work on multiple changes at the same time.
@@ -196,14 +205,14 @@ in-depth explanation of the changes you've made to the files. Again, it
is good practice to use present tense. Ex.
Fix space prohibited between function name and open parenthesis,
line over 80 characters, unnecessary braces for single statement blocks,
space required before open brace errors and warnings.
line over 80 characters, unnecessary braces for single statement
blocks, space required before open brace errors and warnings.
Then press Enter two times to move the cursor to below your description.
To the left of the text boxes, there is an icon with an downward arrow.
Press the arrow and select "Sign Off." Make sure that you are signing off
with your name and email (i.e. **Your Name** **\<Your Email\>**, based on what
you set with git config earlier).
Press the arrow and select "Sign Off." Make sure that you are signing
off with your name and email (i.e. **Your Name** **\<Your Email\>**,
based on what you set with git config earlier).
Now, review each of your changes and mark either individual changes or
an entire file as Ready to Commit by marking it as 'Staged'. To do
@@ -234,11 +243,11 @@ and the commit succeeds, move to the command line and run `git push`.
Your commits can now be seen on review.coreboot.org if you select "Your"
and click on "Changes" and can be reviewed by others. Your code will
first be reviewed by build bot (Jenkins), which will either give you a warning
or verify a successful build; if so, your commit will receive a +1. Other
users may also give your commit +1. For a commit to be merged, it needs
to receive a +2. **Note:** A +1 and a +1 does not make a +2. Only certain users
can give a +2.
first be reviewed by build bot (Jenkins), which will either give you a
warning or verify a successful build; if so, your commit will receive a
+1. Other users may also give your commit +1. For a commit to be merged,
it needs to receive a +2. **Note:** A +1 and a +1 does not make a +2.
Only certain users can give a +2.
## Step 6 (optional): bash-git-prompt
@@ -255,9 +264,11 @@ as this one is specific to bash.
Alternatively, follow the instructions below:
Run the following two commands in the command line:
cd
git clone https://github.com/magicmonty/bash-git-prompt.git .bash-git-prompt --depth=1
```Bash
cd
git clone https://github.com/magicmonty/bash-git-prompt.git \
.bash-git-prompt --depth=1
```
**Note:** cd will change your directory to your home directory, so the
git clone command will be run there.
@@ -269,36 +280,38 @@ Finally, open the `~/.bashrc` file and append the following two lines:
Now, whenever you are in a git repository, it will continuously display
its state.
There also are additional configurations that you can change depending on your
preferences. If you wish to do so, look at the "All configs for .bashrc" section
on <https://github.com/magicmonty/bash-git-prompt>. Listed in that section are
various lines that you can copy, uncomment and add to your .bashrc file to
change the configurations. Example configurations include avoid fetching remote
status, and supporting versions of Git older than 1.7.10.
There also are additional configurations that you can change depending
on your preferences. If you wish to do so, look at the "All configs for
.bashrc" section on <https://github.com/magicmonty/bash-git-prompt>.
Listed in that section are various lines that you can copy, uncomment
and add to your .bashrc file to change the configurations. Example
configurations include avoid fetching remote status, and supporting
versions of Git older than 1.7.10.
## Appendix: Miscellaneous Advice
### Updating a commit after running git push:
Suppose you would like to update a commit that has already been pushed to the
remote repository. If the commit you wish to update is the most recent
commit you have made, after making your desired changes, stage the files
(either using git add or in git cola), and amend the commit. To do so,
if you are using the command line, run `git commit --amend`. If you are
using git cola, click on the gear icon located on the upper left side under
**Commit** and select **Amend Last Commit** in the drop down menu. Then, stage
the files you have changed, commit the changes, and run git push to push the
changes to the remote repository. Your change should be reflected in Gerrit as
a new patch set.
Suppose you would like to update a commit that has already been pushed
to the remote repository. If the commit you wish to update is the most
recent commit you have made, after making your desired changes, stage
the files (either using git add or in git cola), and amend the commit.
To do so, if you are using the command line, run `git commit --amend`.
If you are using git cola, click on the gear icon located on the upper
left side under **Commit** and select **Amend Last Commit** in the drop
down menu. Then, stage the files you have changed, commit the changes,
and run git push to push the changes to the remote repository. Your
change should be reflected in Gerrit as a new patch set.
If, however, the commit you wish to update is not the most recent commit you
have made, you will first need to checkout that commit. To do so, find the
URL of the commit on <https://review.coreboot.org> and go to that page; if
the commit is one that you previously pushed, it can be found by selecting
**My** and then **Changes** in the upper left corner. To checkout this commit,
in the upper right corner, click on **Download**, and copy the command listed
next to checkout by clicking **Copy to clipboard**. Then, run the copied
command in your coreboot repository. Now, the last commit should be the most
recent commit to that patch; to update it, make your desired changes, stage
the files, then amend and push the commit using the instructions in the above
If, however, the commit you wish to update is not the most recent commit
you have made, you will first need to checkout that commit. To do so,
find the URL of the commit on <https://review.coreboot.org> and go to
that page; if the commit is one that you previously pushed, it can be
found by selecting **My** and then **Changes** in the upper left corner.
To checkout this commit, in the upper right corner, click on
**Download**, and copy the command listed next to checkout by clicking
**Copy to clipboard**. Then, run the copied command in your coreboot
repository. Now, the last commit should be the most recent commit to
that patch; to update it, make your desired changes, stage the files,
then amend and push the commit using the instructions in the above
paragraph.