airbytehq / airbyte

The leading data integration platform for ETL / ELT data pipelines from APIs, databases & files to data warehouses, data lakes & data lakehouses. Both self-hosted and Cloud-hosted.
https://airbyte.com
Other
16.07k stars 4.11k forks source link

Decouple connector development from Airbyte monorepo #11058

Open sherifnada opened 2 years ago

sherifnada commented 2 years ago

Tell us about the problem you're trying to solve

Today connectors generated via the connector development process are created inside the Airbyte repository. It is not well documented or supported how a developer can decouple this code from the Airbyte repo, taking into account not only which repo the code lives in, but especially CI/CD. All of this must be setup from scratch in a custom way by the connector developer. This inhibits the adoption of custom connectors via Airbyte, as the monorepo becomes a bottleneck.

Describe the solution you’d like

I want the connector generator:

noahkawasakigoogle commented 2 years ago

+100!

Other ideas I've thought of, related:

Probably lots of build dependency stuff from airbyte core that needs to be reworked to support extracting so much stuff out of the main repo for this vision.

sherifnada commented 2 years ago

Yup agreed on a lot of the functionality proposed here. We can probably do these things separately (improve the generator is separate from splitting it out of the airbyte repo, though one could copy a file/directory directly out of the GitHub monorepo instead of clone the whole repo). I would love to find a path that doesn't require airbyte devs to work across two/more repos if possible.

girarda commented 2 years ago

To give a sense of urgency to this ticket: cloning the repo now takes more than one minute, which is not a good first step for first-time connector developers.

justinzamm commented 1 year ago

Stumbled into this while doing my research. Can someone guide me and let me know if the following is possible at the moment please.

For some context I am building a script which will automate the generation of a connector, copies a manifest file and pushes the connector as a Docker image to a repository.