Skip to content
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 Github: fix different result from get_starting_point when reading by pages #13531

Merged
merged 12 commits into from
Jun 8, 2022

Conversation

grubberr
Copy link
Contributor

@grubberr grubberr commented Jun 7, 2022

Signed-off-by: Sergey Chvalyuk grubberr@gmail.com

What

When we call SemiIncrementalMixin.get_starting_point multiple times for example while reading stream by pages
this function can return different result because stream_state is increasing.
But in reality, this function has to return only the same result based on initial stream_state
subsequent stream_state updates shouldn't affect the result of this function.

How

We can cache the result of get_starting_point and on subsequent calls return the same result.

Recommended reading order

  1. x.java
  2. y.python

🚨 User Impact 🚨

Are there any breaking changes? What is the end result perceived by the user? If yes, please merge this PR with the 🚨🚨 emoji so changelog authors can further highlight this if needed.

Pre-merge Checklist

Expand the relevant checklist and delete the others.

Updating a connector

Community member or Airbyter

  • Grant edit access to maintainers (instructions)
  • Secrets in the connector's spec are annotated with airbyte_secret
  • Unit & integration tests added and passing. Community members, please provide proof of success locally e.g: screenshot or copy-paste unit, integration, and acceptance test output. To run acceptance tests for a Python connector, follow instructions in the README. For java connectors run ./gradlew :airbyte-integrations:connectors:<name>:integrationTest.
  • Code reviews completed
  • Documentation updated
    • Connector's README.md
    • Connector's bootstrap.md. See description and examples
    • Changelog updated in docs/integrations/<source or destination>/<name>.md including changelog. See changelog example
  • PR name follows PR naming conventions

Airbyter

If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.

  • Create a non-forked branch based on this PR and test the below items on it
  • Build is successful
  • If new credentials are required for use in CI, add them to GSM. Instructions.
  • /test connector=connectors/<name> command is passing
  • New Connector version released on Dockerhub and connector version bumped by running the /publish command described here

Tests

Unit

Put your unit tests output here.

Integration

Put your integration tests output here.

Acceptance

Put your acceptance tests output here.

Signed-off-by: Sergey Chvalyuk <grubberr@gmail.com>
@grubberr
Copy link
Contributor Author

grubberr commented Jun 7, 2022

/test connector=connectors/source-github

🕑 connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2452588130
❌ connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2452588130
🐛 https://gradle.com/s/gubsl242ddsxo

Build Failed

Test summary info:

=========================== short test summary info ============================
FAILED test_incremental.py::TestIncremental::test_two_sequential_reads[inputs0]
FAILED test_incremental.py::TestIncremental::test_read_sequential_slices[inputs0]
FAILED test_incremental.py::TestIncremental::test_state_with_abnormally_large_values[inputs0]
=================== 3 failed, 28 passed in 274.60s (0:04:34) ===================

@codecov
Copy link

codecov bot commented Jun 7, 2022

Codecov Report

❗ No coverage uploaded for pull request base (master@4c97893). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master   #13531   +/-   ##
=========================================
  Coverage          ?   91.98%           
=========================================
  Files             ?        4           
  Lines             ?      674           
  Branches          ?        0           
=========================================
  Hits              ?      620           
  Misses            ?       54           
  Partials          ?        0           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4c97893...0feb91f. Read the comment docs.

grubberr added 2 commits June 7, 2022 11:47
Signed-off-by: Sergey Chvalyuk <grubberr@gmail.com>
Signed-off-by: Sergey Chvalyuk <grubberr@gmail.com>
@grubberr grubberr changed the title 🐛 Source Github: fix result from get_starting_point for reading by pages 🐛 Source Github: fix result from get_starting_point for reading by pages Jun 7, 2022
grubberr added 3 commits June 7, 2022 11:56
Signed-off-by: Sergey Chvalyuk <grubberr@gmail.com>
Signed-off-by: Sergey Chvalyuk <grubberr@gmail.com>
Signed-off-by: Sergey Chvalyuk <grubberr@gmail.com>
@grubberr grubberr changed the title 🐛 Source Github: fix result from get_starting_point for reading by pages 🐛 Source Github: fix result from get_starting_point when reading by pages Jun 7, 2022
@grubberr grubberr changed the title 🐛 Source Github: fix result from get_starting_point when reading by pages 🐛 Source Github: fix different result from get_starting_point when reading by pages Jun 7, 2022
Signed-off-by: Sergey Chvalyuk <grubberr@gmail.com>
@github-actions github-actions bot added the area/documentation Improvements or additions to documentation label Jun 7, 2022
@grubberr
Copy link
Contributor Author

grubberr commented Jun 7, 2022

/test connector=connectors/source-github

🕑 connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2453612583
✅ connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2453612583
Python tests coverage:

Name                                                 Stmts   Miss  Cover
------------------------------------------------------------------------
source_acceptance_test/utils/__init__.py                 6      0   100%
source_acceptance_test/tests/__init__.py                 4      0   100%
source_acceptance_test/__init__.py                       2      0   100%
source_acceptance_test/tests/test_full_refresh.py       52      2    96%
source_acceptance_test/utils/asserts.py                 37      2    95%
source_acceptance_test/config.py                        77      6    92%
source_acceptance_test/utils/json_schema_helper.py     105     13    88%
source_acceptance_test/tests/test_incremental.py       121     25    79%
source_acceptance_test/utils/common.py                  80     17    79%
source_acceptance_test/tests/test_core.py              294    106    64%
source_acceptance_test/utils/compare.py                 62     23    63%
source_acceptance_test/base.py                          10      4    60%
source_acceptance_test/utils/connector_runner.py       110     48    56%
------------------------------------------------------------------------
TOTAL                                                  960    246    74%
Name                        Stmts   Miss  Cover
-----------------------------------------------
source_github/utils.py          6      0   100%
source_github/__init__.py       2      0   100%
source_github/streams.py      574     27    95%
source_github/source.py        92     27    71%
-----------------------------------------------
TOTAL                         674     54    92%

Build Passed

Test summary info:

All Passed

@grubberr grubberr requested review from lazebnyi and midavadim June 7, 2022 09:58
@grubberr
Copy link
Contributor Author

grubberr commented Jun 8, 2022

/test connector=connectors/source-github

🕑 connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2461310219
❌ connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2461310219
🐛 https://gradle.com/s/akji6xquoy4xc

Build Failed

Test summary info:

=========================== short test summary info ============================
FAILED test_core.py::TestConnection::test_check[inputs0] - Failed: Timeout >3...
FAILED test_core.py::TestConnection::test_check[inputs1] - Failed: Timeout >3...
FAILED test_core.py::TestDiscovery::test_discover[inputs0] - Failed: Timeout ...
FAILED test_core.py::TestDiscovery::test_discover[inputs1] - Failed: Timeout ...
ERROR test_core.py::TestDiscovery::test_defined_cursors_exist_in_schema[inputs0]
ERROR test_core.py::TestDiscovery::test_defined_cursors_exist_in_schema[inputs1]
ERROR test_core.py::TestDiscovery::test_defined_refs_exist_in_schema[inputs0]
ERROR test_core.py::TestDiscovery::test_defined_refs_exist_in_schema[inputs1]
ERROR test_core.py::TestDiscovery::test_defined_keyword_exist_in_schema[inputs0-allOf]
ERROR test_core.py::TestDiscovery::test_defined_keyword_exist_in_schema[inputs0-not]
============= 4 failed, 21 passed, 6 errors in 2714.27s (0:45:14) ==============

Signed-off-by: Sergey Chvalyuk <grubberr@gmail.com>
@grubberr
Copy link
Contributor Author

grubberr commented Jun 8, 2022

/test connector=connectors/source-github

🕑 connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2461693414
❌ connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2461693414
🐛 https://gradle.com/s/su6mulylrqm7y

Build Failed

Test summary info:

=========================== short test summary info ============================
FAILED test_full_refresh.py::TestFullRefresh::test_sequential_reads[inputs0]
=================== 1 failed, 30 passed in 306.20s (0:05:06) ===================

@grubberr grubberr temporarily deployed to more-secrets June 8, 2022 13:06 Inactive
@grubberr
Copy link
Contributor Author

grubberr commented Jun 8, 2022

/test connector=connectors/source-github

🕑 connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2461911512
❌ connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2461911512
🐛 https://gradle.com/s/rgdu5hnxao4km

Build Failed

Test summary info:

=========================== short test summary info ============================
FAILED test_full_refresh.py::TestFullRefresh::test_sequential_reads[inputs0]
=================== 1 failed, 30 passed in 300.80s (0:05:00) ===================

@grubberr
Copy link
Contributor Author

grubberr commented Jun 8, 2022

/test connector=connectors/source-github

🕑 connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2462044194
❌ connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2462044194
🐛 https://gradle.com/s/rtd5biee24xds

Build Failed

Test summary info:

=========================== short test summary info ============================
FAILED test_full_refresh.py::TestFullRefresh::test_sequential_reads[inputs0]
=================== 1 failed, 30 passed in 305.94s (0:05:05) ===================

@grubberr
Copy link
Contributor Author

grubberr commented Jun 8, 2022

/test connector=connectors/source-github

🕑 connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2462142177

@grubberr
Copy link
Contributor Author

grubberr commented Jun 8, 2022

/publish connector=connectors/source-github

🕑 connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2463032789
🚀 Successfully published connectors/source-github
🚀 Auto-bumped version for connectors/source-github
✅ connectors/source-github https://github.com/airbytehq/airbyte/actions/runs/2463032789

@grubberr grubberr merged commit 5444317 into master Jun 8, 2022
@grubberr grubberr deleted the grubberr/13527-source-github branch June 8, 2022 17:06
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets June 8, 2022 17:07 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/connectors Connector related issues area/documentation Improvements or additions to documentation connectors/source/github
Projects
None yet
Development

Successfully merging this pull request may close these issues.

🐛 Source Github: different result from get_starting_point when reading by pages
3 participants