= 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. . Run the xref:../development/checks.adoc[checks] against your changes. . 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 in the https://spectrum-os.org/lists/archives/spectrum-devel/[archives]. [#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 xref:communication.adoc#spectrum-devel[development mailing list], or in the xref:communication.adoc#chat[Matrix/IRC chat].