Rico Lin 5875452ddf Add guideline for Permission denied (publickey)
Add more guideline for Permission denied (publickey) status.

Fixing flake8 error in an unrelated doc to pass gating.

Change-Id: I3dccf05fa2f9f23d52bb0dd46e27f83877986b24
2024-09-02 19:50:02 +02:00

403 lines
13 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. _first_timers:
============
First timers
============
One of the best ways to start contributing to OpenStack documentation
is to walk through the Installation Guide and complete it by hand.
Keep notes as you go, and offer suggestions for improvement by filing
documentation bugs at Launchpad.
.. _setting_up_for_contribution:
Setting up for contribution
~~~~~~~~~~~~~~~~~~~~~~~~~~~
To get started, first `set up your OpenStack account
<https://docs.openstack.org/contributors/common/accounts.html>`_ and
then `set up Gerrit
<https://docs.openstack.org/contributors/common/setup-gerrit.html>`_.
To set up your environment for contributions, proceed with the
subsections below.
Set up a text editor
--------------------
Use any text editor of your choice to work with the documentation. It is a
good idea to choose an editor that supports spell checking and syntax
highlighting for RST. For example:
* `Gedit GNOME Wiki <https://wiki.gnome.org/Apps/Gedit>`_
* `Atom <https://atom.io/>`_
* `Vim <http://www.vim.org/>`_
* `Editors(reST) <https://wiki.typo3.org/Editors_%28reST%29#Open_source_.28.3D_free_of_cost.29>`_
To keep the documents clean and easy to compare, all of the OpenStack
projects require that text is wrapped at `79 characters maximum`_,
with no white spaces at the end of the line.
You can configure the text editor to do that automatically.
For example, in the :file:`.vimrc`:
.. code-block:: vim
set list
set listchars=tab:>-,trail:-,extends:#,nbsp:-
set modeline
set tw=78
set tabstop=8 expandtab shiftwidth=4 softtabstop=4
.. _git_setup:
Set up git and git-review
-------------------------
#. Install ``git``. See `GitHub help`_ for details.
If you use Windows to contribute to OpenStack, install
`Git for Windows <http://gitforwindows.org/>`_.
In the subsequent procedures, run commands from the Git Bash console.
#. Install ``git-review`` so that you are able to submit patches.
See `Installing git-review`_ for details.
.. note::
If you use Windows to contribute to OpenStack, install
`Python <https://docs.python.org/3/using/windows.html>`_
as prerequisites. As part of the Python installation,
be sure to install setuptools and pip as instructed.
Set up SSH
----------
#. On the computer which you commit from, generate an SSH key:
.. code-block:: console
$ ssh-keygen t rsa
#. Optionally, enter a password. If you enter one, remember it because
you must enter it every time you commit.
#. View and copy your SSH key:
**Linux/Mac**
.. code-block:: console
$ less ~/.ssh/id_rsa.pub
**Windows**
.. code-block:: console
$ notepad ~/.ssh/id_rsa.pub
#. Sign into gerrit at https://review.opendev.org/.
#. In the upper right, click your username. Click the `Settings > SSH Public
Keys`_ page. Click ``Add Key``. Paste the key in the ``Add SSH Public Key``
web form and click ``Add``.
Set up a repository
-------------------
For the instructions on how to set up a repository so that you can work
on it locally, refer to the `Starting Work on a New Project`_
of the Infrastructure manual.
See :ref:`troubleshoot_setup` if you have difficulty with a repository
setup.
Finding a bug
~~~~~~~~~~~~~
After setting up your environment for contribution, it is time to find
something to work on:
#. Go to the bug lists at `Bugs:openstack-manuals <https://bugs.launchpad.net/openstack-manuals/+bugs>`_
for documentation bugs related to the openstack-manuals repository.
For project-specific documentation bugs, go to
https://bugs.launchpad.net/<projectname>.
#. Find a bug that has been confirmed by another contributor and assign it
to yourself.
For more information on documentation bugs, see :doc:`../doc-bugs`.
Committing a change
~~~~~~~~~~~~~~~~~~~
#. Update the repository and create a new topic branch as described in
the `Starting a Change`_ section of the Infrastructure manual.
#. Fix the bug in the docs.
Read :doc:`../writing-style`, also pay attention to :doc:`../rst-conv`.
#. Create your commit message. See `Committing a change`_ for details.
#. Create a patch for review.opendev.org following the `Submitting a Change
for Review`_ instructions.
#. Follow the URL returned from ``git-review`` to check your commit::
https://review.opendev.org/<COMMIT-NUMBER>
#. In Gerrit, wait for the automatic Zuul checks to succeed.
Celebrate and wait for reviews!
.. seealso:: * :ref:`troubleshoot_setup`
* :doc:`../docs-builds`
Responding to requests
~~~~~~~~~~~~~~~~~~~~~~
After you submit a patch, reviewers may ask you to make changes before
they approve the patch.
To submit changes to your patch, proceed with the following steps:
#. Copy the commit number from the review.opendev.org URL.
#. At the command line, change into your local copy of the repository.
#. Check out the patch:
.. code-block:: console
$ git review -d <COMMIT-NUMBER>
#. Make your edits.
#. Commit the changes using the `amend` flag:
.. code-block:: console
$ git commit -a --amend
Ensure that the Change-ID line remains intact in your commit message. This
prevents Gerrit from creating a new patch.
#. Push the changes to review as described in the `Updating a Change`_ section
of the Infrastructure manual.
Wait for more reviews.
.. _troubleshoot_setup:
Troubleshooting your setup
~~~~~~~~~~~~~~~~~~~~~~~~~~
git and git review
------------------
* Authenticity error
The first time that you run :command:`git review`, you might see this error::
The authenticity of host '[review.opendev.org]:29418 ([104.130.246.32]:29418) can't be established.
Type *yes* (all three letters) at the prompt.
* Gerrit connection error
When you connect to gerrit for the first time, you might see this error:
.. code-block:: console
Could not connect to gerrit.
Enter your gerrit username:
Enter the user name that matches the user name in the :guilabel:`Settings`
page at review.opendev.org.
* Not a git repository error
If you see this error::
fatal: Not a git repository (or any of the parent directories): .git
You are not in a directory that is a git repository: A .git file was not found.
Change into your local copy of the repository and re-run the command.
* Gerrit location unknown error
If you see this error::
We don't know where your gerrit is. Please manually create a remote named "gerrit" and try again.
You need to make a git remote that maps to the review.opendev.org SSH port
for your repository. For example, for a user with the ``username_example``
user name and the openstack-manuals repository, you should run this command::
git remote add gerrit ssh://username_example@review.opendev.org:29418/openstack/openstack-manuals.git
* Remote rejected error
If you see this error::
! [remote rejected] HEAD -> refs/publish/master/addopenstackdocstheme (missing Change-Id in commit message footer)
The first time you set up a gerrit remote and try to create a patch for
review.opendev.org, you may see this message because the tool needs one
more edit of your commit message in order to automatically insert
the *Change-Id*. When this happens, run :command:`git commit -a --amend`,
save the commit message and run :command:`git review -v` again.
* Permission denied error
If you see this error:
.. code-block:: console
Permission denied (publickey).
Double check the :guilabel:`Settings` page at
https://review.opendev.org/
to make sure your public key on the computer
or virtual server has been copied to SSH public keys on
`SSH Public Keys <https://review.opendev.org/#/settings/ssh-keys>`_.
If you have not adjusted
your ``.ssh`` configuration, your system may not be connecting using
the correct key for gerrit.
List your local public key on Mac or Linux with:
.. code-block:: console
less ~/.ssh/id_rsa.pub
On Windows, look for it in the same location.
If you still received a ``Permission denied (publickey)`` message,
you might need to check if you hit ``no mutual signature algorithm``.
Any given system running OpenSSH 8.8 or newer as this release disables RSA
signatures using the SHA-1 hash algorithm by default.
Try to run the following command:
.. code-block:: console
ssh -vv -p 29418 {username}@review.opendev.org
If you saw ``no mutual signature algorithm``,
you need to consider using another algorithm instead of RSA.
For example, use ``ed25519`` to generate your key and upload ``id_ed25519.pub``.
.. code-block:: console
ssh-keygen -t ed25519 -C "your_email@example.com"
* Merge conflict, rebase required
Sometimes your change creates a merge conflict with another patch.
In this case, you need to rebase your commit on top of the current
state of the repository. In many cases, this can be achieved by pressing
the ``Rebase`` button in the gerrit interface. If this fails, you must
`rebase manually
<https://docs.opendev.org/opendev/infra-manual/latest/developers.html#understanding-changes-and-patch-sets>`_.
For a basic introduction to solving merge conflicts, see the GitHub article
`Resolving merge conflicts after a git rebase
<https://help.github.com/articles/resolving-merge-conflicts-after-a-git-rebase/>`_.
* ``FAILURE`` in the ``Zuul check`` section of your commit in Gerrit
#. Click the link next to the ``FAILURE`` test.
#. Verify the output of the :file:`console.html`:
* If it contains errors or warnings related to your commit with
a problematic file name and line in question, fix the issues and
push the new changes on review.
* If the issue is not related to your commit, re-run the gate jobs by
leaving the word *recheck* in the comments section of your
Gerrit review.
.. seealso:: * `Automated Testing <https://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing>`_
* :ref:`build_jobs`
Network
-------
If your network connection is weak, you might see this error:
.. code-block:: console
Read from socket failed: Connection reset by peer
Try again when your network connection improves.
**Accessing gerrit over HTTP/HTTPS**
If you suspect that SSH over non-standards ports might be blocked or need to
access the web using http/https, you can configure git-review to
`use an https endpoint instead of ssh
<https://docs.opendev.org/opendev/infra-manual/latest/developers.html#accessing-gerrit-over-https>`_
as explained in the Infrastructure Manual.
Python
------
If you see this error:
.. code-block:: console
/usr/bin/env: python: No such file or directory
Your Python environment is not set up correctly. See the Python documentation
for your operating system.
i18n
----
If you see this error:
.. code-block:: console
$ git review -s
Problems encountered installing commit-msg hook
The following command failed with exit code 1
"scp :hooks/commit-msg .git/hooks/commit-msg"
-----------------------
.git/hooks/commit-msg: No such file or directory
-----------------------
You may have a LANGUAGE variable setup to something else than C. Try using
instead:
.. code-block:: console
$ LANG=C LANGUAGE=C git review -s
.. Links
.. _`Sign the appropriate Individual Contributor License Agreement`: https://docs.openstack.org/contributors/common/setup-gerrit.html#individual-contributor-license-agreement
.. _`Installing git-review`: https://docs.opendev.org/opendev/infra-manual/latest/gettingstarted.html#install-the-git-review-utility
.. _`OpenStack Documentation Bug Team`: https://launchpad.net/~openstack-doc-bugs
.. _`Development Workflow`: https://docs.opendev.org/opendev/infra-manual/latest/developers.html#development-workflow
.. _`git`: http://msysgit.github.io
.. _`curl`: http://curl.haxx.se/
.. _`tar`: http://gnuwin32.sourceforge.net/packages/gtar.htm
.. _`7-zip`: http://sourceforge.net/projects/sevenzip/?source=recommended
.. _`Python 2.7 environment`: http://docs.python-guide.org/en/latest/starting/install/win/
.. _`79 characters maximum`: https://www.python.org/dev/peps/pep-0008/#maximum-line-length
.. _`GitHub help`: https://help.github.com/articles/set-up-git
.. _`Settings page on gerrit`: https://review.opendev.org/#/settings/
.. _`Settings > SSH Public Keys`: https://review.opendev.org/#/settings/ssh-keys
.. _`Starting Work on a New Project`: https://docs.opendev.org/opendev/infra-manual/latest/developers.html#starting-work-on-a-new-project
.. _`Starting a Change`: https://docs.opendev.org/opendev/infra-manual/latest/developers.html#starting-a-change
.. _`Committing a change`: https://docs.opendev.org/opendev/infra-manual/latest/developers.html#committing-a-change
.. _`Submitting a Change for Review`: https://docs.opendev.org/opendev/infra-manual/latest/developers.html#submitting-a-change-for-review
.. _`Updating a Change`: https://docs.opendev.org/opendev/infra-manual/latest/developers.html#updating-a-change