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

🎉 New Destination: Timeplus #21226

Merged
merged 18 commits into from
Jun 14, 2023

Conversation

jovezhong
Copy link
Contributor

@jovezhong jovezhong commented Jan 10, 2023

(this is to replace #20391 Cannot share secrets to maintainer if the PR is sent from a github org not personal account)

What

A new destination connector for Timeplus (works for any cloud deployment or onprem deployment of Timeplus)

close #20195

How

This python based destination connector will send data to Timeplus. It will create streams in Timeplus if necessary, with the exactly same schema from the source (kind of normalization, but not based on DBT). For example, if there are 4 columns in the CSV, then there will be 4 columns in the Timeplus stream.

Recommended reading order

airbyte-integrations/connectors/destination-timeplus/destination_timeplus/destination.py

🚨 User Impact 🚨

no breaking change

Pre-merge Checklist

Expand the relevant checklist and delete the others.

New Connector

Community member or Airbyter

  • Community member? 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
    • docs/integrations/<source or destination>/<name>.md including changelog. See changelog example
    • docs/integrations/README.md
    • airbyte-integrations/builds.md
  • 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 by running the /publish command described here
  • After the connector is published, connector added to connector index as described here
  • Seed specs have been re-generated by building the platform and committing the changes to the seed spec files, as described here
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
Connector Generator
  • Issue acceptance criteria met
  • PR name follows PR naming conventions
  • If adding a new generator, add it to the list of scaffold modules being tested
  • The generator test modules (all connectors with -scaffold in their name) have been updated with the latest scaffold by running ./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplates then checking in your changes
  • Documentation which references the generator is updated as needed

To test this connector, you can create a free account at https://us.timeplus.cloud, sign in with Google/MS SSO, then create a workspace, create an API key, then set them in the secret/UI to push data to it (tested with CSV and db)

Tests

Unit
pytest -s unit_tests
=================================================== test session starts ===================================================
platform darwin -- Python 3.9.16, pytest-7.2.0, pluggy-1.0.0 -- /Users/jove/Dev/jovezhong/airbyte/airbyte-integrations/connectors/destination-timeplus/.venv/bin/python
cachedir: .pytest_cache
rootdir: /Users/jove/Dev/jovezhong/airbyte, configfile: pytest.ini
collected 1 item

unit_tests/unit_test.py::test_type_mapping PASSED

=================================================== 1 passed in 0.71s ===================================================
Integration
=================================================== test session starts ===================================================
platform darwin -- Python 3.9.16, pytest-7.2.0, pluggy-1.0.0 -- /Users/jove/Dev/jovezhong/airbyte/airbyte-integrations/connectors/destination-timeplus/.venv/bin/python
cachedir: .pytest_cache
rootdir: /Users/jove/Dev/jovezhong/airbyte, configfile: pytest.ini
collected 2 items

integration_tests/integration_test.py::test_check_valid_config {"type": "LOG", "log": {"level": "INFO", "message": "Successfully connected to https://dev.timeplus.cloud/latest"}}
PASSED
integration_tests/integration_test.py::test_check_invalid_config PASSED
Acceptance

Put your acceptance tests output here.

@jovezhong jovezhong mentioned this pull request Jan 10, 2023
37 tasks
@jovezhong jovezhong force-pushed the feature/timeplus-destination branch 2 times, most recently from 176efde to b74d546 Compare January 17, 2023 22:07
@jovezhong jovezhong force-pushed the feature/timeplus-destination branch from 79301fd to eed848b Compare January 31, 2023 01:36
@jovezhong jovezhong force-pushed the feature/timeplus-destination branch from eed848b to d3decf2 Compare February 7, 2023 19:46
@jovezhong
Copy link
Contributor Author

Any maintainer look into this PR? It has been quite a while

@jovezhong
Copy link
Contributor Author

still waiting for a reviewer

@jovezhong jovezhong force-pushed the feature/timeplus-destination branch from d3decf2 to d72ccd8 Compare February 18, 2023 17:47
@jovezhong
Copy link
Contributor Author

Again, waiting for reviewers. What is the process to assign such review tickets?

@CLAassistant
Copy link

CLAassistant commented Feb 27, 2023

CLA assistant check
All committers have signed the CLA.

@jovezhong jovezhong force-pushed the feature/timeplus-destination branch from 49f155c to bdcb91d Compare February 28, 2023 01:00
@marcosmarxm marcosmarxm self-assigned this Feb 28, 2023
@jovezhong jovezhong force-pushed the feature/timeplus-destination branch 2 times, most recently from 6c13262 to 438df17 Compare March 1, 2023 01:50
@jovezhong
Copy link
Contributor Author

Hi @marcosmarxm , thanks for the reviews. I am not quite sure about the process. I resolved the review comments. Feel free to reopen them if they need more changes. I added 3 commits to address your review comments one by one. Hopefully it should make it a bit easier to check the code change.

@jovezhong jovezhong force-pushed the feature/timeplus-destination branch from 438df17 to ee47e7c Compare March 1, 2023 16:17
@jovezhong jovezhong requested a review from marcosmarxm March 1, 2023 16:32
@jovezhong jovezhong force-pushed the feature/timeplus-destination branch 3 times, most recently from 9e60a78 to 37fb4a4 Compare March 7, 2023 19:36
@jovezhong
Copy link
Contributor Author

Hi @marcosmarxm, could you please take the other look? Thanks

@jovezhong jovezhong force-pushed the feature/timeplus-destination branch from 37fb4a4 to 37a1803 Compare March 15, 2023 22:58
@jovezhong
Copy link
Contributor Author

I don't want to ask this every week, but please please give some feedback @marcosmarxm

@marcosmarxm marcosmarxm requested a review from a team March 16, 2023 01:11
@marcosmarxm
Copy link
Member

Sorry the long delay @jovezhong I added this to our team backlog. Hope to have a slot this week.

@marcosmarxm
Copy link
Member

@jovezhong can you fix:
❌ - check_documentation_file_exists
❌ - check_changelog_entry_is_updated
❌ - check_connector_icon_is_available

@jovezhong
Copy link
Contributor Author

Sure, @marcosmarxm , happy to add those files. I checked the log and cannot find the exact file they are looking for? Can you share any example or docs about those 3 checks? Thanks.

❌ - check_documentation_file_exists
❌ - check_changelog_entry_is_updated
❌ - check_connector_icon_is_available

@jovezhong jovezhong force-pushed the feature/timeplus-destination branch from fc6edb6 to d8cbfa1 Compare June 8, 2023 16:21
@jovezhong
Copy link
Contributor Author

Never mind. I got the checker code tools/ci_connector_ops/ci_connector_ops/qa_checks.py
I will add commits soon

@octavia-squidington-iii octavia-squidington-iii added the area/documentation Improvements or additions to documentation label Jun 8, 2023
@jrolom jrolom removed the bounty label Jun 9, 2023
@jovezhong jovezhong force-pushed the feature/timeplus-destination branch from 3e41a0c to b4dbe37 Compare June 12, 2023 20:54
@jovezhong jovezhong requested a review from marcosmarxm June 12, 2023 20:55
@marcosmarxm
Copy link
Member

marcosmarxm commented Jun 14, 2023

/test connector=connectors/destination-timeplus

⚠️ The test slash command is now deprecated.

The connector tests are automatically triggered as CI checks.

Please use /legacy-test if you need to test CDK or CAT changes.

Please join post to #pipeline-complaint-hotline slack channel if something is not working as expected.

@marcosmarxm marcosmarxm merged commit e63d371 into airbytehq:master Jun 14, 2023
@jovezhong
Copy link
Contributor Author

Thank you @marcosmarxm for the review and merge!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

Timeplus destination connector: send data to Timeplus for real-time analysis/visualization/alerting
6 participants