Changes to CDK or Low-Code Connector
Contribution Process
Open an issue, or find a similar one.
Before jumping into the code please first:
- Check if the improvement you want to make or bug you want to fix is already captured in an existing issue
- If you don't find an existing issue, either
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!
Make sure you're working on an issue had been already triaged to not have your contribution declined.
Code your contribution
- To contribute to a connector, fork the Connector repository.
- Open a branch for your work
- Code the change
- Write a unit test for each custom function you added or changed
- Ensure all tests, including connector acceptance tests, pass
- Update the
metadata.yaml
andDockerfile
version following the guidelines - Update the changelog entry in documentation in
docs/integrations/<connector-name>.md
A comment will automatically be added to your PR with a checklist containing the necessary steps to complete your contribution and get it merged.
There is a README file inside each connector folder containing instructions to run that connector's tests locally.
Pay attention to breaking changes to connectors. You can read more here.
Open a pull request
- Rebase master with your branch before submitting a pull request.
- Open the pull request.
- Follow the title convention for Pull Requests
- Link to an existing Issue
- Update the description
- Wait for a review from a community maintainer or our team.
Review process
When we review, we look at:
- Does the PR solve the issue?
- Is the proposed solution reasonable?
- Is it tested? (unit tests or integration tests)
- Is it introducing security risks?
- Is it introducing a breaking change? Once your PR passes, we will merge it 🎉.
Breaking Changes to Connectors
Often times, changes to connectors can be made without impacting the user experience. However, there are some changes that will require users to take action before they can continue to sync data. These changes are considered Breaking Changes and require a
- A Major Version increase
- A
breakingChanges
entry in thereleases
section of themetadata.yaml
file - A migration guide which details steps that users should take to resolve the change
- An Airbyte Engineer to follow the Connector Breaking Change Release Playbook before merging.
Types of Breaking Changes
A breaking change is any change that will require users to take action before they can continue to sync data. The following are examples of breaking changes:
- Spec Change - The configuration required by users of this connector have been changed and syncs will fail until users reconfigure or re-authenticate. This change is not possible via a Config Migration
- Schema Change - The type of a property previously present within a record has changed
- Stream or Property Removal - Data that was previously being synced is no longer going to be synced.
- Destination Format / Normalization Change - The way the destination writes the final data or how normalization cleans that data is changing in a way that requires a full-refresh.
- State Changes - The format of the source’s state has changed, and the full dataset will need to be re-synced