| # Guide to updating the Project X-Ray docs |
| |
| We welcome updates to the Project X-Ray docs. The docs are published on [Read |
| the Docs](http://prjxray.readthedocs.io) and the source is on the [docs branch on GitHub](https://github.com/SymbiFlow/prjxray/tree/docs/docs). |
| |
| The reason for using the `docs` branch is to avoid running the full CI test suite which triggers when merging anything to `master`. Ultimately of course the `docs` branch needs to be synchronized with `master`, but this can be done in bulk. |
| |
| Updating the docs is a three-step process: Make your updates, test your updates, |
| send a pull request. |
| |
| ## 1. Make your updates |
| |
| The standard Project X-Ray [contribution guidelines](CONTRIBUTING.md) apply to |
| doc updates too. |
| |
| Follow your usual process for updating content on GitHub. See GitHub's guide to |
| [working with forks](https://help.github.com/articles/working-with-forks/). |
| |
| ## 2. Test your updates |
| |
| Before sending a pull request with your doc updates, you need to check the |
| effects of your changes on the page you've updated and on the docs as a whole. |
| |
| ### Check your markup |
| |
| There are a few places on the web where you can view ReStructured Text rendered |
| as HTML. For example: |
| [https://livesphinx.herokuapp.com/](https://livesphinx.herokuapp.com/) |
| |
| ### Perform basic tests: make html and linkcheck |
| |
| If your changes are quite simple, you can perform a few basic checks before |
| sending a pull request. At minimum: |
| |
| - Check that `make html` generates output without errors |
| - Check that `make linkcheck` reports no warnings. |
| - When editing, `make livehtml` is helpful. |
| |
| To make these checks work, you need to install Sphinx. We recommend `pipenv`. |
| |
| Follow the steps below to install `pipenv` via `pip`, run `pipenv install` in |
| the `docs` directory, then run `pipenv shell` to enter an environment where |
| Sphinx and all the necessary plugins are installed: |
| |
| Steps in detail, on Linux: |
| |
| 1. Install pip: |
| |
| sudo apt install python-pip |
| |
| 1. Install pipenv - see the |
| [pipenv installation |
| guide](http://pipenv.readthedocs.io/en/latest/install/#installing-pipenv): |
| |
| pip install pipenv |
| |
| 1. Add pipenv to your path, as recommended in the |
| [pipenv installation |
| guide](http://pipenv.readthedocs.io/en/latest/install/#installing-pipenv). On |
| Linux, add this in your `~/.profile` file: |
| |
| export PATH=$PATH:~/.local/bin source ~/.profile |
| |
| Note: On OS X the path is different: `~/Library/Python/2.7/bin` |
| |
| 1. Go to the docs directory in the Project X-Ray repo: |
| |
| cd ~/github-repos/prjxray/docs |
| |
| 1. Run pipenv to install the Sphinx environment: |
| |
| pipenv install |
| |
| 1. Activate the shell: |
| |
| pipenv shell |
| |
| 1. Run the HTML build checker, and check for _errors_: |
| |
| make html |
| |
| 1. Run the link checker, and check for _warnings_: |
| |
| make linkcheck |
| |
| 1. To leave the shell, type: `exit`. |
| |
| ### Perform more comprehensive testing on your own staging doc site |
| |
| If your changes are more comprehensive, you should do a full test of your fork |
| of the docs before sending a pull request to the Project X-Ray repo. You can |
| test your fork by viewing the docs on your own copy of the Read the Docs |
| build. |
| |
| Follow these steps to create your own staging doc site on Read the Docs (RtD): |
| |
| 1. Sign up for a RtD account here: |
| [https://readthedocs.org/](https://readthedocs.org/) |
| 1. Go to your [RtD connected |
| services](https://readthedocs.org/accounts/social/connections/), click |
| **Connect to GitHub**, and connect RtD to your GitHub account. (If you |
| decide not to do this, you'll need to import your project manually in the |
| following steps.) |
| 1. Go to [your RtD dashboard](https://readthedocs.org/dashboard/). |
| 1. Click **Import a Project**. |
| 1. Add your GitHub fork of the Project X-Ray project. Give your doc site a |
| **name** that distinguishes it from the canonical Project X-Ray docs. For |
| example, `your-username-prjxray`. |
| 1. Make your doc site **protected**. See the [RtD guide to privacy |
| levels](http://docs.readthedocs.io/en/latest/privacy.html). |
| Reason for protecting your doc site: If you leave your doc site public, it |
| will appear in web searches. That may be confusing for readers who are |
| looking for the canonical Project X-Ray docs. |
| 1. Set RtD to build from your branch, rather than from `docs`. This ensures |
| that the content you see on your doc site reflect your latest updates: |
| - On [your RtD dashboard](https://readthedocs.org/dashboard/), |
| open **your project**, then go to **Admin > Advanced Settings.** |
| - Add the name of your branch in **Default branch**. This is the |
| branch that the "latest" build config points to. If you leave this field |
| empty, RtD uses `master` or `trunk`. |
| |
| 1. RtD now builds your doc site, based on the contents in your Project X-Ray |
| fork. |
| 1. See the [RtD getting-started |
| guide](https://docs.readthedocs.io/en/latest/getting_started.html#import-docs) |
| for more info. |
| |
| ## 3. Send a pull request |
| |
| Follow your standard GitHub process to send a pull request to the Project X-Ray |
| repo. See the GitHub guide to [creating a pull request from a |
| fork](https://help.github.com/articles/creating-a-pull-request-from-a-fork/). |