|
1 | | -# Contributing Guide |
| 1 | +# Documentation contributing guide |
2 | 2 |
|
3 | | -Thank you for deciding to contribute and help us improve Percona Distribution for PostgreSQL documentation! |
| 3 | +This guide explains how to contribute to the Percona Distribution for PostgreSQL documentation. |
4 | 4 |
|
5 | | -We welcome contributors from all users and community. By contributing, you agree to the [Percona Community code of conduct](https://github.com/percona/community/blob/main/content/contribute/coc.md). |
| 5 | +We welcome contributors from all users and the community. By contributing, you agree to the [Percona Community code of conduct](https://github.com/percona/community/blob/main/content/contribute/coc.md). |
6 | 6 |
|
7 | | -You can contribute to documentation in the following ways: |
| 7 | +If you want to contribute code, see the [PostgreSQL Developer Guide](https://www.postgresql.org/developer/). |
8 | 8 |
|
9 | | -1. **Request a doc change through a Jira issue**. If you’ve spotted a doc issue (a typo, broken links, inaccurate instructions, etc.) but don’t have time nor desire to fix it yourself - let us know about it. |
| 9 | +You can contribute to documentation in the following ways: |
10 | 10 |
|
11 | | - - Click the **Submit DOC bug** link on the sidebar. This opens the [Jira issue tracker](https://jira.percona.com/projects/PG/issues) for the doc project. |
12 | | - - Sign in (create a Jira account if you don’t have one) and click **Create** to create an issue. |
13 | | - - Describe the issue you have detected in the Summary, Description, Steps To Reproduce, Affects Version fields. |
| 11 | +1. Request documentation changes through Jira: |
14 | 12 |
|
15 | | -2. **[Contribute to documentation yourself](#contribute-to-documentation-yourself)**. Click the <img src="_resource/.icons/edit_page.png" style="width: 1em; height: 1em;"> **Edit this page** icon that leads you to the source file of the page on GitHub. There you make changes, create a pull request that we review and add to the doc project. For details how to do it, read on. |
| 13 | +- Open the [Jira issue tracker](https://jira.percona.com/projects/PG/issues) for the project. |
| 14 | +- Sign in (create a Jira account if you don’t have one). |
| 15 | +- Click **Create** to create an issue. |
| 16 | +- (Optional but recommended) Search if the issue you want to report is already reported. |
| 17 | +- Select **PostgreSQL PG** in the Project dropdown and the work type. |
| 18 | +- Describe the issue in the Summary and Description fields. Optionally, you can also fill in the Steps To Reproduce and Affects Version fields. |
16 | 19 |
|
| 20 | +2. [Contribute to documentation on GitHub](#contribute-directly-on-github). |
17 | 21 |
|
18 | | -## Contribute to documentation yourself |
| 22 | +To contribute to the documentation, basic familiarity with the following tools is useful: |
19 | 23 |
|
20 | | -To contribute to the documentation, you should be familiar with the following technologies: |
21 | | -- [Markdown](https://www.markdownguide.org/basic-syntax/) markup language. It is used to write the documentation. |
| 24 | +- [Markdown](https://www.markdownguide.org/basic-syntax/). The documentation is written in Markdown. |
22 | 25 | - [MkDocs](https://www.mkdocs.org/getting-started/) documentation generator. We use it to convert source ``.md`` files to html and PDF documents. |
23 | 26 | - [git](https://git-scm.com/) and [GitHub](https://guides.github.com/activities/hello-world/) |
24 | | -- [Docker](https://docs.docker.com/get-docker/). It allows you to run MkDocs in a virtual environment instead of installing it and its dependencies on your machine. |
25 | 27 |
|
26 | | -There are several active versions of the documentation. Each version derives from the major version of PostgreSQL, included in the distribution. |
| 28 | +## Contribute directly on GitHub |
| 29 | + |
| 30 | +There are several active versions of the documentation. Each version derives from the major version of PostgreSQL, included in the distribution. |
27 | 31 |
|
28 | | -Each version has a branch in the repository named accordingly: |
| 32 | +Each documentation branch is named after the PostgreSQL major version (for example: `11`(EOL), `12`(EOL), `13`(EOL), `14`, `15`, `16`, `17`, `18`). |
29 | 33 |
|
30 | | -- 11 (EOL) |
31 | | -- 12 (EOL) |
32 | | -- 13 |
33 | | -- 14 |
34 | | -- 15 |
35 | | -- 16 |
36 | | -- 17 |
| 34 | +The source .md files are in the ``postgresql-docs/docs`` directory. |
37 | 35 |
|
38 | | -The source .md files are in the ``docs`` directory. |
| 36 | +To start contributing: |
39 | 37 |
|
40 | | -### Edit documentation online via GitHub |
| 38 | +1. Select **Edit this file**. |
41 | 39 |
|
42 | | -1. Click the <img src="_resource/.icons/edit_page.png" style="width: 1em; height: 1em;"> **Edit this page** icon next to the page title. The Markdown file of the page opens in GitHub editor in your browser. If you haven’t worked with the repository before, GitHub creates a [fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) of it for you. |
| 40 | +> **NOTE** |
| 41 | +> If you haven’t worked with the repository before, GitHub creates a [fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) of it for you. |
43 | 42 |
|
44 | | -2. Edit the page. You can check your changes on the **Preview** tab. |
| 43 | +2. Add your changes. You can see how your edit looks in the **Preview** tab. |
45 | 44 |
|
46 | 45 | 3. Commit your changes. |
47 | 46 |
|
48 | | - - In the *Commit changes* section, describe your changes. |
49 | | - - Select the **Create a new branch for this commit and start a pull request** option |
50 | | - - Click **Propose changes**. |
| 47 | +- Describe the changes you have made |
| 48 | +- Select the **Create a new branch for this commit** and name your branch |
| 49 | +- Click **Propose changes** to create the pull request |
51 | 50 |
|
52 | | -4. GitHub creates a branch and a commit for your changes. It loads a new page on which you can open a pull request to Percona. The page shows the base branch - the one you offer your changes for, your commit message and a diff - a visual representation of your changes against the original page. This allows you to make a last-minute review. When you are ready, click the **Create pull request** button. |
53 | | -5. Someone from our team reviews the pull request and if everything is correct, merges it into the documentation. Then it gets published on the site. |
| 51 | +4. GitHub creates a branch and a commit for your changes. It loads a new page on which you can open a pull request to Percona. The page shows the base branch - the one you offer your changes for, your commit message and a diff - a visual representation of your changes against the original page. This allows you to make last-minute changes. When you are ready, click the **Create pull request** button. |
54 | 52 |
|
55 | | -### Edit documentation locally |
| 53 | +5. Your changes will be reviewed and merged into the documentation. |
56 | 54 |
|
57 | | -This option is for users who prefer to work from their computer and / or have the full control over the documentation process. |
| 55 | +### Edit documentation locally |
58 | 56 |
|
59 | | -The steps are the following: |
| 57 | +If you want to work on your computer locally, follow these steps: |
60 | 58 |
|
61 | 59 | 1. Fork this repository |
62 | 60 | 2. Clone the repository on your machine: |
63 | 61 |
|
64 | 62 | ```sh |
65 | | -git clone git@github.com:percona/postgresql-docs.git |
| 63 | +git clone git@github.com:<my_name>/postgresql-docs.git |
| 64 | +cd postgresql-docs |
66 | 65 | ``` |
67 | 66 |
|
68 | | -3. Change the directory to ``postgresql-docs`` and add your local repository: |
| 67 | +3. Add the upstream (Percona) repository as a remote: |
69 | 68 |
|
70 | 69 | ```sh |
71 | | -git remote add <your-repo-name> git@github.com:<your_name>/postgresql-docs.git |
| 70 | +git remote add upstream git@github.com:percona/postgresql-docs.git |
72 | 71 | ``` |
73 | 72 |
|
74 | | -4. Pull the latest changes |
| 73 | +4. Pull the latest changes |
75 | 74 |
|
76 | 75 | ```sh |
77 | | -git fetch origin |
78 | | -git merge origin/<branch> |
| 76 | +git fetch upstream |
| 77 | +git merge upstream/<branch> |
79 | 78 | ``` |
80 | 79 |
|
81 | | -Make sure that your local branch and the branch you merge changes from are the same. So if you are on the ``17`` branch, merge changes from ``origin/17``. |
| 80 | +Make sure you merge changes from the same documentation branch you are working on. For example, if you are on branch ``17``, merge from ``upstream/17``. |
82 | 81 |
|
83 | | -5. Create a separate branch for your changes |
| 82 | +5. Create a separate branch for your changes. If you work on a Jira issue, please follow this pattern for a branch name: `<PG-123>-short-description`: |
84 | 83 |
|
85 | 84 | ```sh |
86 | | -git checkout -b <my_changes> |
| 85 | +git checkout -b <PG-123>-short-description upstream/<target-branch> |
87 | 86 | ``` |
88 | 87 |
|
89 | | -6. Make changes |
90 | | -7. Commit your changes |
91 | | -8. Open a pull request to Percona |
92 | | - |
93 | | -### Building the documentation |
94 | | - |
95 | | -To verify how your changes look, generate the static site with the documentation. This process is called *building*. You can do it in these ways: |
96 | | -- [use Docker](#use-docker) |
97 | | -- [install MkDocs and build locally](#install-mkdocs-and-build-locally) |
98 | | - |
99 | | -Learn more about the documentation structure in the [Repository structure](#repository-stucture) section. |
100 | | - |
101 | | - |
102 | | -#### Use Docker |
103 | | - |
104 | | -1. [Get Docker](https://docs.docker.com/get-docker/) |
105 | | -2. We use [this Docker image](https://github.com/Percona-Lab/percona-doc-docker) to build documentation. Run the following command: |
| 88 | +6. Make a commit mentioning the Jira issue in the commit message if any: |
106 | 89 |
|
107 | 90 | ```sh |
108 | | -docker run --rm -v $(pwd):/docs perconalab/pmm-doc-md mkdocs build |
| 91 | +git add . |
| 92 | +git commit -m "PG-123-<my_fixes>" |
| 93 | +git push -u origin <my_branch_name> |
109 | 94 | ``` |
110 | | - If Docker can't find the image locally, it first downloads the image, and then runs it to build the documentation. |
111 | | - |
112 | | -3. Go to the ``site`` directory and open the ``index.html`` file to see the documentation. |
113 | | -4. To view your changes as you make them, run the following command: |
114 | 95 |
|
115 | | -``` sh |
116 | | -docker run --rm -p 8000:8000 -v $(pwd):/docs perconalab/pmm-doc-md mkdocs serve -a 0.0.0.0:8000 |
117 | | -``` |
| 96 | +7. Open a pull request to Percona |
118 | 97 |
|
119 | | -5. To create a PDF version of the documentation, run the following command: |
| 98 | +### Building the documentation using MkDocs |
120 | 99 |
|
121 | | -```sh |
122 | | -docker run --rm -v $(pwd):/docs -e ENABLE_PDF_EXPORT=1 perconalab/pmm-doc-md mkdocs build -f mkdocs-pdf.yml |
123 | | -``` |
| 100 | +To verify how your changes look, generate the static site with the documentation. This process is called *building*. |
124 | 101 |
|
125 | | -The PDF document is in the ``site/pdf`` folder. |
| 102 | +> **NOTE** |
| 103 | +> Learn more about the documentation structure in the [Repository structure](#repository-structure) section. |
126 | 104 |
|
127 | | -#### Install MkDocs and build locally |
| 105 | +To verify how your changes look, you can generate a static site locally: |
128 | 106 |
|
129 | 107 | 1. Install [pip](https://pip.pypa.io/en/stable/installing/) |
130 | 108 | 2. Install [MkDocs](https://www.mkdocs.org/getting-started/#installation). |
131 | 109 | 3. Install all the required dependencies: |
132 | 110 |
|
133 | | -``` |
| 111 | +```sh |
134 | 112 | pip install -r requirements.txt |
135 | 113 | ``` |
136 | 114 |
|
137 | | -3. While in the root directory of the doc project, run the following command to build the documentation: |
| 115 | +4. While in the root directory of the documentation project, run the following command to build the documentation: |
138 | 116 |
|
139 | 117 | ```sh |
140 | 118 | mkdocs build |
141 | 119 | ``` |
142 | | -4. Go to the ``site`` directory and open the ``index.html`` file in your web browser to see the documentation. |
143 | | -5. To automatically rebuild the documentation and reload the browser as you make changes, run the following command: |
| 120 | + |
| 121 | +5. Go to the ``site`` directory and open the ``index.html`` file in your web browser to see the documentation. |
| 122 | +6. To automatically rebuild the documentation and reload the browser as you make changes, run the following command: |
144 | 123 |
|
145 | 124 | ```sh |
146 | 125 | mkdocs serve |
147 | 126 | ``` |
148 | 127 |
|
149 | | -6. To build the PDF documentation, do the following: |
| 128 | +7. To build the PDF documentation, do the following: |
150 | 129 | - Install [mkdocs-print-site-plugin](https://timvink.github.io/mkdocs-print-site-plugin/index.html) |
151 | 130 | - Run the following command |
152 | 131 |
|
153 | 132 | ```sh |
154 | 133 | mkdocs build |
155 | 134 | ``` |
156 | 135 |
|
157 | | -This creates a single HTML page for the whole doc project. You can find the page at `site/print_page.html`. |
| 136 | +This creates a single HTML page for the whole doc project. You can find the page at `site/print_page.html`. |
| 137 | + |
| 138 | +8. Open the `site/print_page.html` in your browser and save as PDF. Depending on the browser, you may need to select the Export to PDF, Print - Save as PDF or just Save and select PDF as the output format. |
158 | 139 |
|
159 | | -7. Open the `site/print_page.html` in your browser and save as PDF. Depending on the browser, you may need to select the Export to PDF, Print - Save as PDF or just Save and select PDF as the output format. |
| 140 | +You can also view the site at <http://127.0.0.1:8000>. |
160 | 141 |
|
161 | 142 | ## Repository structure |
162 | 143 |
|
163 | 144 | The repository includes the following directories and files: |
164 | 145 |
|
165 | 146 | - `mkdocs-base.yml` - the base configuration file. It includes general settings and documentation structure. |
166 | | -- `mkdocs.yml` - configuration file. Contains the settings for building the docs on Percona website |
167 | | -- `mkdocs-pdf.yml` - configuration file. Contains the settings for building the PDF docs. |
| 147 | +- `mkdocs.yml` - configuration file. Contains the settings for building the documentation on Percona website |
168 | 148 | - `docs`: |
169 | 149 | - `*.md` - Source markdown files. |
170 | 150 | - `_images` - Images, logos and favicons |
|
0 commit comments