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 FreshCaller: fix spec type check #26065

Merged
merged 6 commits into from
May 16, 2023

Conversation

artem1205
Copy link
Collaborator

@artem1205 artem1205 commented May 15, 2023

What

Resolve #25688
Handle config errors for start_date
Start_date field was not declared as a string in jsonschema, but was rendered as a string in UI.
This may have caused a problem with validation (see screenshot from #25688)

How

Fix spec type for start_date

Recommended reading order

  1. y.python

🚨 User Impact 🚨

no breaking changes

Pre-merge Actions

Updating a connector

Community member or Airbyter

  • Grant edit access to maintainers (instructions)
  • Unit & integration tests added

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.

@github-actions
Copy link
Contributor

github-actions bot commented May 15, 2023

Before Merging a Connector Pull Request

Wow! 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:

  • PR name follows PR naming conventions
  • Breaking changes are considered. If a Breaking Change is being introduced, ensure an Airbyte engineer has created a Breaking Change Plan and you've followed all steps in the Breaking Changes Checklist
  • Connector version has been incremented in the Dockerfile and metadata.yaml according to our Semantic Versioning for Connectors guidelines
  • Secrets in the connector's spec are annotated with airbyte_secret
  • All documentation files are up to date. (README.md, bootstrap.md, docs.md, etc...)
  • Changelog updated in docs/integrations/<source or destination>/<name>.md with an entry for the new version. See changelog example
  • You, or an Airbyter, have run /test successfully on this PR - or on a non-forked branch
  • You, or an Airbyter, have run /publish successfully on this PR - or on a non-forked branch
  • You've updated the connector's metadata.yaml file new!

If the checklist is complete, but the CI check is failing,

  1. Check for hidden checklists in your PR description

  2. Toggle the github label checklist-action-run on/off to re-run the checklist CI.

@artem1205
Copy link
Collaborator Author

artem1205 commented May 15, 2023

/test connector=connectors/source-freshcaller

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

@octavia-squidington-iii octavia-squidington-iii added the area/documentation Improvements or additions to documentation label May 15, 2023
@artem1205
Copy link
Collaborator Author

artem1205 commented May 15, 2023

/test connector=connectors/source-freshcaller

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

Name                             Stmts   Miss  Cover
----------------------------------------------------
source_freshcaller/__init__.py       2      0   100%
source_freshcaller/source.py        29     11    62%
source_freshcaller/streams.py      100     47    53%
----------------------------------------------------
TOTAL                              131     58    56%
Name                             Stmts   Miss  Cover
----------------------------------------------------
source_freshcaller/__init__.py       2      0   100%
source_freshcaller/streams.py      100      4    96%
source_freshcaller/source.py        29     15    48%
----------------------------------------------------
TOTAL                              131     19    85%

Build Passed

Test summary info:

=========================== short test summary info ============================
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/connector_acceptance_test/tests/test_core.py:109: Backward compatibility tests are disabled for version 0.1.0.
============ 39 passed, 1 skipped, 41 warnings in 142.78s (0:02:22) ============

@artem1205 artem1205 requested review from grubberr, lazebnyi and a team May 15, 2023 10:40
Copy link
Contributor

@alafanechere alafanechere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @artem1205 I'd appreciate a bit more context explaining why this change is solving the issue you linked and why it's backward incompatible?

Comment on lines +5 to +6
backward_compatibility_tests_config:
disable_for_version: 0.1.0 # Fix start_date type
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Were the backward compatibility tests failing before this change? I'm not sure the change you made are actually backward incompatible? What was the default type stored for date before you specifically declare it's a string?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Start_date field was not declared as a string in jsonschema, but was rendered as a string in UI.
This possible caused a pattern validation error (see screenshot from #25688)
error without disabling:
image

@@ -126,15 +126,15 @@ def stream_slices(self, stream_state: Mapping[str, Any] = None, **kwargs) -> Ite
...]
"""
start_date = pendulum.parse(self.start_date).in_timezone("UTC")
end_date = pendulum.utcnow().subtract(minutes=self.sync_lag_minutes) # have a safe lag
end_date = pendulum.now("UTC").subtract(minutes=self.sync_lag_minutes) # have a safe lag
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this change required?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've bumped airbyte-cdk to ~=0.2 and removed pendulum in setup.py.
In Pendulum utcnow() is deprecated since 2.0.0

@artem1205
Copy link
Collaborator Author

Hey @artem1205 I'd appreciate a bit more context explaining why this change is solving the issue you linked and why it's backward incompatible?

Description updated. It is potentially backward compatible, as there was not any info about the type in schema.
Maybe we need to add another check in our tests for this case, I mean , check that every field in our spec should have type property, WDYT @alafanechere ?

@alafanechere alafanechere self-assigned this May 16, 2023
Copy link
Contributor

@alafanechere alafanechere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you I think I now understand clearly the reason of the change. I hoped this issue to improve spec testing as you suggested

@artem1205
Copy link
Collaborator Author

artem1205 commented May 16, 2023

/publish connector=connectors/source-freshcaller

🕑 Publishing the following connectors:
connectors/source-freshcaller
https://github.com/airbytehq/airbyte/actions/runs/4997104562


Connector Version Did it publish? Were definitions generated?
connectors/source-freshcaller 0.2.0

if you have connectors that successfully published but failed definition generation, follow step 4 here ▶️

@artem1205 artem1205 merged commit cf5cdd4 into master May 16, 2023
19 checks passed
@artem1205 artem1205 deleted the artem1205/source-freshcaller-config-errors-25688 branch May 16, 2023 22:32
marcosmarxm pushed a commit to natalia-miinto/airbyte that referenced this pull request Jun 8, 2023
* Source FreshCaller: fix spec type check

* Source FreshCaller: update docs

* Source FreshCaller: fix schemas

* Source FreshCaller: reformat

* Source FreshCaller: bump version minor

* Source FreshCaller: update metadata
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/freshcaller
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Categorize Freshcaller config errors
3 participants