summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2021-02-03 14:50:23 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2021-02-03 17:09:09 +1000
commit081f91469246d0be05a32167bc5773cdd104acfe (patch)
tree7754e863d7e553c041578e0356309f0c5610c57d /doc
parent4c4a0e1f0b4e5ee526e7cb4dc8b618788eebef15 (diff)
downloadlibinput-081f91469246d0be05a32167bc5773cdd104acfe.tar.gz
doc/user: expand the explanations on how to submit a merge request
I keep answering this in bug reports, much easier to just have a link to copy/paste. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'doc')
-rw-r--r--doc/user/contributing.rst57
1 files changed, 51 insertions, 6 deletions
diff --git a/doc/user/contributing.rst b/doc/user/contributing.rst
index 3d44a07e..0c4a5c0d 100644
--- a/doc/user/contributing.rst
+++ b/doc/user/contributing.rst
@@ -149,33 +149,76 @@ Any patches should be sent via a Merge Request (see the `GitLab docs
in the `libinput GitLab instance hosted by freedesktop.org
<https://gitlab.freedesktop.org/libinput/libinput>`_.
-To submit a merge request, you need to
+Below are the steps required to submit a merge request. They do not
+replace `learning git <https://git-scm.com/doc>`__ but they should be
+sufficient to make some of the more confusing steps obvious.
- `Register an account <https://gitlab.freedesktop.org/users/sign_in>`_ in
the freedesktop.org GitLab instance.
- `Fork libinput <https://gitlab.freedesktop.org/libinput/libinput/forks/new>`_
into your username's namespace
-- Get libinput's main repository: ::
+- Get libinput's main repository. git will call this repository ``origin``. ::
git clone https://gitlab.freedesktop.org/libinput/libinput.git
- Add the forked git repository to your remotes (replace ``USERNAME``
- with your username): ::
+ with your username). git will call this repository ``gitlab``. ::
cd /path/to/libinput.git
git remote add gitlab git@gitlab.freedesktop.org:USERNAME/libinput.git
git fetch gitlab
-- Push your changes to your fork: ::
+- Create a new branch and commit your changes to that branch. ::
- git push gitlab BRANCHNAME
+ git switch -C mynewbranch
+ # edit files, make changes
+ git add file1 file2
+ git commit -s
+ # edit commit message in the editor
-- Submit a merge request. The URL for a merge request is: ::
+ Replace ``mynewbranch`` (here and in the commands below) with a meaningful
+ name. See :ref:`contributing_commit_messages` for details on the commit
+ message format.
+
+- Push your changes to your fork and submit a merge request ::
+
+ git push gitlab mynewbranch
+
+ This command will print the URL to file a merge request, you then only
+ have to click through. Alternatively you can go to:
https://gitlab.freedesktop.org/USERNAME/libinput/merge_requests
Select your branch name to merge and ``libinput/libinput`` ``master`` as target branch.
+- Verify that the CI completes successfully by visiting the merge request
+ page. A successful pipeline shows only green ticks, failure is indicated
+ by a red cross or a yellow exclamation mark (see
+ the `GitLab Docs
+ <https://docs.gitlab.com/ee/ci/pipelines/#pipeline-mini-graphs>`__). For
+ details about the failures, click on the failed jobs in the pipelines
+ and/or click the ``Expand`` button in the box for the test summaries.
+
+ A merge request without a successful pipeline may never be looked at by a
+ maintainer.
+
+- If changes are requested by the maintainers, please **amend** the
+ commit(s) and **force-push** the updated branch. ::
+
+ # edits in file foo.c
+ git add foo.c
+ git commit --amend
+ git push -f gitlab mynewbranch
+
+ A force-push will re-trigger the CI and notify the merge request that new
+ changes are available.
+
+ If the branch contains more than one commit, please look at
+ `git interactive rebases
+ <https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History>`__
+ to learn how to change multiple commits, or squash new changes into older
+ commits.
+
------------------------------------------------------------------------------
Commit History
------------------------------------------------------------------------------
@@ -215,6 +258,8 @@ describes the change. For example: ::
If in doubt what prefix to use, look at other commits that change the
same file(s) as the patch being sent.
+.. _contributing_commit_messages:
+
------------------------------------------------------------------------------
Commit Messages
------------------------------------------------------------------------------