| //// |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License |
| //// |
| |
| = Contributor's Guide |
| |
| Use this guide to learn how to contribute to the Qpid Dispatch Router documentation. The documentation consists of a user guide, man pages, and a configuration reference. There are two contribution methods: |
| |
| * xref:simple-change[Make a simple change to the documentation through the GitHub interface]. This method works well for quick fixes and simple additions. |
| |
| * xref:large-contribution[Make a large or complex contribution]. This method involves forking the repository, editing the documentation files, and submitting a pull request. |
| |
| [id='simple-change'] |
| == Making a simple change to the documentation |
| |
| Follow this process if you want to make a quick fix or simple addition to the user guide: |
| |
| . Find the file you want to edit in the GitHub web interface. |
| |
| . Click the file name to open it in GitHub. |
| |
| . Click the pencil icon near the top right of the page contents. |
| |
| . Make your edits. |
| + |
| For more information, see link:style-guide.adoc[Style guidelines]. |
| |
| . In the `Propose file change` section at the bottom of the page, enter a title and description of your changes. Enter enough detail for reviewers to know what you have changed and why. |
| |
| . Click *Propose file change* to create a new branch for this commit and start a pull request. |
| |
| . Click *Create pull request*. |
| |
| . Wait. The documentation team will typically review pull requests within a few days. |
| |
| [id='large-contribution'] |
| == Making a large contribution to the documentation |
| |
| To make a large or complex contribution to the user guide, follow this method. |
| |
| === Setting up your environment |
| |
| Before making a documentation contribution, you must set up your environment. This involves forking the upstream GitHub repository and cloning the fork to your local machine. |
| |
| . If necessary, install `git`. For more information, see link:https://git-scm.com/book/en/v2/Getting-Started-Installing-Git[Installing Git]. |
| |
| . link:https://help.github.com/articles/connecting-to-github-with-ssh/[Set up authentication] to the qpid-dispatch GitHub repository. |
| |
| . Fork the link:https://github.com/apache/qpid-dispatch[qpid-dispatch] GitHub repository. |
| |
| . Clone your fork onto your local machine. |
| + |
| [source,bash,options="nowrap",subs="+quotes"] |
| ---- |
| $ git clone git@github.com:__<your-user-name>__/qpid-dispatch.git |
| ---- |
| |
| . Navigate to the new directory. |
| + |
| [source,bash,options="nowrap",subs="+quotes"] |
| ---- |
| $ cd qpid-dispatch |
| ---- |
| |
| . Add a git remote to your local repository to link to the upstream version of the documentation. |
| + |
| [source,bash,options="nowrap",subs="+quotes"] |
| ---- |
| $ git remote add upstream git@github.com:apache/qpid-dispatch.git |
| ---- |
| |
| . Verify that the remotes are set up properly. |
| + |
| [source,bash,options="nowrap",subs="+quotes"] |
| ---- |
| $ git remote -v |
| origin git@github.com:__<your-user-name>__/qpid-dispatch.git (fetch) |
| origin git@github.com:__<your-user-name>__/qpid-dispatch.git (push) |
| upstream git@github.com:apache/qpid-dispatch.git (fetch) |
| upstream git@github.com:apache/qpid-dispatch.git (push) |
| ---- |
| |
| === Updating the documentation |
| |
| Updating the documentation involves fetching the latest code from the upstream repository, making your documentation changes, and submitting a pull request. The following procedure describes how this workflow typically works: |
| |
| . Update your local repo with the latest changes from the upstream repository: |
| |
| .. Check out the master branch locally. |
| + |
| [source,bash,options="nowrap"] |
| ---- |
| $ git checkout master |
| ---- |
| |
| .. Fetch the current files from the upstream repository. |
| + |
| [source,bash,options="nowrap"] |
| ---- |
| $ git fetch upstream |
| ---- |
| |
| .. Update your cloned master branch on your local machine with the current files from the upstream repository: |
| + |
| [source,bash,options="nowrap"] |
| ---- |
| $ git rebase upstream/master |
| ---- |
| |
| .. Update your fork in GitHub (`origin`) with the current files from the upstream repository. |
| + |
| [source,bash,options="nowrap"] |
| ---- |
| $ git push origin master |
| ---- |
| |
| . If there is not a JIRA for your documentation update, create one in the link:https://issues.apache.org/jira/projects/DISPATCH[Apache Dispatch JIRA project]. |
| + |
| -- |
| When you create the JIRA: |
| |
| * Select the `Documentation` component. |
| * Assign the JIRA to yourself. |
| -- |
| |
| . Create a branch on your local machine for the documentation update. |
| + |
| -- |
| [source,bash,options="nowrap",subs="+quotes"] |
| ---- |
| $ git checkout -b _<branch-name>_ upstream/master |
| ---- |
| The branch name should include the ID of the JIRA for which you are creating the documentation update. |
| -- |
| |
| . Make your changes to the documentation. |
| + |
| For more information, see link:style-guide.adoc[Style guidelines]. |
| |
| . Build the documentation locally to test your changes. |
| + |
| For more information, see link:../README.adoc[Building the documentation]. |
| |
| . When you are satisfied with your changes, commit them. |
| |
| .. Verify the files that you have changed. |
| + |
| [source,bash,options="nowrap"] |
| ---- |
| $ git status |
| ---- |
| |
| .. Stage the files that you changed. |
| + |
| [source,bash,options="nowrap"] |
| ---- |
| $ git add -A |
| ---- |
| |
| .. Create a commit with the staged files. |
| + |
| -- |
| [source,bash,options="nowrap",subs="+quotes"] |
| ---- |
| $ git commit -m "_<commit-message>_" |
| ---- |
| For the commit message, write a short sentence that clearly describes the changes you made. |
| -- |
| |
| .. Push your changes to your fork in GitHub. |
| + |
| [source,bash,options="nowrap"] |
| ---- |
| $ git push origin HEAD |
| ---- |
| |
| . In GitHub, create a pull request. |
| |
| .. In the link:https://github.com/apache/qpid-dispatch[qpid-dispatch] GitHub project, click *Pull requests*. |
| |
| .. Click [btn]*New pull request*. |
| |
| .. Click the *compare across forks* link. |
| |
| .. In the head fork drop-down, select your fork, and in the compare drop-down, select the branch you created for this documentation update. |
| |
| .. Review the diff to verify your changes one more time. |
| |
| .. Click [btn]*Create pull request*. |
| |
| .. Write a title and description for the pull request. The title must include the ID of the JIRA for this documentation update. |
| |
| .. Click [btn]*Create pull request*. |
| |
| . Wait. The documentation team will typically review pull requests within a few days. |
| |
| [NOTE] |
| ==== |
| After the pull request has been merged or rejected, you can remove your feature branch from both the remote fork and your local machine. GitHub provides a button for removing from the fork in the UI of the PR once it is merged. To remove the branch from your local machine, enter `git branch -d _<branch-name>_`. |
| ==== |