1# Contributing
2
31. Sign one of the contributor license agreements below.
41. Get the package:
5
6    `go get -d google.golang.org/appengine`
71. Change into the checked out source:
8
9    `cd $GOPATH/src/google.golang.org/appengine`
101. Fork the repo.
111. Set your fork as a remote:
12
13    `git remote add fork git@github.com:GITHUB_USERNAME/appengine.git`
141. Make changes, commit to your fork.
151. Send a pull request with your changes.
16   The first line of your commit message is conventionally a one-line summary of the change, prefixed by the primary affected package, and is used as the title of your pull request.
17
18# Testing
19
20## Running system tests
21
22Download and install the [Go App Engine SDK](https://cloud.google.com/appengine/docs/go/download). Make sure the `go_appengine` dir is in your `PATH`.
23
24Set the `APPENGINE_DEV_APPSERVER` environment variable to `/path/to/go_appengine/dev_appserver.py`.
25
26Run tests with `goapp test`:
27
28```
29goapp test -v google.golang.org/appengine/...
30```
31
32## Contributor License Agreements
33
34Before we can accept your pull requests you'll need to sign a Contributor
35License Agreement (CLA):
36
37- **If you are an individual writing original source code** and **you own the
38intellectual property**, then you'll need to sign an [individual CLA][indvcla].
39- **If you work for a company that wants to allow you to contribute your work**,
40then you'll need to sign a [corporate CLA][corpcla].
41
42You can sign these electronically (just scroll to the bottom). After that,
43we'll be able to accept your pull requests.
44
45## Contributor Code of Conduct
46
47As contributors and maintainers of this project,
48and in the interest of fostering an open and welcoming community,
49we pledge to respect all people who contribute through reporting issues,
50posting feature requests, updating documentation,
51submitting pull requests or patches, and other activities.
52
53We are committed to making participation in this project
54a harassment-free experience for everyone,
55regardless of level of experience, gender, gender identity and expression,
56sexual orientation, disability, personal appearance,
57body size, race, ethnicity, age, religion, or nationality.
58
59Examples of unacceptable behavior by participants include:
60
61* The use of sexualized language or imagery
62* Personal attacks
63* Trolling or insulting/derogatory comments
64* Public or private harassment
65* Publishing other's private information,
66such as physical or electronic
67addresses, without explicit permission
68* Other unethical or unprofessional conduct.
69
70Project maintainers have the right and responsibility to remove, edit, or reject
71comments, commits, code, wiki edits, issues, and other contributions
72that are not aligned to this Code of Conduct.
73By adopting this Code of Conduct,
74project maintainers commit themselves to fairly and consistently
75applying these principles to every aspect of managing this project.
76Project maintainers who do not follow or enforce the Code of Conduct
77may be permanently removed from the project team.
78
79This code of conduct applies both within project spaces and in public spaces
80when an individual is representing the project or its community.
81
82Instances of abusive, harassing, or otherwise unacceptable behavior
83may be reported by opening an issue
84or contacting one or more of the project maintainers.
85
86This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0,
87available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
88
89[indvcla]: https://developers.google.com/open-source/cla/individual
90[corpcla]: https://developers.google.com/open-source/cla/corporate
91