summary refs log tree commit diff
path: root/Documentation/contributing/first-patch.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/contributing/first-patch.adoc')
-rw-r--r--Documentation/contributing/first-patch.adoc100
1 files changed, 100 insertions, 0 deletions
diff --git a/Documentation/contributing/first-patch.adoc b/Documentation/contributing/first-patch.adoc
new file mode 100644
index 0000000..13efa33
--- /dev/null
+++ b/Documentation/contributing/first-patch.adoc
@@ -0,0 +1,100 @@
+= Sending Your Patch
+:page-parent: Working with Patches
+:page-grand_parent: Contributing
+:page-nav_order: 1
+
+// SPDX-FileCopyrightText: 2022 Unikie
+// SPDX-License-Identifier: GFDL-1.3-no-invariants-or-later OR CC-BY-SA-4.0
+
+This tutorial assumes that you already have basic
+https://git-scm.com/[git] experience.
+
+Before beginning, you'll need to have a local git checkout of the
+https://spectrum-os.org/git/[Spectrum source tree].  You'll also need
+to have configured `git send-email` — a guide for this can be found at
+https://git-send-email.io/.
+
+== Making Changes
+
+The process of making changes is similar to working on any git repository.
+
+. Create a branch for your changes:
++
+[source,shell]
+----
+git checkout -b fix-docs # for example
+----
+. Make changes in your editor.
+. Stage and commit your changes:
++
+[source,shell]
+----
+git add Documentation/first-patch.adoc # for example
+git commit -s
+----
++
+TIP: The `-s` option adds a `Signed-off-by` line to the commit.  This
+indicates your acceptance of the
+https://spectrum-os.org/git/spectrum/tree/DCO-1.1.txt[Developer's
+Certificate of Origin], which is mandatory for Spectrum patches.
+
+== Submitting Changes
+
+Once you're happy with how the commits on your branch look, run:
+
+[source,shell]
+----
+git send-email --to devel@spectrum-os.org --confirm=always origin/main
+----
+
+For each message, you will be prompted for confirmation, and then the
+change will be submitted to the Spectrum development mailing list.
+They will appear shortly on the
+https://spectrum-os.org/lists/hyperkitty/list/devel@spectrum-os.org/[web
+interface].
+
+[#cover-letter]
+TIP: If you're submitting multiple changes, and you'd like to provide
+an overall description for the whole series, you can add the
+`--compose` option, which will prompt you to compose a "cover letter"
+message that will be sent before all of your patches.
+
+== Feedback
+
+Once your patch has been submitted, wait for it to be reviewed.
+Feedback, if any, will be sent as email replies to your submitted
+patch.  You can respond to feedback in your mail client.
+
+Use the *Reply All* button to sent your messages to the
+mailing list as well as to the person who sent the feedback.
+
+If you need to make changes to your patch and submit a new version,
+use https://git-rebase.io/[`git rebase`] to create a new version of
+your patch(es) and then submit it like this:
+
+[source,shell]
+----
+git send-email -v2 --to devel@spectrum-os.org --confirm=always origin/main
+----
+
+The added `-v2` flag indicates that this is version two of your
+patch set.  If your patches require more rounds of changes, submit
+subsequent rounds with `-v3`, `-v4`, etc. as appropriate.
+
+If you would like to describe what has changed from the previous version
+of your patches, you can do so in a xref:cover-letter[cover letter]
+as described above.
+
+== Acceptance
+
+Once your patch has been accepted, it will be applied to the upstream
+Spectrum git repository.  You will receive an automated email
+confirmation when this happens.
+
+== Questions
+
+If you have any questions about the patch submission process, you can
+ask them either on the
+https://spectrum-os.org/participating.html#spectrum-devel[development
+mailing list], or in the
+https://spectrum-os.org/participating.html#irc[IRC/Matrix channel].