-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
internal poetry packages: declare poe tasks and airbyte-ci sections in pyproject.toml #34735
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Ignored Deployment
|
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @alafanechere and the rest of your teammates on |
f29b0cd
to
c3f2ec3
Compare
Once we do this, and connectors use poetry, do we expect them to also declare tasks in poe, or they will have a special case where airbyte-ci has opinions on how to test them? That part does not change, right? We'll run the full battery of tests without connector pyproject.toml defining them? |
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 is great!
from pydantic import BaseModel, Field, validator | ||
|
||
|
||
class AirbyteCiPackageConfiguration(BaseModel): |
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 isn't used as part of this PR, but it is used in this follow up PR by get_airbyte_ci_package_config, which is itself called by the test command to identify the poe_tasks to run and how to configure the container 👍
c3f2ec3
to
41ced4b
Compare
@natikgadzhi in an ideal world I'd love airbyte-ci to have 0 opinion on which test should run.
This will give more flexibility to connector developers in term of CI configuration and also more visibility about what's running in CI. I suggest to start the adoption this pattern for connectors with the introduction of type checks / mypy. |
41ced4b
to
2061f6c
Compare
…n pyproject.toml (#34735)
…n pyproject.toml (#34735)
What
Relates to #33880
The motivation behind this change is:
airbyte-ci
level.airbyte-ci
and GHA workflow remain orchestrators.If we want to enforce consistency between internal packages I think we should add static code analysis of
pyproject.toml
files (in a dedicated new package or in airbyte-ci).I believe this approach would also be highly beneficial for connectors, but first applying this to our internal packages to experience this pattern is a good enough first step.
How
poe
task runner on our internal poetry packages.pyproject.toml
: Declaretest
,lint
etc. tasks to wrap pytest / mypy etc.pyproject.toml
: Declare a new[tool.airbyte-ci]
section whichairbyte-ci
will consume to run the listed poe task in CI.pipelines
) to deserialize and validate the[tool.airbyte-ci]
section inpyproject.toml
.🚨 User Impact 🚨
This change has no effect. It's actually used in the downstream PR on this stack