-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Move source-declarative-manifest to a standard source, published in step with python cdk #36501
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @erohmensing and the rest of your teammates on Graphite |
7a50195
to
d700e7c
Compare
9285554
to
d10452a
Compare
…blished via airbyte ci. bump version with airbyte-ci command
d10452a
to
ff61a65
Compare
f56c472
to
ec250e8
Compare
ff61a65
to
29fbbb7
Compare
ec250e8
to
b1c1b8d
Compare
a82555c
to
8d78e46
Compare
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.
We don't currently run these anywhere which feels odd (since we don't run the tests). Should we manually do a poetry run pytest unit_tests
before we bump the version of declarative manifest?
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.
I doubt we'll think about manually running tests before a version bump. We can either
- Find a way to run these tests as part of the version bump flow
- Add the tests to the CDK tests suite
Either way, this isn't testing too much complicated logic. It's fine to leave as a follow up item, but let's make sure to create an issue and document the limitation in the readme
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.
I think I'll leave it and document it as part of the "figure out the release strategy" part. Main reasoning:
- Adding the tests to the test suite (2) is strange, because the source has its own cdk dependency which won't account for the new changes we're making, which makes testing the old code there more confusing.
- Running them as part of the version flow (1) makes more sense for catching errors, because we can test on the new version published to pypi before releasing the new version of source-declarative manifest. It leaves us in a weird state where if the cdk breaks the source somehow, the cdk version gets released and the source version doesn't. Seems like valuable info, but a good way to get versions out of sync and/or have mysterious missing versions of the source when we revert or patch a CDK version to fix it.
I think what this means is that running the tests (ideally better tests, even CAT tests) on source-declarative manifest could be seen as an integration test for the python CDK. Similar to how we in our PR description for CDK changes have "manually test this change on a CDK source" - we should build a process for doing that automatically for the declarative manifest source.
if: ${{ failure() }} | ||
uses: slackapi/slack-github-action@v1.23.0 | ||
continue-on-error: true | ||
context: "master" # TODO change to ref? |
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.
I'm not sure if this even matters here because I don't think bump_version
cares about context - checking into this. Not sure if we want to pass everything in to this like we do most places I think, or remove the unneeded inputs to avoid confusion (e.g. python registry token is irrelevant as we're not pushing to pypi). I'll probably test out which ones are unnecessary and remove 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.
I think it might be useful to use ref for troubleshooting purposes, but I also think we should just remove the parameter if we're unsure it'll be safe / respected
@@ -0,0 +1,27 @@ | |||
data: |
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.
Metadata in here could be sanity checked. it probably doesn't matter (release stage, ab_internal stuff for example). I generated a new definitionId.
airbyte-integrations/connectors/source-declarative-manifest/pyproject.toml
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-declarative-manifest/pyproject.toml
Outdated
Show resolved
Hide resolved
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.
looks great! just a few requests for additional docs + some of the unit tests are failing. We should figure out why and fix them
airbyte-integrations/connectors/source-declarative-manifest/metadata.yaml
Show resolved
Hide resolved
airbyte-integrations/connectors/source-declarative-manifest/metadata.yaml
Show resolved
Hide resolved
enabled: false | ||
releaseDate: 2023-03-01 | ||
releaseStage: alpha | ||
supportLevel: community |
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.
not a real problem, but this feels weird. The connector is definitely not maintained by the community
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.
Yeah, I think that's an issue with the "supportLevel"'s meaning in any case - "we support it" does not mean it's certified by our own internal standards. I agree it doesn't matter at the moment since we don't actually show this source in the docs/UI, but we should probably revisit this.
airbyte-integrations/connectors/source-declarative-manifest/metadata.yaml
Show resolved
Hide resolved
if: ${{ failure() }} | ||
uses: slackapi/slack-github-action@v1.23.0 | ||
continue-on-error: true | ||
context: "master" # TODO change to ref? |
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.
I think it might be useful to use ref for troubleshooting purposes, but I also think we should just remove the parameter if we're unsure it'll be safe / respected
airbyte-integrations/connectors/source-declarative-manifest/source_declarative_manifest/run.py
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-declarative-manifest/source_declarative_manifest/run.py
Show resolved
Hide resolved
...ations/connectors/source-declarative-manifest/unit_tests/test_source_declarative_manifest.py
Show resolved
Hide resolved
@erohmensing - I'd be excited to use this with PyAirbyte. Re: Can we add |
5c1a7c2
to
3a320b4
Compare
@aaronsteers I did a pre-release publish and the publish itself seemed to work ok. Don't recommend testing out on that one because it has a pre-poetry CDK version so it might be a bit different, but we can see what happens. Mainly wanted to check that trying to publish it to pypi wouldn't make the whole publish flow start failing. |
b671540
to
e37b190
Compare
e37b190
to
add01a0
Compare
Thanks, @erohmensing! I will wait for this to merge/release before testing, but I'm excited to give it a spin and see if we can leverage it for airbytehq/PyAirbyte#107 in the long run. |
add01a0
to
e9b7344
Compare
/approve-and-merge reason=source-declarative manifest is not expected to pass CATs at the moment. All other CI passing |
What
Improve the publishing flow
manage.sh
source-declarative-manifest
image.legacy-publish
from the slash commands list - the workflow it would call does not exist anymore (the one which called manage.sh).source-declarative-manifest
to be built and published as any other source.source-declarative-manifest as an airbyte-ci source
connectors
folderspec
operation to check the health of the image. Currently in the platform we hackily bypass spec a bit. It makes sense for this image to have aspec
- the spec declares that the user needs to pass an injected manifest via the config.This source can be built and published via airbyte CI. As of this PR, it will not pass tests in Airbyte CI, because it's not quite the same as an actual source yet. This is okay for now as we will publish it directly (since we are committing the changes instead of merging them via a PR.