-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
🐛 Source Stripe: do not emit empty state messages #30660
🐛 Source Stripe: do not emit empty state messages #30660
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Ignored Deployment
|
Before Merging a Connector Pull RequestWow! What a great pull request you have here! 🎉 To merge this PR, ensure the following has been done/considered for each connector added or updated:
If the checklist is complete, but the CI check is failing,
|
source-stripe test report (commit
|
Step | Result |
---|---|
Connector package install | ✅ |
Build source-stripe docker image for platform linux/x86_64 | ✅ |
Unit tests | ✅ |
Acceptance tests | ❌ |
Code format checks | ✅ |
Validate airbyte-integrations/connectors/source-stripe/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
☁️ View runs for commit in Dagger Cloud
Please note that tests are only run on PR ready for review. Please set your PR to draft mode to not flood the CI engine and upstream service on following commits.
You can run the same pipeline locally on this branch with the airbyte-ci tool with the following command
airbyte-ci connectors --name=source-stripe test
source-stripe test report (commit
|
Step | Result |
---|---|
Connector package install | ✅ |
Build source-stripe docker image for platform linux/x86_64 | ✅ |
Unit tests | ✅ |
Acceptance tests | ✅ |
Code format checks | ✅ |
Validate airbyte-integrations/connectors/source-stripe/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
☁️ View runs for commit in Dagger Cloud
Please note that tests are only run on PR ready for review. Please set your PR to draft mode to not flood the CI engine and upstream service on following commits.
You can run the same pipeline locally on this branch with the airbyte-ci tool with the following command
airbyte-ci connectors --name=source-stripe test
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.
LGTM
airbyte-integrations/connectors/source-stripe/source_stripe/streams.py
Outdated
Show resolved
Hide resolved
…reams.py Co-authored-by: Serhii Lazebnyi <[email protected]>
source-stripe test report (commit
|
Step | Result |
---|---|
Connector package install | ✅ |
Build source-stripe docker image for platform linux/x86_64 | ✅ |
Unit tests | ✅ |
Acceptance tests | ✅ |
Code format checks | ❌ |
Validate airbyte-integrations/connectors/source-stripe/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
☁️ View runs for commit in Dagger Cloud
Please note that tests are only run on PR ready for review. Please set your PR to draft mode to not flood the CI engine and upstream service on following commits.
You can run the same pipeline locally on this branch with the airbyte-ci tool with the following command
airbyte-ci connectors --name=source-stripe test
source-stripe test report (commit
|
Step | Result |
---|---|
Connector package install | ✅ |
Build source-stripe docker image for platform linux/x86_64 | ✅ |
Unit tests | ✅ |
Acceptance tests | ✅ |
Code format checks | ✅ |
Validate airbyte-integrations/connectors/source-stripe/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
☁️ View runs for commit in Dagger Cloud
Please note that tests are only run on PR ready for review. Please set your PR to draft mode to not flood the CI engine and upstream service on following commits.
You can run the same pipeline locally on this branch with the airbyte-ci tool with the following command
airbyte-ci connectors --name=source-stripe test
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 is a couple of things I don't understand enough to give approval. With the answer to my question, I should be able to approve
current_cursor_value = record.get(self.legacy_cursor_field, pendulum.now().int_timestamp) | ||
|
||
# yield the record with the added cursor_field | ||
yield record | {self.cursor_field: current_cursor_value} |
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.
Defaulting on now
seems odd to me. Is it only some records in a stream that might not have self.cursor_field
and self.legacy_cursor_field
in the record? I would be afraid of the following series of events:
- Consume a record #1
self.cursor_field
andself.legacy_cursor_field
not in the record so we usenow
- checkpointing from AbstractSource
- Consume a record #2 with
self.cursor_field
orself.legacy_cursor_field
less thannow
- Sync crash
In that case, we would start the next sync at the now
when we consumed record #1 but would potentially miss record #2 and others. The only reason allow for now
as the default is if all the records for the same stream will not have self.legacy_cursor_field
as a field. Can you confirm?
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.
@maxi297 yes, the case here is some streams that do not have a cursor value at all when running in a full refresh mode (or initial incremental sync), so the consequences you described are not relevant
yield record | ||
if self.cursor_field in record: | ||
yield record | ||
continue # Skip the rest of the loop iteration |
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: Would it be more readable to use the else
statement instead of having to add a comment?
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.
matter of taste :) I prefer early exit/continue over else statements
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.
but if you insist, I can change it of course
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 are a couple of resources regarding cognitive complexity recommending to avoid "jumps to" labels. One example is Sonar I personally agree with these but I'll not enforce it if the maintainers of the code prefer otherwise
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.
Thank you! I will leave it here as is, but take into account in the future updates
airbyte-integrations/connectors/source-stripe/unit_tests/test_streams.py
Show resolved
Hide resolved
@maxi297 can you please take a look at the comments |
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.
Given the added information by @davydov-d, I have enough information to approve this change
What
Emit non-empty state messages
https://github.com/airbytehq/oncall/issues/3004
How
🚨 User Impact 🚨
No impact