|
| 1 | +## Welcome to the SendGrid Open Source Community |
| 2 | + If you are new to Open Source, you are at the right place to start with. Contributions are always encouraged & appreciated. Just follow the organisation's Contribution Policies & you are good to go. |
| 3 | + ## How to get Started? |
| 4 | + - [Explore SendGrid](#explore) |
| 5 | + - [Raise Issues(If Found Any)](#issues) |
| 6 | + - [Setting up the Development Environment](#setup) |
| 7 | + - [Proposing Change through a Pull Request](#pr) |
| 8 | + - [Be Patient & Wait for reviews](#reviews) |
| 9 | + |
| 10 | + <a name="explore"></a> |
| 11 | + ### Explore SendGrid |
| 12 | +Step 1: Get yourself Access to SendGrid API Service absolutely free from [here](https://sendgrid.com/free/?source=sendgrid-python)\ |
| 13 | +Step 2: Get familiar with SendGrid Service |
| 14 | + - Prerequisites are Python version 2.6, 2.7, 3.4, 3.5 or 3.6 |
| 15 | + - Set up your [SendGrid API Key](https://app.sendgrid.com/settings/api_keys) to your local workspace [using](https://github.com/sendgrid/sendgrid-python#setup-environment-variables) |
| 16 | + - Install SendGrid to your workspace using `pip install sendgrid` |
| 17 | + - Copy & Run few sample programs from [here](https://github.com/sendgrid/sendgrid-python#hello-email) |
| 18 | + |
| 19 | + |
| 20 | + <a name="issues"></a> |
| 21 | + ### Raise Issues |
| 22 | + SendGrid uses GitHub as the content management service so, all the issues related to the project be it some feature request or a bug report, all are reported at the [GitHub Issue Tracker](https://github.com/sendgrid/sendgrid-python/issues)\ |
| 23 | + Kindly make sure, to check for any duplicate issues raised by fellow contributors before opening a new issue. Be humble & polite while commenting on issues |
| 24 | + - Feature Request\ |
| 25 | + In case you feel like something is missing or lacking in the API Service, feel free to share your views & opinions with the community |
| 26 | + - Bug Report\ |
| 27 | + If you encounter any sort of bug or abnormal behavior, feel free to inform the community after performing the following checks: |
| 28 | + - Update to the latest version & check if the bug persists |
| 29 | + - Check the Issue Tracker for any similar bug report |
| 30 | + |
| 31 | + Finally fill up the Bug Report Template & Open the Issue highlighting your encountered bug & detailed steps to regenerate the bug. |
| 32 | + |
| 33 | + <a name="setup"></a> |
| 34 | + ### Setting up the Development Environment |
| 35 | + - **Using Docker**\ |
| 36 | + Use our Docker image to avoid setting up the development environment yourself. See [USAGE.md](https://github.com/sendgrid/sendgrid-python/blob/master/docker/USAGE.md) |
| 37 | + |
| 38 | + - **Setting up Locally**\ |
| 39 | + Step 1: Install the Prerequistes: Any Version of Python(2.6 through 3.6) & [python_http_client](https://github.com/sendgrid/python-http-client)\ |
| 40 | + Step 2: Get a local copy of repository using `git clone https://github.com/sendgrid/sendgrid-python.git`\ |
| 41 | + Step 3: Set your [SendGrid API Key](https://app.sendgrid.com/settings/api_keys) to your local workspace using\ |
| 42 | + `echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env`\ |
| 43 | + `echo "sendgrid.env" >> .gitignore`\ |
| 44 | + `source ./sendgrid.env`\ |
| 45 | + Step 4: The entire codebase consist of 3 major divisions |
| 46 | + - **/examples** contains *Working examples that demonstrate usage* |
| 47 | + - **/tests** contains *the unit and profiling tests* |
| 48 | + - **/sendgrid** contains *the Web API v3 client ie sendgrid.py and other files*. |
| 49 | + |
| 50 | + |
| 51 | + <a name="pr"></a> |
| 52 | + ## Proposing Change through a Pull Request |
| 53 | + **Step 1:** Fork the project & Clone your fork using `git clone https://github.com/<USERNAME>/sendgrid-python.git` |
| 54 | + |
| 55 | + **Step 2:** Reconfigure the remotes using `cd sendgrid-python` and `git remote add upstream https://github.com/sendgrid/sendgrid-python.git` |
| 56 | + |
| 57 | + **Step 3:** Create a new branch for your modifications using `git checkout -b <topic-branch-name>` |
| 58 | + |
| 59 | + **Step 4:** Commit the changes in logical chunks & add commit messages strictly following [this](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) |
| 60 | + |
| 61 | + **Step 5:** Run all test locally, [for more info](https://github.com/sendgrid/sendgrid-python/blob/master/CONTRIBUTING.md#testing) |
| 62 | + |
| 63 | + **Step 6:** Locally merge your the upstream development branch into your topic-branch using `git pull [--rebase] upstream master` |
| 64 | + |
| 65 | + **Step 7:** Push the topic branch up to your fork using `git push origin <topic-branch-name>` |
| 66 | + |
| 67 | + **Step 8:** Open a Pull Request with clear title and description against the master branch. |
| 68 | + |
| 69 | + In case, you have additional questions, feel free to drop a [mail ]([email protected]) or open an issue. |
| 70 | + |
| 71 | + <a name="reviews"></a> |
| 72 | + ## Be Patient & Wait for Reviews |
| 73 | + Kindly be patient & follow the suggestions as provided by the peer reviewers. Make required ammendments & changes to the PR as asked. |
| 74 | + |
| 75 | +## [Explore New Issues to work upon](https://github.com/sendgrid/sendgrid-python/labels/difficulty%3A%20easy) |
0 commit comments