- Sign one of the contributor license agreements below.
- Fork the repo, develop and test your code changes.
- Send a pull request.
Before we can accept your pull requests you'll need to sign a Contributor License Agreement (CLA):
- If you are an individual writing original source code and you own the intellectual property, then you'll need to sign an individual CLA.
- If you work for a company that wants to allow you to contribute your work, then you'll need to sign a corporate CLA.
You can sign these electronically (just scroll to the bottom). After that, we'll be able to accept your pull requests.
Tests are very important part of gcloud-ruby. All contributions should include tests that ensure the contributed code behaves as expected.
To run the unit tests, simply run:
$ rake test
To run the regression tests, first create and configure a project in the Google Developers Console. Be sure to download the JSON KEY file. Make note of the PROJECT_ID and the KEYFILE location on your system.
Then Install the gcloud command-line tool and use it to create the indexes used in the datastore regression tests.
From the project's root directory:
# Install the app component
$ gcloud components update app
# Set the default project in your env
$ gcloud config set project PROJECT_ID
# Authenticate the gcloud tool with your account
$ gcloud auth login
# Create the indexes
$ gcloud preview datastore create-indexes regression/data/
As soon as the indexes are prepared you can run the regression tests:
$ rake test:regression[PROJECT_ID,KEYFILE_PATH]
Or, if you prefer you can store the values in the GCLOUD_TEST_PROJECT
and GCLOUD_TEST_KEYFILE
environment variables:
$ export GCLOUD_TEST_PROJECT=my-project-id
$ export GCLOUD_TEST_KEYFILE=/path/to/keyfile.json
$ rake test:regression
If you want to use different values for Datastore vs. Storage regression tests, you can use the DATASTORE_TEST_
and STORAGE_TEST_
environment variables:
$ export DATASTORE_TEST_PROJECT=my-project-id
$ export DATASTORE_TEST_KEYFILE=/path/to/keyfile.json
$ export STORAGE_TEST_PROJECT=my-other-project-id
$ export STORAGE_TEST_KEYFILE=/path/to/other/keyfile.json
$ rake test:regression
You can run the Datstore regression tests against a devserver running locally. To switch to the devserver set the DATASTORE_HOST
environment variable with the location of the local devserver.
$ DATASTORE_HOST=http://127.0.0.1:8080 rake test:regression:datastore
Please follow the established coding style in the library. The style is is largely based on The Ruby Style Guide with a few exceptions based on seattle-style:
- Avoid parenthesis when possible, including in method definitions.
- Always use double quotes strings. (Option B)
You can check your code against these rules by running Rubocop like so:
$ rake rubocop