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

Bump actions/setup-python from 4 to 5 #201

Merged
merged 1 commit into from
Mar 31, 2024

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Mar 31, 2024

Bumps actions/setup-python from 4 to 5.

Release notes

Sourced from actions/setup-python's releases.

v5.0.0

What's Changed

In scope of this release, we update node version runtime from node16 to node20 (actions/setup-python#772). Besides, we update dependencies to the latest versions.

Full Changelog: actions/setup-python@v4.8.0...v5.0.0

v4.8.0

What's Changed

In scope of this release we added support for GraalPy (actions/setup-python#694). You can use this snippet to set up GraalPy:

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4 
  with:
    python-version: 'graalpy-22.3' 
- run: python my_script.py

Besides, the release contains such changes as:

New Contributors

Full Changelog: actions/setup-python@v4...v4.8.0

v4.7.1

What's Changed

Full Changelog: actions/setup-python@v4...v4.7.1

v4.7.0

In scope of this release, the support for reading python version from pyproject.toml was added (actions/setup-python#669).

      - name: Setup Python
        uses: actions/setup-python@v4
</tr></table> 

... (truncated)

Commits
  • 82c7e63 Documentation changes for avoiding rate limit issues on GHES (#835)
  • 10aa35a feat: fallback to raw endpoint for manifest when rate limit is reached (#766)
  • 9a7ac94 Bump undici from 5.27.2 to 5.28.3 (#817)
  • 871daa9 Fix the "Specifying multiple Python/PyPy versions" link (#782)
  • 2f07895 Fix broken README.md link (#793)
  • e9d6f99 Replace setup-python@v4 by setup-python@v5 in README (#776)
  • 0a5c615 Update action to node20 (#772)
  • 0ae5836 Add example of GraalPy to docs (#773)
  • b64ffca update actions/checkout to v4 (#761)
  • 8d28961 Examples now use checkout@v4 (#738)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot bot requested a review from a team as a code owner March 31, 2024 09:59
@dependabot dependabot bot requested a review from ravit-db March 31, 2024 09:59
@dependabot dependabot bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Mar 31, 2024
Copy link

codecov bot commented Mar 31, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 94.83%. Comparing base (d900050) to head (e9a1bfc).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #201   +/-   ##
=======================================
  Coverage   94.83%   94.83%           
=======================================
  Files          28       28           
  Lines        1705     1705           
  Branches      250      250           
=======================================
  Hits         1617     1617           
  Misses         61       61           
  Partials       27       27           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Collaborator

@nfx nfx left a comment

Choose a reason for hiding this comment

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

🔥

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot force-pushed the dependabot/github_actions/actions/setup-python-5 branch from f571c89 to e9a1bfc Compare March 31, 2024 10:22
@nfx nfx merged commit 42e1158 into main Mar 31, 2024
7 checks passed
@nfx nfx deleted the dependabot/github_actions/actions/setup-python-5 branch March 31, 2024 10:25
sundarshankar89 added a commit that referenced this pull request Apr 4, 2024
* Added Databricks Source Adapter ([#185](#185)). In this release, the project has been enhanced with several new features for the Databricks Source Adapter. A new `engine` parameter has been added to the `DataSource` class, replacing the original `source` parameter. The `_get_secrets` and `_get_table_or_query` methods have been updated to use the `engine` parameter for key naming and handling queries with a `select` statement differently, respectively. A Databricks Source Adapter for Oracle databases has been introduced, which includes a new `OracleDataSource` class that provides functionality to connect to an Oracle database using JDBC. A Databricks Source Adapter for Snowflake has also been added, featuring the `SnowflakeDataSource` class that handles data reading and schema retrieval from Snowflake. The `DatabricksDataSource` class has been updated to handle data reading and schema retrieval from Databricks, including a new `get_schema_query` method that generates the query to fetch the schema based on the provided catalog and table name. Exception handling for reading data and fetching schema has been implemented for all new classes. These changes provide increased flexibility for working with various data sources, improved code maintainability, and better support for different use cases.
* Added Issue Templates for bugs, feature and config ([#194](#194)). Two new issue templates have been added to the project's GitHub repository to improve issue creation and management. The first template, located in `.github/ISSUE_TEMPLATE/bug.yml`, is for reporting bugs and prompts users to provide detailed information about the issue, including the current and expected behavior, steps to reproduce, relevant log output, and sample query. The second template, added under the path `.github/ISSUE_TEMPLATE/config.yml`, is for configuration-related issues and includes support contact links for general Databricks questions and Remorph documentation, as well as fields for specifying the operating system and software version. A new issue template for feature requests, named "Feature Request", has also been added, providing a structured format for users to submit requests for new functionality for the Remorph project. These templates will help streamline the issue creation process, improve the quality of information provided, and make it easier for the development team to quickly identify and address bugs and feature requests.
* Added Threshold Query Builder ([#188](#188)). In this release, the open-source library has added a Threshold Query Builder feature, which includes several changes to the existing functionality in the data source connector. A new import statement adds the `re` module for regular expressions, and new parameters have been added to the `read_data` and `get_schema` abstract methods. The `_get_jdbc_reader_options` method has been updated to accept a `options` parameter of type "JdbcReaderOptions", and a new static method, "_get_table_or_query", has been added to construct the table or query string based on provided parameters. Additionally, a new class, "QueryConfig", has been introduced in the "databricks.labs.remorph.reconcile" package to configure queries for data reconciliation tasks. A new abstract base class QueryBuilder has been added to the query_builder.py file, along with HashQueryBuilder and ThresholdQueryBuilder classes to construct SQL queries for generating hash values and selecting columns based on threshold values, transformation rules, and filtering conditions. These changes aim to enhance the functionality of the data source connector, add modularity, customizability, and reusability to the query builder, and improve data reconciliation tasks.
* Added serverless validation using lsql library ([#176](#176)).
* Added snowflake connector code ([#177](#177)). In this release, the open-source library has been updated to add a Snowflake connector for data extraction and schema manipulation. The changes include the addition of the SnowflakeDataSource class, which is used to read data from Snowflake using PySpark, and has methods for getting the JDBC URL, reading data with and without JDBC reader options, getting the schema, and handling exceptions. A new constant, SNOWFLAKE, has been added to the SourceDriver enum in constants.py, which represents the Snowflake JDBC driver class. The code modifications include updating the constructor of the DataSource abstract base class to include a new parameter 'scope', and updating the `_get_secrets` method to accept a `key_name` parameter instead of 'key'. Additionally, a test file 'test_snowflake.py' has been added to test the functionality of the SnowflakeDataSource class. This release also updates the pyproject.toml file to version lock the dependencies like black, ruff, and isort, and modifies the coverage report configuration to exclude certain files and lines from coverage checks. These changes were completed by Ravikumar Thangaraj and SundarShankar89.
* Enhanced install script to enforce usage of a warehouse or cluster when `skip-validation` is set to `False` ([#213](#213)). In this release, the installation process has been enhanced to mandate the use of a warehouse or cluster when the `skip-validation` parameter is set to `False`. This change has been implemented across various components, including the install script, `transpile` function, and `get_sql_backend` function. Additionally, new pytest fixtures and methods have been added to improve test configuration and resource management during testing. Unit tests have been updated to enforce usage of a warehouse or cluster when the `skip-validation` flag is set to `False`, ensuring proper resource allocation and validation process improvement. This development focuses on promoting a proper setup and usage of the system, guiding new users towards a correct configuration and improving the overall reliability of the tool.
* Patch subquery with json column access ([#190](#190)). The open-source library has been updated with new functionality to modify how subqueries with JSON column access are handled in the `snowflake.py` file. This change includes the addition of a check for an opening parenthesis after the `FROM` keyword to detect and break loops when a subquery is found, as opposed to a table name. This improvement enhances the handling of complex subqueries and JSON column access, making the code more robust and adaptable to different query structures. Additionally, a new test method, `test_nested_query_with_json`, has been introduced to the `tests/unit/snow/test_databricks.py` file to test the behavior of nested queries involving JSON column access when using a Snowflake dialect. This new method validates the expected output of a specific nested query when it is transpiled to Snowflake's SQL dialect, allowing for more comprehensive testing of JSON column access and type casting in Snowflake dialects. The existing `test_delete_from_keyword` method remains unchanged.
* Prevent adding `# pylint: disable` comments without explicit approval ([#191](#191)). A new job, "no-lint-disabled", has been added to the GitHub Actions workflow defined in the "push.yml" file to enforce the use of the pylint linter. This job checks for the addition of "# pylint: disable" comments in new code without explicit approval, preventing the linter from being bypassed without permission. It runs on the latest version of Ubuntu, checks out the repository with a full history, extracts the new code using the `git diff` command, and searches for any instances of "# pylint: disable" using "grep". If any are found, the script outputs an error message and exits with a non-zero status, causing the workflow to fail. This new job helps maintain code quality and consistency across the project by ensuring that the pylint linter is used appropriately in new code.
* Snowflake `UPDATE FROM` to Databricks `MERGE INTO` implementation ([#198](#198)).
* Use Runtime SQL backend in Notebooks ([#211](#211)). In this update, the `db_sql.py` file in the `databricks/labs/remorph/helpers` directory has been modified to support the use of the Runtime SQL backend in Notebooks. This change includes the addition of a new `RuntimeBackend` class in the `backends` module and an import statement for `os`. The `get_sql_backend` function now returns a `RuntimeBackend` instance when the `DATABRICKS_RUNTIME_VERSION` environment variable is present, allowing for more efficient and secure SQL statement execution in Databricks notebooks. Additionally, a new test case for the `get_sql_backend` function has been added to ensure the correct behavior of the function in various runtime environments. These enhancements improve SQL execution performance and security in Databricks notebooks and increase the project's versatility for different use cases.
* `remorph reconcile` baseline for Query Builder and Source Adapter for oracle as source ([#150](#150)).

Dependency updates:

 * Bump sqlglot from 22.4.0 to 22.5.0 ([#175](#175)).
 * Updated databricks-sdk requirement from <0.22,>=0.18 to >=0.18,<0.23 ([#178](#178)).
 * Updated databricks-sdk requirement from <0.23,>=0.18 to >=0.18,<0.24 ([#189](#189)).
 * Bump actions/checkout from 3 to 4 ([#203](#203)).
 * Bump actions/setup-python from 4 to 5 ([#201](#201)).
 * Bump codecov/codecov-action from 1 to 4 ([#202](#202)).
 * Bump softprops/action-gh-release from 1 to 2 ([#204](#204)).
@sundarshankar89 sundarshankar89 mentioned this pull request Apr 4, 2024
github-merge-queue bot pushed a commit that referenced this pull request Apr 4, 2024
* Added serverless validation using lsql library
([#176](#176)).
Workspaceclient object is used with `product` name and `product_version`
along with corresponding `cluster_id` or `warehouse_id` as `sdk_config`
in `MorphConfig` object.
* Enhanced install script to enforce usage of a warehouse or cluster
when `skip-validation` is set to `False`
([#213](#213)). In this
release, the installation process has been enhanced to mandate the use
of a warehouse or cluster when the `skip-validation` parameter is set to
`False`. This change has been implemented across various components,
including the install script, `transpile` function, and
`get_sql_backend` function. Additionally, new pytest fixtures and
methods have been added to improve test configuration and resource
management during testing. Unit tests have been updated to enforce usage
of a warehouse or cluster when the `skip-validation` flag is set to
`False`, ensuring proper resource allocation and validation process
improvement. This development focuses on promoting a proper setup and
usage of the system, guiding new users towards a correct configuration
and improving the overall reliability of the tool.
* Patch subquery with json column access
([#190](#190)). The
open-source library has been updated with new functionality to modify
how subqueries with JSON column access are handled in the `snowflake.py`
file. This change includes the addition of a check for an opening
parenthesis after the `FROM` keyword to detect and break loops when a
subquery is found, as opposed to a table name. This improvement enhances
the handling of complex subqueries and JSON column access, making the
code more robust and adaptable to different query structures.
Additionally, a new test method, `test_nested_query_with_json`, has been
introduced to the `tests/unit/snow/test_databricks.py` file to test the
behavior of nested queries involving JSON column access when using a
Snowflake dialect. This new method validates the expected output of a
specific nested query when it is transpiled to Snowflake's SQL dialect,
allowing for more comprehensive testing of JSON column access and type
casting in Snowflake dialects. The existing `test_delete_from_keyword`
method remains unchanged.
* Snowflake `UPDATE FROM` to Databricks `MERGE INTO` implementation
([#198](#198)).
* Use Runtime SQL backend in Notebooks
([#211](#211)). In this
update, the `db_sql.py` file in the `databricks/labs/remorph/helpers`
directory has been modified to support the use of the Runtime SQL
backend in Notebooks. This change includes the addition of a new
`RuntimeBackend` class in the `backends` module and an import statement
for `os`. The `get_sql_backend` function now returns a `RuntimeBackend`
instance when the `DATABRICKS_RUNTIME_VERSION` environment variable is
present, allowing for more efficient and secure SQL statement execution
in Databricks notebooks. Additionally, a new test case for the
`get_sql_backend` function has been added to ensure the correct behavior
of the function in various runtime environments. These enhancements
improve SQL execution performance and security in Databricks notebooks
and increase the project's versatility for different use cases.
* Added Issue Templates for bugs, feature and config
([#194](#194)). Two new
issue templates have been added to the project's GitHub repository to
improve issue creation and management. The first template, located in
`.github/ISSUE_TEMPLATE/bug.yml`, is for reporting bugs and prompts
users to provide detailed information about the issue, including the
current and expected behavior, steps to reproduce, relevant log output,
and sample query. The second template, added under the path
`.github/ISSUE_TEMPLATE/config.yml`, is for configuration-related issues
and includes support contact links for general Databricks questions and
Remorph documentation, as well as fields for specifying the operating
system and software version. A new issue template for feature requests,
named "Feature Request", has also been added, providing a structured
format for users to submit requests for new functionality for the
Remorph project. These templates will help streamline the issue creation
process, improve the quality of information provided, and make it easier
for the development team to quickly identify and address bugs and
feature requests.
* Added Databricks Source Adapter
([#185](#185)). In this
release, the project has been enhanced with several new features for the
Databricks Source Adapter. A new `engine` parameter has been added to
the `DataSource` class, replacing the original `source` parameter. The
`_get_secrets` and `_get_table_or_query` methods have been updated to
use the `engine` parameter for key naming and handling queries with a
`select` statement differently, respectively. A Databricks Source
Adapter for Oracle databases has been introduced, which includes a new
`OracleDataSource` class that provides functionality to connect to an
Oracle database using JDBC. A Databricks Source Adapter for Snowflake
has also been added, featuring the `SnowflakeDataSource` class that
handles data reading and schema retrieval from Snowflake. The
`DatabricksDataSource` class has been updated to handle data reading and
schema retrieval from Databricks, including a new `get_schema_query`
method that generates the query to fetch the schema based on the
provided catalog and table name. Exception handling for reading data and
fetching schema has been implemented for all new classes. These changes
provide increased flexibility for working with various data sources,
improved code maintainability, and better support for different use
cases.
* Added Threshold Query Builder
([#188](#188)). In this
release, the open-source library has added a Threshold Query Builder
feature, which includes several changes to the existing functionality in
the data source connector. A new import statement adds the `re` module
for regular expressions, and new parameters have been added to the
`read_data` and `get_schema` abstract methods. The
`_get_jdbc_reader_options` method has been updated to accept a `options`
parameter of type "JdbcReaderOptions", and a new static method,
"_get_table_or_query", has been added to construct the table or query
string based on provided parameters. Additionally, a new class,
"QueryConfig", has been introduced in the
"databricks.labs.remorph.reconcile" package to configure queries for
data reconciliation tasks. A new abstract base class QueryBuilder has
been added to the query_builder.py file, along with HashQueryBuilder and
ThresholdQueryBuilder classes to construct SQL queries for generating
hash values and selecting columns based on threshold values,
transformation rules, and filtering conditions. These changes aim to
enhance the functionality of the data source connector, add modularity,
customizability, and reusability to the query builder, and improve data
reconciliation tasks.
* Added snowflake connector code
([#177](#177)). In this
release, the open-source library has been updated to add a Snowflake
connector for data extraction and schema manipulation. The changes
include the addition of the SnowflakeDataSource class, which is used to
read data from Snowflake using PySpark, and has methods for getting the
JDBC URL, reading data with and without JDBC reader options, getting the
schema, and handling exceptions. A new constant, SNOWFLAKE, has been
added to the SourceDriver enum in constants.py, which represents the
Snowflake JDBC driver class. The code modifications include updating the
constructor of the DataSource abstract base class to include a new
parameter 'scope', and updating the `_get_secrets` method to accept a
`key_name` parameter instead of 'key'. Additionally, a test file
'test_snowflake.py' has been added to test the functionality of the
SnowflakeDataSource class. This release also updates the pyproject.toml
file to version lock the dependencies like black, ruff, and isort, and
modifies the coverage report configuration to exclude certain files and
lines from coverage checks. These changes were completed by Ravikumar
Thangaraj and SundarShankar89.
* `remorph reconcile` baseline for Query Builder and Source Adapter for
oracle as source
([#150](#150)).

Dependency updates:

* Bump sqlglot from 22.4.0 to 22.5.0
([#175](#175)).
* Updated databricks-sdk requirement from <0.22,>=0.18 to >=0.18,<0.23
([#178](#178)).
* Updated databricks-sdk requirement from <0.23,>=0.18 to >=0.18,<0.24
([#189](#189)).
* Bump actions/checkout from 3 to 4
([#203](#203)).
* Bump actions/setup-python from 4 to 5
([#201](#201)).
* Bump codecov/codecov-action from 1 to 4
([#202](#202)).
* Bump softprops/action-gh-release from 1 to 2
([#204](#204)).
ravit-db pushed a commit that referenced this pull request Apr 18, 2024
* Added serverless validation using lsql library
([#176](#176)).
Workspaceclient object is used with `product` name and `product_version`
along with corresponding `cluster_id` or `warehouse_id` as `sdk_config`
in `MorphConfig` object.
* Enhanced install script to enforce usage of a warehouse or cluster
when `skip-validation` is set to `False`
([#213](#213)). In this
release, the installation process has been enhanced to mandate the use
of a warehouse or cluster when the `skip-validation` parameter is set to
`False`. This change has been implemented across various components,
including the install script, `transpile` function, and
`get_sql_backend` function. Additionally, new pytest fixtures and
methods have been added to improve test configuration and resource
management during testing. Unit tests have been updated to enforce usage
of a warehouse or cluster when the `skip-validation` flag is set to
`False`, ensuring proper resource allocation and validation process
improvement. This development focuses on promoting a proper setup and
usage of the system, guiding new users towards a correct configuration
and improving the overall reliability of the tool.
* Patch subquery with json column access
([#190](#190)). The
open-source library has been updated with new functionality to modify
how subqueries with JSON column access are handled in the `snowflake.py`
file. This change includes the addition of a check for an opening
parenthesis after the `FROM` keyword to detect and break loops when a
subquery is found, as opposed to a table name. This improvement enhances
the handling of complex subqueries and JSON column access, making the
code more robust and adaptable to different query structures.
Additionally, a new test method, `test_nested_query_with_json`, has been
introduced to the `tests/unit/snow/test_databricks.py` file to test the
behavior of nested queries involving JSON column access when using a
Snowflake dialect. This new method validates the expected output of a
specific nested query when it is transpiled to Snowflake's SQL dialect,
allowing for more comprehensive testing of JSON column access and type
casting in Snowflake dialects. The existing `test_delete_from_keyword`
method remains unchanged.
* Snowflake `UPDATE FROM` to Databricks `MERGE INTO` implementation
([#198](#198)).
* Use Runtime SQL backend in Notebooks
([#211](#211)). In this
update, the `db_sql.py` file in the `databricks/labs/remorph/helpers`
directory has been modified to support the use of the Runtime SQL
backend in Notebooks. This change includes the addition of a new
`RuntimeBackend` class in the `backends` module and an import statement
for `os`. The `get_sql_backend` function now returns a `RuntimeBackend`
instance when the `DATABRICKS_RUNTIME_VERSION` environment variable is
present, allowing for more efficient and secure SQL statement execution
in Databricks notebooks. Additionally, a new test case for the
`get_sql_backend` function has been added to ensure the correct behavior
of the function in various runtime environments. These enhancements
improve SQL execution performance and security in Databricks notebooks
and increase the project's versatility for different use cases.
* Added Issue Templates for bugs, feature and config
([#194](#194)). Two new
issue templates have been added to the project's GitHub repository to
improve issue creation and management. The first template, located in
`.github/ISSUE_TEMPLATE/bug.yml`, is for reporting bugs and prompts
users to provide detailed information about the issue, including the
current and expected behavior, steps to reproduce, relevant log output,
and sample query. The second template, added under the path
`.github/ISSUE_TEMPLATE/config.yml`, is for configuration-related issues
and includes support contact links for general Databricks questions and
Remorph documentation, as well as fields for specifying the operating
system and software version. A new issue template for feature requests,
named "Feature Request", has also been added, providing a structured
format for users to submit requests for new functionality for the
Remorph project. These templates will help streamline the issue creation
process, improve the quality of information provided, and make it easier
for the development team to quickly identify and address bugs and
feature requests.
* Added Databricks Source Adapter
([#185](#185)). In this
release, the project has been enhanced with several new features for the
Databricks Source Adapter. A new `engine` parameter has been added to
the `DataSource` class, replacing the original `source` parameter. The
`_get_secrets` and `_get_table_or_query` methods have been updated to
use the `engine` parameter for key naming and handling queries with a
`select` statement differently, respectively. A Databricks Source
Adapter for Oracle databases has been introduced, which includes a new
`OracleDataSource` class that provides functionality to connect to an
Oracle database using JDBC. A Databricks Source Adapter for Snowflake
has also been added, featuring the `SnowflakeDataSource` class that
handles data reading and schema retrieval from Snowflake. The
`DatabricksDataSource` class has been updated to handle data reading and
schema retrieval from Databricks, including a new `get_schema_query`
method that generates the query to fetch the schema based on the
provided catalog and table name. Exception handling for reading data and
fetching schema has been implemented for all new classes. These changes
provide increased flexibility for working with various data sources,
improved code maintainability, and better support for different use
cases.
* Added Threshold Query Builder
([#188](#188)). In this
release, the open-source library has added a Threshold Query Builder
feature, which includes several changes to the existing functionality in
the data source connector. A new import statement adds the `re` module
for regular expressions, and new parameters have been added to the
`read_data` and `get_schema` abstract methods. The
`_get_jdbc_reader_options` method has been updated to accept a `options`
parameter of type "JdbcReaderOptions", and a new static method,
"_get_table_or_query", has been added to construct the table or query
string based on provided parameters. Additionally, a new class,
"QueryConfig", has been introduced in the
"databricks.labs.remorph.reconcile" package to configure queries for
data reconciliation tasks. A new abstract base class QueryBuilder has
been added to the query_builder.py file, along with HashQueryBuilder and
ThresholdQueryBuilder classes to construct SQL queries for generating
hash values and selecting columns based on threshold values,
transformation rules, and filtering conditions. These changes aim to
enhance the functionality of the data source connector, add modularity,
customizability, and reusability to the query builder, and improve data
reconciliation tasks.
* Added snowflake connector code
([#177](#177)). In this
release, the open-source library has been updated to add a Snowflake
connector for data extraction and schema manipulation. The changes
include the addition of the SnowflakeDataSource class, which is used to
read data from Snowflake using PySpark, and has methods for getting the
JDBC URL, reading data with and without JDBC reader options, getting the
schema, and handling exceptions. A new constant, SNOWFLAKE, has been
added to the SourceDriver enum in constants.py, which represents the
Snowflake JDBC driver class. The code modifications include updating the
constructor of the DataSource abstract base class to include a new
parameter 'scope', and updating the `_get_secrets` method to accept a
`key_name` parameter instead of 'key'. Additionally, a test file
'test_snowflake.py' has been added to test the functionality of the
SnowflakeDataSource class. This release also updates the pyproject.toml
file to version lock the dependencies like black, ruff, and isort, and
modifies the coverage report configuration to exclude certain files and
lines from coverage checks. These changes were completed by Ravikumar
Thangaraj and SundarShankar89.
* `remorph reconcile` baseline for Query Builder and Source Adapter for
oracle as source
([#150](#150)).

Dependency updates:

* Bump sqlglot from 22.4.0 to 22.5.0
([#175](#175)).
* Updated databricks-sdk requirement from <0.22,>=0.18 to >=0.18,<0.23
([#178](#178)).
* Updated databricks-sdk requirement from <0.23,>=0.18 to >=0.18,<0.24
([#189](#189)).
* Bump actions/checkout from 3 to 4
([#203](#203)).
* Bump actions/setup-python from 4 to 5
([#201](#201)).
* Bump codecov/codecov-action from 1 to 4
([#202](#202)).
* Bump softprops/action-gh-release from 1 to 2
([#204](#204)).
sundarshankar89 pushed a commit to sundarshankar89/remorph that referenced this pull request Jan 2, 2025
sundarshankar89 pushed a commit to sundarshankar89/remorph that referenced this pull request Jan 3, 2025
sundarshankar89 added a commit to sundarshankar89/remorph that referenced this pull request Jan 3, 2025
* Added serverless validation using lsql library
([databrickslabs#176](databrickslabs#176)).
Workspaceclient object is used with `product` name and `product_version`
along with corresponding `cluster_id` or `warehouse_id` as `sdk_config`
in `MorphConfig` object.
* Enhanced install script to enforce usage of a warehouse or cluster
when `skip-validation` is set to `False`
([databrickslabs#213](databrickslabs#213)). In this
release, the installation process has been enhanced to mandate the use
of a warehouse or cluster when the `skip-validation` parameter is set to
`False`. This change has been implemented across various components,
including the install script, `transpile` function, and
`get_sql_backend` function. Additionally, new pytest fixtures and
methods have been added to improve test configuration and resource
management during testing. Unit tests have been updated to enforce usage
of a warehouse or cluster when the `skip-validation` flag is set to
`False`, ensuring proper resource allocation and validation process
improvement. This development focuses on promoting a proper setup and
usage of the system, guiding new users towards a correct configuration
and improving the overall reliability of the tool.
* Patch subquery with json column access
([databrickslabs#190](databrickslabs#190)). The
open-source library has been updated with new functionality to modify
how subqueries with JSON column access are handled in the `snowflake.py`
file. This change includes the addition of a check for an opening
parenthesis after the `FROM` keyword to detect and break loops when a
subquery is found, as opposed to a table name. This improvement enhances
the handling of complex subqueries and JSON column access, making the
code more robust and adaptable to different query structures.
Additionally, a new test method, `test_nested_query_with_json`, has been
introduced to the `tests/unit/snow/test_databricks.py` file to test the
behavior of nested queries involving JSON column access when using a
Snowflake dialect. This new method validates the expected output of a
specific nested query when it is transpiled to Snowflake's SQL dialect,
allowing for more comprehensive testing of JSON column access and type
casting in Snowflake dialects. The existing `test_delete_from_keyword`
method remains unchanged.
* Snowflake `UPDATE FROM` to Databricks `MERGE INTO` implementation
([databrickslabs#198](databrickslabs#198)).
* Use Runtime SQL backend in Notebooks
([databrickslabs#211](databrickslabs#211)). In this
update, the `db_sql.py` file in the `databricks/labs/remorph/helpers`
directory has been modified to support the use of the Runtime SQL
backend in Notebooks. This change includes the addition of a new
`RuntimeBackend` class in the `backends` module and an import statement
for `os`. The `get_sql_backend` function now returns a `RuntimeBackend`
instance when the `DATABRICKS_RUNTIME_VERSION` environment variable is
present, allowing for more efficient and secure SQL statement execution
in Databricks notebooks. Additionally, a new test case for the
`get_sql_backend` function has been added to ensure the correct behavior
of the function in various runtime environments. These enhancements
improve SQL execution performance and security in Databricks notebooks
and increase the project's versatility for different use cases.
* Added Issue Templates for bugs, feature and config
([databrickslabs#194](databrickslabs#194)). Two new
issue templates have been added to the project's GitHub repository to
improve issue creation and management. The first template, located in
`.github/ISSUE_TEMPLATE/bug.yml`, is for reporting bugs and prompts
users to provide detailed information about the issue, including the
current and expected behavior, steps to reproduce, relevant log output,
and sample query. The second template, added under the path
`.github/ISSUE_TEMPLATE/config.yml`, is for configuration-related issues
and includes support contact links for general Databricks questions and
Remorph documentation, as well as fields for specifying the operating
system and software version. A new issue template for feature requests,
named "Feature Request", has also been added, providing a structured
format for users to submit requests for new functionality for the
Remorph project. These templates will help streamline the issue creation
process, improve the quality of information provided, and make it easier
for the development team to quickly identify and address bugs and
feature requests.
* Added Databricks Source Adapter
([databrickslabs#185](databrickslabs#185)). In this
release, the project has been enhanced with several new features for the
Databricks Source Adapter. A new `engine` parameter has been added to
the `DataSource` class, replacing the original `source` parameter. The
`_get_secrets` and `_get_table_or_query` methods have been updated to
use the `engine` parameter for key naming and handling queries with a
`select` statement differently, respectively. A Databricks Source
Adapter for Oracle databases has been introduced, which includes a new
`OracleDataSource` class that provides functionality to connect to an
Oracle database using JDBC. A Databricks Source Adapter for Snowflake
has also been added, featuring the `SnowflakeDataSource` class that
handles data reading and schema retrieval from Snowflake. The
`DatabricksDataSource` class has been updated to handle data reading and
schema retrieval from Databricks, including a new `get_schema_query`
method that generates the query to fetch the schema based on the
provided catalog and table name. Exception handling for reading data and
fetching schema has been implemented for all new classes. These changes
provide increased flexibility for working with various data sources,
improved code maintainability, and better support for different use
cases.
* Added Threshold Query Builder
([databrickslabs#188](databrickslabs#188)). In this
release, the open-source library has added a Threshold Query Builder
feature, which includes several changes to the existing functionality in
the data source connector. A new import statement adds the `re` module
for regular expressions, and new parameters have been added to the
`read_data` and `get_schema` abstract methods. The
`_get_jdbc_reader_options` method has been updated to accept a `options`
parameter of type "JdbcReaderOptions", and a new static method,
"_get_table_or_query", has been added to construct the table or query
string based on provided parameters. Additionally, a new class,
"QueryConfig", has been introduced in the
"databricks.labs.remorph.reconcile" package to configure queries for
data reconciliation tasks. A new abstract base class QueryBuilder has
been added to the query_builder.py file, along with HashQueryBuilder and
ThresholdQueryBuilder classes to construct SQL queries for generating
hash values and selecting columns based on threshold values,
transformation rules, and filtering conditions. These changes aim to
enhance the functionality of the data source connector, add modularity,
customizability, and reusability to the query builder, and improve data
reconciliation tasks.
* Added snowflake connector code
([databrickslabs#177](databrickslabs#177)). In this
release, the open-source library has been updated to add a Snowflake
connector for data extraction and schema manipulation. The changes
include the addition of the SnowflakeDataSource class, which is used to
read data from Snowflake using PySpark, and has methods for getting the
JDBC URL, reading data with and without JDBC reader options, getting the
schema, and handling exceptions. A new constant, SNOWFLAKE, has been
added to the SourceDriver enum in constants.py, which represents the
Snowflake JDBC driver class. The code modifications include updating the
constructor of the DataSource abstract base class to include a new
parameter 'scope', and updating the `_get_secrets` method to accept a
`key_name` parameter instead of 'key'. Additionally, a test file
'test_snowflake.py' has been added to test the functionality of the
SnowflakeDataSource class. This release also updates the pyproject.toml
file to version lock the dependencies like black, ruff, and isort, and
modifies the coverage report configuration to exclude certain files and
lines from coverage checks. These changes were completed by Ravikumar
Thangaraj and SundarShankar89.
* `remorph reconcile` baseline for Query Builder and Source Adapter for
oracle as source
([databrickslabs#150](databrickslabs#150)).

Dependency updates:

* Bump sqlglot from 22.4.0 to 22.5.0
([databrickslabs#175](databrickslabs#175)).
* Updated databricks-sdk requirement from <0.22,>=0.18 to >=0.18,<0.23
([databrickslabs#178](databrickslabs#178)).
* Updated databricks-sdk requirement from <0.23,>=0.18 to >=0.18,<0.24
([databrickslabs#189](databrickslabs#189)).
* Bump actions/checkout from 3 to 4
([databrickslabs#203](databrickslabs#203)).
* Bump actions/setup-python from 4 to 5
([databrickslabs#201](databrickslabs#201)).
* Bump codecov/codecov-action from 1 to 4
([databrickslabs#202](databrickslabs#202)).
* Bump softprops/action-gh-release from 1 to 2
([databrickslabs#204](databrickslabs#204)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant