summaryrefslogtreecommitdiffstats
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
authorElmer Thomas <elmer@thinkingserious.com>2016-05-18 14:01:41 -0700
committerElmer Thomas <elmer@thinkingserious.com>2016-05-18 14:01:41 -0700
commitf9eb9b27bb42fee6ade548fc4c3a66b230a54543 (patch)
treef62fe4f36d9677aee5c3b620bd064424802b9b9a /CONTRIBUTING.md
parent36bb25d1d6026ac4ab8574f0b8a7bbd1f91c5faa (diff)
downloadphp-http-client-f9eb9b27bb42fee6ade548fc4c3a66b230a54543.zip
php-http-client-f9eb9b27bb42fee6ade548fc4c3a66b230a54543.tar.gz
php-http-client-f9eb9b27bb42fee6ade548fc4c3a66b230a54543.tar.bz2
Updated to conform to SendGrid's new Open Source policies
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md108
1 files changed, 55 insertions, 53 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b5fd677..87c84ac 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,14 +1,28 @@
-Hello! Thank you for choosing to help contribute to the php-http-client. There are many ways you can contribute and help is always welcome.
-
+Hello! Thank you for choosing to help contribute to one of the SendGrid open source projects. There are many ways you can contribute and help is always welcome. We simply ask that you follow the following contribution policies.
+
+- [CLAs and CCLAs](#cla)
+- [Roadmap & Milestones](#roadmap)
+- [Feature Request](#feature_request)
+- [Submit a Bug Report](#submit_a_bug_report)
+- [Improvements to the Codebase](#improvements_to_the_codebase)
+- [Understanding the Code Base](#understanding_the_codebase)
+- [Testing](#testing)
+- [Style Guidelines & Naming Conventions](#style_guidelines_and_naming_conventions)
+- [Creating a Pull Request](#creating_a_pull_request)
+
+<a name="roadmap"></a>
We use [Milestones](https://github.com/sendgrid/php-http-client/milestones) to help define current roadmaps, please feel free to grab an issue from the current milestone. Please indicate that you have begun work on it to avoid collisions. Once a PR is made, community review, comments, suggestions and additional PRs are welcomed and encouraged.
-* [Feature Request](#feature_request)
-* [Submit a Bug Report](#submit_a_bug_report)
-* [Improvements to the Codebase](#improvements_to_the_codebase)
-* [Understanding the Code Base](#understanding_the_codebase)
-* [Testing](#testing)
-* [Style Guidelines & Naming Conventions](#style_guidelines_and_naming_conventions)
-* [Creating a Pull Request](#creating_a_pull_request)
+<a name="cla"></a>
+## CLAs and CCLAs
+
+Before you get started, SendGrid requires that a SendGrid Contributor License Agreement (CLA) or a SendGrid Company Contributor Licensing Agreement (CCLA) be filled out by every contributor to a SendGrid open source project.
+
+Our goal with the CLA and CCLA is to clarify the rights of our contributors and reduce other risks arising from inappropriate contributions. The CLA also clarifies the rights SendGrid holds in each contribution and helps to avoid misunderstandings over what rights each contributor is required to grant to SendGrid when making a contribution. In this way the CLA and CCLA encourage broad participation by our open source community and help us build strong open source projects, free from any individual contributor withholding or revoking rights to any contribution.
+
+SendGrid does not merge a pull request made against a SendGrid open source project until that pull request is associated with a signed CLA (or CCLA). Copies of the CLA and CCLA are available [here](https://drive.google.com/a/sendgrid.com/file/d/0B0PlcM9qA91LN2VEUTJWU2RIVXc/view).
+
+You may submit your completed [CLA or CCLA](https://drive.google.com/a/sendgrid.com/file/d/0B0PlcM9qA91LN2VEUTJWU2RIVXc/view) to SendGrid at [dx@sendgrid.com](mailto:dx@sendgrid.com). SendGrid will then confirm you are ready to begin making contributions.
There are a few ways to contribute, which we'll enumerate below:
@@ -37,29 +51,7 @@ Before you decide to create a new issue, please try the following:
### Please use our Bug Report Template
-In order to make the process easier, we've included a sample bug report template (borrowed from [Ghost](https://github.com/TryGhost/Ghost/)). The template uses [GitHub flavored markdown](https://help.github.com/articles/github-flavored-markdown/) for formatting.
-
-```
-Short and descriptive example bug report title
-
-#### Issue Summary
-
-A summary of the issue and the environment in which it occurs. If suitable, include the steps required to reproduce the bug. Please feel free to include screenshots, screencasts, code examples.
-
-
-#### Steps to Reproduce
-
-1. This is the first step
-2. This is the second step
-3. Further steps, etc.
-
-Any other information you want to share that is relevant to the issue being reported. Especially, why do you consider this to be a bug? What do you expect to happen instead?
-
-#### Technical details:
-
-* php-http-client Version: master (latest commit: 2cb34372ef0f31352f7c90015a45e1200cb849da)
-* PHP Version: 5.6
-```
+In order to make the process easier, we've included a [sample bug report template](https://github.com/sendgrid/php-http-client/.github/ISSUE_TEMPLATE) (borrowed from [Ghost](https://github.com/TryGhost/Ghost/)). The template uses [GitHub flavored markdown](https://help.github.com/articles/github-flavored-markdown/) for formatting.
<a name="improvements_to_the_codebase"></a>
## Improvements to the Codebase
@@ -68,27 +60,35 @@ We welcome direct contributions to the php-http-client code base. Thank you!
### Development Environment ###
-#### Install and run locally ####
+#### Install and Run Locally ####
##### Prerequisites #####
-* PHP 5.2 through 5.6
-* [Composer](https://getcomposer.org/)
+- PHP 5.2 through 5.6
+- [Composer](https://getcomposer.org/)
##### Initial setup: #####
-```
+```bash
git clone https://github.com/sendgrid/php-http-client.git
cd php-http-client
-cp .env_sample .env
```
-Update your settings in `.env`
+## Environment Variables
-##### Execute: #####
+First, get your free SendGrid account [here](https://sendgrid.com/free?source=php-http-client).
+
+Next, update your environment with your [SENDGRID_API_KEY](https://app.sendgrid.com/settings/api_keys).
-See the [examples folder](https://github.com/sendgrid/php-http-client/tree/master/examples) to get started quickly.
+```bash
+echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env
+echo "sendgrid.env" >> .gitignore
+source ./sendgrid.env
+```
+##### Execute: #####
+
+See the [examples folder](https://github.com/sendgrid/php-http-client/tree/master/examples
<a name="understanding_the_codebase"></a>
## Understanding the Code Base
@@ -96,7 +96,11 @@ See the [examples folder](https://github.com/sendgrid/php-http-client/tree/maste
Working examples that demonstrate usage.
-**client.php**
+**/test/unit**
+
+Unit tests.
+
+**/lib/SendGrid/Client.php**
An HTTP client with a fluent interface using method chaining and reflection. By returning self on [__call](https://github.com/sendgrid/php-http-client/blob/master/lib/client.php#L212) and [_()](https://github.com/sendgrid/php-http-client/blob/master/lib/client.pph#L198), we can dynamically build the URL using method chaining and [__call](https://github.com/sendgrid/php-http-client/blob/master/lib/client.php#L212) allows us to dynamically receive the method calls to achieve reflection.
@@ -104,7 +108,7 @@ This allows for the following mapping from a URL to a method chain:
`/api_client/{api_key_id}/version` maps to `client->api_client().->_($api_key_id)->version-><method>()` where <method> is a [HTTP verb](https://github.com/sendgrid/php-http-client/blob/master/lib/client.php#L94).
-**config.php**
+**/lib/SendGrid/Config.php**
Loads the environment variables.
@@ -113,26 +117,24 @@ Loads the environment variables.
All PRs require passing tests before the PR will be reviewed.
-All test files are in the `[test/unit](https://github.com/sendgrid/php-http-client/tree/master/test/unit)` directory.
+All test files are in the [`/test/unit`](https://github.com/sendgrid/php-http-client/tree/master/test/unit) directory.
For the purposes of contributing to this repo, please update the [`ClientTest.php`](https://github.com/sendgrid/php-http-client/blob/master/test/unit/ClientTest.php) file with unit tests as you modify the code.
-`phpunit --bootstrap test/unit/bootstrap.php --filter test* test/unit`
+```bash
+phpunit --bootstrap test/unit/bootstrap.php --filter test* test/unit
+```
<a name="style_guidelines_and_naming_conventions"></a>
## Style Guidelines & Naming Conventions
Generally, we follow the style guidelines as suggested by the official language. However, we ask that you conform to the styles that already exist in the library. If you wish to deviate, please explain your reasoning.
-* [pear coding standards](https://pear.php.net/manual/en/standards.php)
-
-Please run your code through [PHP Code Sniffer](https://github.com/squizlabs/PHP_CodeSniffer)
+- [pear coding standards](https://pear.php.net/manual/en/standards.php)
-### Directory Structure
+Please run your code through:
-* `examples`, for example calls
-* `test\unit`, for all tests
-* 'lib`, for source code
+- [PHP Code Sniffer](https://github.com/squizlabs/PHP_CodeSniffer)
## Creating a Pull Request<a name="creating_a_pull_request"></a>
@@ -143,7 +145,7 @@ Please run your code through [PHP Code Sniffer](https://github.com/squizlabs/PHP
# Clone your fork of the repo into the current directory
git clone https://github.com/sendgrid/php-http-client
# Navigate to the newly cloned directory
- cd php-http-client
+ cd sendgrid-python
# Assign the original repo to a remote called "upstream"
git remote add upstream https://github.com/sendgrid/php-http-client
```
@@ -187,4 +189,4 @@ Please run your code through [PHP Code Sniffer](https://github.com/squizlabs/PHP
7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
with a clear title and description against the `master` branch. All tests must be passing before we will review the PR.
-If you have any additional questions, please feel free to [email](mailto:dx@sendgrid.com) us or create an issue in this repo.
+If you have any additional questions, please feel free to [email](mailto:dx@sendgrid.com) us or create an issue in this repo. \ No newline at end of file