# Contributing to API Client

First of all, we are happy you want to contribute to API Client open source project. API Client is a community driven project and we are open to your input. Before you start lets clear some things first so your contribution is accepted without unnecessary delays.

## Start with an issue report

Before you start working on any code or architecture, please, report an issue in the corresponding repository. This is crucial for open projects so the community can take a part in the discussion. Also, the project is being developed so we can predict upcoming changes. This way we will also be able to direct you in the right direction, like telling you where you can find relevant code. See below for more information.

## Code the change

### Code and PR

After you have created an issue report and picked the right repository you now are enabled to code the change. After you finish **introduce relevant tests**. We can't accept PRs that contains an untested code. After that create a PR to the relevant repository. We will get back to you as soon as possible. Heel free to mention us directly in the PR so we will get a notification from GitHub.

### Things to consider

- Introduce changes that other users will benefit from
- Significant architecture changes make take longer to be accepted giving the complexity of the dependencies. API Client has a shared code with MuleSoft's API Console. We need to ensure the stability of both projects.
- Understand the reasons for the distributed architecture and honor the structure of the project. Most likely you want to introduce changes to the `core` repository. Less likely others.
- We are here to help. Ask us questions about the architecture or how stuff work.

------

That's it. We are thrilled seeing you contributing to the project. Drop us a message in case you have any questions.
