diff --git a/docs/contributing-to-airbyte/README.md b/docs/contributing-to-airbyte/README.md index 0e1255f725a4..0bf0727157cd 100644 --- a/docs/contributing-to-airbyte/README.md +++ b/docs/contributing-to-airbyte/README.md @@ -22,11 +22,13 @@ We appreciate first time contributors and we are happy to assist you in getting Here is a list of easy [good first issues](https://github.com/airbytehq/airbyte/labels/good%20first%20issue) to do. -## Steps to contributing +## Contributing to the codebase -We gladly welcome all improvements existing on the codebase. +We gladly welcome all improvements to the codebase. -### 1. Open an issue, or find a similar one. +### Steps to contributing code + +#### 1. Open an issue, or find a similar one. Before jumping into the code please first: 1. Verify if an existing [connector](https://github.com/airbytehq/airbyte/issues) or [platform](https://github.com/airbytehq/airbyte-platform/issues) GitHub issue matches your contribution project. 2. If you don't find an existing issue, create a new [connector](https://github.com/airbytehq/airbyte/issues/new/choose) or [platform](https://github.com/airbytehq/airbyte-platform/issues/new/choose) issue to explain what you want to achieve. @@ -35,19 +37,20 @@ Before jumping into the code please first: This will enable our team to make sure your contribution does not overlap with existing works and will comply with the design orientation we are currently heading the product toward. If you do not receive an update on the issue from our team, please ping us on [Slack](https://slack.airbyte.io)! -### 2. Let's code +#### 2. Code your contribution 1. To contribute to a connector, fork the [Connector repository](https://github.com/airbytehq/airbyte). To contribute to the Airbyte platform, fork our [Platform repository](https://github.com/airbytehq/airbyte-platform). -2. Open a branch for your work. -3. Code, and please write **tests**. -4. Ensure all tests pass. For connectors, this includes acceptance tests as well. -5. For connectors, make sure to increment the connector's version according to our [Semantic Versioning](#semantic-versioning-for-connectors) guidelines. +2. If contributing a new connector, check out our [new connectors guide](#new-connectors). +3. Open a branch for your work. +4. Code, and please write **tests**. +5. Ensure all tests pass. For connectors, this includes acceptance tests as well. +6. For connectors, make sure to increment the connector's version according to our [Semantic Versioning](#semantic-versioning-for-connectors) guidelines. -### 3. Open a pull request +#### 3. Open a pull request 1. Rebase master with your branch before submitting a pull request. 2. Open the pull request. 3. Wait for a review from a community maintainer or our team. -### 4. Review process +#### 4. Review process When we review, we look at: * ‌Does the PR solve the issue? * Is the proposed solution reasonable? @@ -55,7 +58,7 @@ When we review, we look at: * Is it introducing security risks? ‌Once your PR passes, we will merge it 🎉. -### **New connectors** +### New connectors It's easy to add your own connector to Airbyte! **Since Airbyte connectors are encapsulated within Docker containers, you can use any language you like.** Here are some links on how to add sources and destinations. We haven't built the documentation for all languages yet, so don't hesitate to reach out to us if you'd like help developing connectors in other languages. @@ -71,7 +74,7 @@ The CDK currently does not support creating destinations, but it will very soon. **Please note that, at no point in time, we will ask you to maintain your connector.** The goal is that the Airbyte team and the community helps maintain the connector. -### Semantic Versioning for Connectors +### Semantic versioning for connectors Changes to connector behavior should always be accompanied by a version bump and a changelog entry. We use [semantic versioning](https://semver.org/) to version changes to connectors. Since connectors are a bit different from APIs, we have our own take on semantic versioning, focusing on maintaining the best user experience of using a connector. @@ -79,7 +82,7 @@ Changes to connector behavior should always be accompanied by a version bump and - Minor: a version that introduces user-facing functionality in a backwards compatible manner - Patch: a version that introduces backwards compatible bug fixes or performance improvements -## Examples +#### Examples Here are some examples of code changes and their respective version changes: @@ -101,7 +104,12 @@ Here are some examples of code changes and their respective version changes: Trying to contribute, and don't see the change you want to make in this list? Call it out in your PR and your reviewer will help you pick the correct type of version change. Feel free to contribute the results back to this list! -### **Documentation** + +### Airbyte CI workflows +* [Testing by SonarQube](sonar-qube-workflow.md) + + +## **Contributing to documentation** Our goal is to keep our docs comprehensive and updated. If you would like to help us in doing so, we are grateful for any kind of contribution: @@ -111,7 +119,7 @@ Our goal is to keep our docs comprehensive and updated. If you would like to hel The contributing guide for docs can be found [here](updating-documentation.md). -### **Community content** +## **Contributing community content** We welcome contributions as new tutorials / showcases / articles, or to any of the existing guides on our [tutorials page](https://airbyte.com/tutorials): @@ -123,16 +131,16 @@ We have a repo dedicated to community content. Everything is documented [there]( Feel free to submit a pull request in this repo, if you have something to add even if it's not related to anything mentioned above. -## Other ways you can contribute +## Other ways to contribute -### **Upvoting issues, feature and connector requests** +### Upvoting issues, feature and connector requests You are welcome to add your own reactions to the existing issues. We will take them in consideration in our prioritization efforts, especially for connectors. ❤️ means that this task is CRITICAL to you. 👍 means it is important to you. -### **Requesting new features** +### Requesting new features To request new features, please create an issue on this project. @@ -142,21 +150,18 @@ To see what has already been proposed by the community, you can look [here](http Watch out for duplicates! If you are creating a new platform issue, please check [open](https://github.com/airbytehq/airbyte-platform/issues), or [recently closed](https://github.com/airbytehq/airbyte-platform/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20). -### **Requesting new connectors** +### Requesting new connectors This is very similar to requesting new features. The template will change a bit and all connector requests will be tagged with the “**community**” and “**area/connectors**” labels. To see what has already been proposed by the community, you can look [here](https://github.com/airbytehq/airbyte/labels/area%2Fconnectors). Again, watch out for duplicates! -### **Reporting bugs** +### Reporting bugs **‌**Bug reports help us make Airbyte better for everyone. We provide a preconfigured template for bugs to make it very clear what information we need. ‌Please search within our [already reported bugs](https://github.com/airbytehq/airbyte/issues?q=is%3Aissue+is%3Aopen+label%3Atype%2Fbug) before raising a new one to make sure you're not raising a duplicate. -### **Reporting security issues** +### Reporting security issues Please do not create a public GitHub issue. If you've found a security issue, please email us directly at [security@airbyte.io](mailto:security@airbyte.io) instead of raising an issue. - -## **Airbyte CI workflows** -* [Testing by SonarQube](sonar-qube-workflow.md)