115 lines
4.6 KiB
Markdown
115 lines
4.6 KiB
Markdown
|
# Contributing
|
||
|
|
||
|
1. Sign one of the contributor license agreements below.
|
||
|
1. `go get golang.org/x/review/git-codereview` to install the code reviewing tool.
|
||
|
1. Get the cloud package by running `go get -d google.golang.org/cloud`.
|
||
|
1. If you have already checked out the source, make sure that the remote git
|
||
|
origin is https://code.googlesource.com/gocloud:
|
||
|
|
||
|
git remote set-url origin https://code.googlesource.com/gocloud
|
||
|
1. Make changes and create a change by running `git codereview change <name>`,
|
||
|
provide a command message, and use `git codereview mail` to create a Gerrit CL.
|
||
|
1. Keep amending to the change and mail as your recieve feedback.
|
||
|
|
||
|
## Integration Tests
|
||
|
|
||
|
Additional to the unit tests, you may run the integration test suite.
|
||
|
|
||
|
To run the integrations tests, creating and configuration of a project in the
|
||
|
Google Developers Console is required. Once you create a project, set the
|
||
|
following environment variables to be able to run the against the actual APIs.
|
||
|
|
||
|
- **GCLOUD_TESTS_GOLANG_PROJECT_ID**: Developers Console project's ID (e.g. bamboo-shift-455)
|
||
|
- **GCLOUD_TESTS_GOLANG_KEY**: The path to the JSON key file.
|
||
|
|
||
|
Create a storage bucket with the same name as the project id set in **GCLOUD_TESTS_GOLANG_PROJECT_ID**.
|
||
|
The storage integration test will create and delete some objects in this bucket.
|
||
|
|
||
|
Install the [gcloud command-line tool][gcloudcli] to your machine and use it
|
||
|
to create the indexes used in the datastore integration tests with indexes
|
||
|
found in `datastore/testdata/index.yaml`:
|
||
|
|
||
|
From the project's root directory:
|
||
|
|
||
|
``` sh
|
||
|
# Install the app component
|
||
|
$ gcloud components update app
|
||
|
|
||
|
# Set the default project in your env
|
||
|
$ gcloud config set project $GCLOUD_TESTS_GOLANG_PROJECT_ID
|
||
|
|
||
|
# Authenticate the gcloud tool with your account
|
||
|
$ gcloud auth login
|
||
|
|
||
|
# Create the indexes
|
||
|
$ gcloud preview datastore create-indexes datastore/testdata/index.yaml
|
||
|
|
||
|
```
|
||
|
|
||
|
You can run the integration tests by running:
|
||
|
|
||
|
``` sh
|
||
|
$ go test -v -tags=integration google.golang.org/cloud/...
|
||
|
```
|
||
|
|
||
|
## Contributor License Agreements
|
||
|
|
||
|
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][indvcla].
|
||
|
- **If you work for a company that wants to allow you to contribute your work**,
|
||
|
then you'll need to sign a [corporate CLA][corpcla].
|
||
|
|
||
|
You can sign these electronically (just scroll to the bottom). After that,
|
||
|
we'll be able to accept your pull requests.
|
||
|
|
||
|
## Contributor Code of Conduct
|
||
|
|
||
|
As contributors and maintainers of this project,
|
||
|
and in the interest of fostering an open and welcoming community,
|
||
|
we pledge to respect all people who contribute through reporting issues,
|
||
|
posting feature requests, updating documentation,
|
||
|
submitting pull requests or patches, and other activities.
|
||
|
|
||
|
We are committed to making participation in this project
|
||
|
a harassment-free experience for everyone,
|
||
|
regardless of level of experience, gender, gender identity and expression,
|
||
|
sexual orientation, disability, personal appearance,
|
||
|
body size, race, ethnicity, age, religion, or nationality.
|
||
|
|
||
|
Examples of unacceptable behavior by participants include:
|
||
|
|
||
|
* The use of sexualized language or imagery
|
||
|
* Personal attacks
|
||
|
* Trolling or insulting/derogatory comments
|
||
|
* Public or private harassment
|
||
|
* Publishing other's private information,
|
||
|
such as physical or electronic
|
||
|
addresses, without explicit permission
|
||
|
* Other unethical or unprofessional conduct.
|
||
|
|
||
|
Project maintainers have the right and responsibility to remove, edit, or reject
|
||
|
comments, commits, code, wiki edits, issues, and other contributions
|
||
|
that are not aligned to this Code of Conduct.
|
||
|
By adopting this Code of Conduct,
|
||
|
project maintainers commit themselves to fairly and consistently
|
||
|
applying these principles to every aspect of managing this project.
|
||
|
Project maintainers who do not follow or enforce the Code of Conduct
|
||
|
may be permanently removed from the project team.
|
||
|
|
||
|
This code of conduct applies both within project spaces and in public spaces
|
||
|
when an individual is representing the project or its community.
|
||
|
|
||
|
Instances of abusive, harassing, or otherwise unacceptable behavior
|
||
|
may be reported by opening an issue
|
||
|
or contacting one or more of the project maintainers.
|
||
|
|
||
|
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0,
|
||
|
available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
|
||
|
|
||
|
[gcloudcli]: https://developers.google.com/cloud/sdk/gcloud/
|
||
|
[indvcla]: https://developers.google.com/open-source/cla/individual
|
||
|
[corpcla]: https://developers.google.com/open-source/cla/corporate
|