-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update Pipelines folder structure #31525
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Ignored Deployment
|
@@ -42,9 +41,12 @@ async def download(context: ConnectorContext, gcp_gsm_env_variable_name: str = " | |||
Returns: | |||
Directory: A directory with the downloaded secrets. | |||
""" | |||
# temp - fix circular import |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very cool changes! Thank you!!!!!!
Just minor suggestions.
Feel free to merge if the unit test pass.
A pre-release + a java and python connector test run would also be reassuring (feel free to ignore if you tested this locally).
|
||
@connectors.command(cls=DaggerPipelineCommand, help="List all selected connectors.") | ||
@click.pass_context | ||
def list( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This command is not a pipeline but only printing stuff. Do you think a subpackage like utils_commands
would make sense?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good point - for what its worth, the test command (running tests for airbyte ci) is not a pipeline either, nor will the new format be. I don't think these are utils though, maybe it is just a naming problem.
@bnchrch you talked about pipelines, not commands, being the first class citizens here, somehow, right? I can't remember how that conversation went
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤔 good call out.
I dont have a good answer.
This feels like one of those puzzle pieces that can't fit
- If we leave it as is, theres a command with no pipeline under pipeline
- If we move it to
util_commands
the folder structure no longer matches theairbyte-ci
hierarchy
Currently Im thinking we leave it as is but perhaps find a new name for pipeline
maybe even airbyte-ci
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently Im thinking we leave it as is but perhaps find a new name for pipeline
maybe even airbyte-ci?
This was going to be my exact suggestion, i say we go for it 😄
airbyte-ci/connectors/pipelines/pipelines/dagger/containers/__init__.py
Outdated
Show resolved
Hide resolved
airbyte-ci/connectors/pipelines/pipelines/internal_tools/internal.py
Outdated
Show resolved
Hide resolved
c795238
to
ddf6e74
Compare
Current dependencies on/for this PR:
This comment was auto-generated by Graphite. |
…ete old binaries to get this to work
…tainers to internal tools, reports to own module and connector report to pipelines/connectors
ddf6e74
to
a42f2f2
Compare
Some successful javapython connector test runs here: #31586 (after fixing something so definitely worth testing!) Successful prerelease here: https://github.com/airbytehq/airbyte/actions/runs/6567115837 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! I kept having to hop around and this feels like would make things much clearer!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: why is this folder plural (builds
)? I think I would've expected it to line up with the command build
if i understand the explanation correctly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch! created an exception in our gitignore and renamed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just kidding, that still messes with our pipeline exclude logic.
went for build_image
instead
Suspect IssuesThis pull request was deployed and Sentry observed the following issues:
Did you find this useful? React with a 👍 or 👎 |
Co-authored-by: Ben Church <ben@airbyte.io> Co-authored-by: erohmensing <erohmensing@users.noreply.github.com> Co-authored-by: bnchrch <bnchrch@users.noreply.github.com>
Overview
This is an update to the folder/file structure of our
pipelines
project.The goal is through this change to improve readability and context sharing for new and existing developers.
However, This is NOT an update to any logic or code. That is out of scope for now.
The goal is to merge this fast so we dont have too much rebase hell
Changes
These are the broad high level changes and why
1. The colocation of pipelines and commands
Currently and in the future we believe the pipeline and the command concepts map 1:1.
Ideally we would be able to merge the abstractions (like in
aircmd
) but for now we believe a good first step is to hold them in the same location.This allows
2. A top level folder for CLI entry points
Even though commands are located beside their respective pipelines the entry point to the airbyte-ci should be as close to the root as possible and visible
This allows
3. The reduction of large files into smaller single purpose files
This is to improve reading and tracing code.
We've split
bases.py
into models4. Steps get more generic as you go up the file structure
The idea is that there is a taxonomy of steps that should be separated based on their wish to be reused.
models/steps.py
PoetryRunStep
,SimpleDockerStep
) now found atpipeline/steps
GitPushChanges
) now found atpipeline/steps
BuildConnectorDistributionTar
) found atpipeline/connectors/build/steps
Separating them on this taxonomy lets developers infer how wide spread their usage or if the step is intended to work in any pipeline vs just a specific set of pipelines
5. Containers separated from actions
Environments.py had a mix of two different type signatures
We broke this into
actions
andcontainers
respectively. This is to make this distinction clearer at a glance and potentially lean on the fact that the developer may be used to a distinction like this if theyve used docker beforeFile Structure