blob: 3b89072dab0f67e77faa0f0a774a00aa5bdf5723 [file] [view]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# Guidance on how to contribute
> All contributions to this project will be released under the [Apache 2.0 License](LICENSE). .
> By submitting a pull request or filing a bug, issue, or
> feature request, you are agreeing to comply with this waiver of copyright interest.
> You're also agreeing to abide by the ASF Code of Conduct (https://www.apache.org/foundation/policies/conduct.html)
There are two primary ways to help:
- Using the issue tracker, and
- Changing the code-base.
## Using the issue tracker
Use the issue tracker to suggest feature requests, report bugs, and ask questions.
This is also a great way to connect with the developers of the project as well
as others who are interested in this solution.
Use the issue tracker to find ways to contribute. Find a bug or a feature, mention in
the issue that you will take on that effort, then follow the _Changing the code-base_
guidance below.
## Changing the code-base
Generally speaking, you should fork this repository, make changes in your
own fork, and then submit a pull request. All new code should have associated
unit tests that validate implemented features and the presence or lack of defects.
Additionally, the code should follow any stylistic and architectural guidelines
prescribed by the project. For us here, this means you install a pre-commit hook and use
the given style files. Basically, you should mimic the styles and patterns in the Apache Hamilton code-base.
In terms of getting setup to develop, we invite you to read our [developer setup guide](developer_setup.md).
## Using circleci CLI to run tests locally
1. Install the [circleci CLI](https://circleci.com/docs/2.0/local-cli/).
2. To run a circleci job locally, you should then, from the root of the repository, do
> circleci local execute --job=JOB_NAME
3. This assumes you have docker installed, it will pull the images, but otherwise will run the circleci job.