Hasura GraphQL engine docs are built using Sphinx. Sphinx files are written using the RST markup language.
Issues in the repo for documentation are labelled as c/docs
(see list).
Issues also labelled as good first issue
are aimed at those making their first contribution to the repo
(see list).
Issues also marked as help wanted
(see list)
are those that require community contributions.
Please note that some of these issues, labelled with both c/docs
and c/console
/c/server
, are part of a
change/task that requires modifications in some component of GraphQL engine and the docs.
Feel free to open pull requests to address these issues or to add/fix docs features/content, even if a
corresponding issue doesn't exist. If you are unsure about whether to go ahead and work on something like
the latter, please get in touch with the maintainers in the GraphQL engine
->contrib
channel in the
community Discord.
We use the fork-and-branch git workflow.
- Fork the repo and clone it:
git clone https://github.com/<your-username>/graphql-engine
- Move to the
docs
folder via the command line and checkout to a new branch:cd docs git checkout -b <new-branch-name>
- Install dependencies:
pip3 install -r requirements.txt
- For development, live reload and auto build while you're editing and saving
files:
make livehtml
- Make the required changes.
- (Optional) Build docs to produce HTML files and verify:
ENV=<development|production> make html-images
-
The generated docs are in
_build/html
. -
View the built files by running a webserver:
cd _build/html && http-server
or
cd _build/html && python3 -m http.server 8080
-
- Commit the changes. Follow the common guidelines for commit messages at the main contributing guide.
- Push the changes to your fork and submit a pull request.
In order for all the checks to pass on GitHub, it's required to do one of the following:
-
Make an entry to the
CHANGELOG.md
file (under "Next release") to describe the change from a user's perspective. -
Add the
no-changelog-required
label.
For docs, a changelog entry is required for the following:
- Entire new docs pages
- Considerable changes in the overall structure
For small changes (such as fixes, adding examples, UI changes etc.), the no-changelog-required
label will suffice.
Please follow our guide on how to write docs pages in order to keep the structure and style of our docs consistent.
- Just before committing your changes, delete your local
_build
folder completely and then build docs again. Scan the output and look for any syntax warnings (e.g. title underline too short, could not lex literal block, etc.). Ideally there should not be any syntax warnings that are being thrown.
- Docs are currently deployed manually. Changes will not reflect immediately after a PR gets merged.
- The search is powered by Algolia and is updated everyday. Your local changes will not be reflected in search results.