Skip to content

Latest commit

 

History

History
179 lines (121 loc) · 7.63 KB

CONTRIBUTING.md

File metadata and controls

179 lines (121 loc) · 7.63 KB

Contributing Guide

Thank you for deciding to contribute and help us improve Percona Distribution for PostgreSQL documentation!

We welcome contributors from all users and community. By contributing, you agree to the Percona Community code of conduct.

You can contribute to documentation in the following ways:

  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.

    • Click the Submit DOC bug link on the sidebar. This opens the Jira issue tracker for the doc project.
    • Sign in (create a Jira account if you don’t have one) and click Create to create an issue.
    • Describe the issue you have detected in the Summary, Description, Steps To Reproduce, Affects Version fields.
  2. Contribute to documentation yourself. There is the Edit this page link 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.

Contribute to documentation

Percona Distribution for PostgreSQL documentation is written in Markdown language, so you can edit it online via GitHub. If you wish to have more control over the doc process, jump to how to edit documentation locally.

To contribute to the documentation, you should be familiar with the following technologies:

  • Markdown markup language. It is used to write the documentation.
  • MkDocs documentation generator. We use it to convert source .md files to html and PDF documents.
  • git and GitHub
  • Docker. It allows you to run MkDocs in a virtual environment instead of installing it and its dependencies on your machine.

There are several active versions of the documentation. Each version derives from the major version of PostgreSQL, included in the distribution.

Each version has a branch in the repository named accordingly:

  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

The source .md files are in the docs directory.

Edit documentation online via GitHub

  1. Click the Edit this page link on the sidebar. 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 of it for you.

  2. Edit the page. You can check your changes on the Preview tab.

  3. Commit your changes.

    • In the Commit changes section, describe your changes.
    • Select the Create a new branch for this commit and start a pull request option
    • Click Propose changes.
  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.

  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.

Edit documentation locally

This option is for users who prefer to work from their computer and / or have the full control over the documentation process.

The steps are the following:

  1. Fork this repository
  2. Clone the repository on your machine:
git clone git@github.com:percona/postgresql-docs.git
  1. Change the directory to postgresql-docs and add your local repository:
git remote add <your-repo-name> git@github.com:<your_name>/postgresql-docs.git
  1. Pull the latest changes
git fetch origin
git merge origin/<branch>

Make sure that your local branch and the branch you merge changes from are the same. So if you are on 14 branch, merge changes from origin/14.

  1. Create a separate branch for your changes
git checkout -b <my_changes>
  1. Make changes
  2. Commit your changes
  3. Open a pull request to Percona

Building the documentation

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:

Learn more about the documentation structure in the Repository structure section.

Use Docker

  1. Get Docker
  2. We use this Docker image to build documentation. Run the following command:
docker run --rm -v $(pwd):/docs perconalab/pmm-doc-md mkdocs build

If Docker can't find the image locally, it first downloads the image, and then runs it to build the documentation.

  1. Go to the site directory and open the index.html file to see the documentation.
  2. To view your changes as you make them, run the following command:
docker run --rm -p 8000:8000 -v $(pwd):/docs perconalab/pmm-doc-md mkdocs serve -a 0.0.0.0:8000
  1. To create a PDF version of the documentation, run the following command:
docker run --rm -v $(pwd):/docs perconalab/pmm-doc-md mkdocs build -f mkdocs-pdf.yml

The PDF document is in the site/pdf folder.

Install MkDocs and build locally

  1. Install pip

  2. Install MkDocs.

  3. While in the root directory of the doc project, run the following command to build the documentation:

    mkdocs build 
  4. Go to the site directory and open the index.html file in your web browser to see the documentation.

  5. To automatically rebuild the documentation and reload the browser as you make changes, run the following command:

    mkdocs serve 
  6. To build the PDF documentation, do the following:

    mkdocs build -f mkdocs-pdf.yml

The PDF document is in the site/pdf folder.

Repository structure

The repository includes the following directories and files:

  • mkdocs-base.yml - the base configuration file. It includes general settings and documentation structure.
  • mkdocs.yml - configuration file. Contains the settings for building the docs with Material theme.
  • mkdocs-pdf.yml - configuration file. Contains the settings for building the PDF docs.
  • docs:
    • *.md - Source markdown files.
    • _images - Images, logos and favicons
    • css - Styles
    • js - Javascript files
  • _resource:
    • templates:
      • styles.scss - Styling for PDF documents
    • theme:
      • main.html - The layout template for hosting the documentation on Percona website
    • overrides - The folder with the Material theme template customization for builds
  • .github:
    • workflows:
      • main.yml - The workflow configuration for building documentation with a GitHub action. (The documentation is built with mike tool to a dedicated publish branch)
  • site - This is where the output HTML files are put after the build