mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-13 19:33:55 +03:00
add contributing guidelines for server (#104)
This commit is contained in:
parent
186340c156
commit
79d7b497c9
@ -1,20 +1,67 @@
|
||||
# Contributing
|
||||
# Contributing to Hasura graphql-engine
|
||||
|
||||
[hasura/graphql-engine](https://github.com/hasura/graphql-engine) is a mono-repo consisting of 3 components. Each have their own contributing guides:
|
||||
*First*: if you're unsure or afraid of anything, just ask or submit the issue or
|
||||
pull request anyway. You won't be yelled at for giving your best effort. The
|
||||
worst that can happen is that you'll be politely asked to change something. We
|
||||
appreciate any sort of contributions, and don't want a wall of rules to get in
|
||||
the way of that.
|
||||
|
||||
However, for those individuals who want a bit more guidance on the best way to
|
||||
contribute to the project, read on. This document will cover what we're looking
|
||||
for. By addressing all the points we're looking for, it raises the chances we
|
||||
can quickly merge or address your contributions.
|
||||
|
||||
|
||||
## Overview
|
||||
|
||||
[hasura/graphql-engine](https://github.com/hasura/graphql-engine) is a mono-repo
|
||||
consisting of 3 components. Each have their own contributing guides:
|
||||
|
||||
1. [Server (Haskell)](server/CONTRIBUTING.md)
|
||||
2. [CLI (Go)](cli/CONTRIBUTING.md)
|
||||
3. [Console (JavaScript)](console/CONTRIBUTING.md)
|
||||
|
||||
All of the three components have a single version, denoted by either the git tag or a combination of branch name and git commit sha.
|
||||
All of the three components have a single version, denoted by either the git
|
||||
tag, or a combination of branch name and git commit SHA.
|
||||
|
||||
## Issues
|
||||
|
||||
### Reporting an Issue
|
||||
|
||||
- Make sure you test against the latest released version. It is possible we
|
||||
already fixed the bug you're experiencing.
|
||||
|
||||
- Also check the `CHANGELOG.md` to see if any unreleased changes affect the issue.
|
||||
|
||||
- Provide steps to reproduce the issue, including Postgres version,
|
||||
graphql-engine version and the provider you are running on (Heroku, Docker
|
||||
etc.).
|
||||
|
||||
- Please include logs of the server, if relevant.
|
||||
|
||||
|
||||
## Common guidelines
|
||||
|
||||
- Please make sure there is an issue associated with the work the work you're doing.
|
||||
- If you're working on an issue, please comment that you are doing so to prevent duplicate work by others also.
|
||||
- Squash your commits and refer to the issue using `fix #<issue-no>` or `close #<issue-no>` in the commit message.
|
||||
- Commit messages:
|
||||
- Please keep the it under 100 characters. This allows the message to be easier to read on github as well as in various git tools and produces a nice, neat commit log
|
||||
- Use the imperative present tense: "change" not "changed" nor "changes"
|
||||
- Don't capitalize the first letter
|
||||
- Do not add a dot (.) at the end
|
||||
- Please make sure there is an issue associated with the work that you're doing.
|
||||
|
||||
- If you're working on an issue, please comment that you are doing so to prevent
|
||||
duplicate work by others also.
|
||||
|
||||
- Squash your commits and refer to the issue using `fix #<issue-no>` or `close
|
||||
#<issue-no>` in the commit message, at the end.
|
||||
For example: `resolve answers to everything (fix #42)` or `resolve answers to everything, fix #42`
|
||||
|
||||
## Commit messages
|
||||
|
||||
- The first line should be a summary of the changes - not execeeding 50
|
||||
characters. Followed by an optional body which has more details about the
|
||||
changes. (https://github.com/erlang/otp/wiki/writing-good-commit-messages)
|
||||
|
||||
- Use the imperative present tense: "add/fix/change", not "added/fixed/changed" nor "adds/fixes/changes".
|
||||
|
||||
- Don't capitalize the first letter of the summary line.
|
||||
|
||||
- Do not add a period/dot (.) at the end in the summary line.
|
||||
|
||||
|
||||
(Credits: Some sections are adapted from https://github.com/PostgREST/postgrest/blob/master/.github/CONTRIBUTING.md)
|
||||
|
@ -1,3 +1,45 @@
|
||||
# Contributing
|
||||
|
||||
TODO
|
||||
This guide is for setting-up the graphql-engine server for development on your
|
||||
own machine, and how to contribute.
|
||||
|
||||
## Pre-requisites
|
||||
|
||||
- [stack](https://docs.haskellstack.org/en/stable/README/#how-to-install)
|
||||
- A postgres server (Recommended: Use docker to run a local postgres instance)
|
||||
- GNU Make (optional)
|
||||
|
||||
## Development workflow
|
||||
|
||||
### Fork and clone
|
||||
- Fork the repo on GitHub
|
||||
- Clone your forked repo: `git clone https://github.com/<your-username>/graphql-engine`
|
||||
|
||||
### Compile
|
||||
- `cd graphql-engine`
|
||||
- `stack build --fast`
|
||||
|
||||
### Run
|
||||
- Make sure postgres is running
|
||||
- Create a database on postgres
|
||||
- Run the binary: `stack exec graphql-engine -- --database-url=<database-url>`
|
||||
|
||||
### Work
|
||||
- Work on the feature/fix
|
||||
- Add testcases if relevant
|
||||
|
||||
### Test
|
||||
- Run tests: `stack test --ta --database-url=<database-url>`
|
||||
|
||||
### Create Pull Request
|
||||
- Make sure your commit messages meet the [guidelines](../CONTRIBUTING.md).
|
||||
- Create a pull request from your forked repo to the main repo.
|
||||
- Every pull request will automatically build and run the tests.
|
||||
|
||||
## Code conventions
|
||||
|
||||
This helps enforce a uniform style for all committers.
|
||||
|
||||
- Compiler warnings are turned on, make sure your code has no warnings.
|
||||
- Use [hlint](https://github.com/ndmitchell/hlint) to make sure your code has no warnings.
|
||||
- Use [stylish-haskell](https://github.com/jaspervdj/stylish-haskell) to format your code.
|
||||
|
Loading…
Reference in New Issue
Block a user