diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 58fcbee..c701359 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:c8878270182edaab99f2927969d4f700c3af265accd472c3425deedff2b7fd93 -# created: 2022-07-14T01:58:16.015625351Z + digest: sha256:c6c965a4bf40c19011b11f87dbc801a66d3a23fbc6704102be064ef31c51f1c3 +# created: 2022-08-09T15:58:56.463048506Z diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index b46d730..7092a13 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -10,7 +10,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Setup Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "3.10" - name: Install nox @@ -26,7 +26,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Setup Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "3.10" - name: Install nox diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f512a49..d2aee5b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -10,7 +10,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Setup Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "3.10" - name: Install nox diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index 5531b01..87ade4d 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Setup Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} - name: Install nox @@ -39,7 +39,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Setup Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "3.10" - name: Install coverage diff --git a/CHANGELOG.md b/CHANGELOG.md index 59d5eb7..5e002f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [0.7.0](https://github.com/googleapis/python-bigquery-migration/compare/v0.6.0...v0.7.0) (2022-08-11) + + +### Features + +* **v2:** Add MySQL dialect ([#116](https://github.com/googleapis/python-bigquery-migration/issues/116)) ([9f66ca4](https://github.com/googleapis/python-bigquery-migration/commit/9f66ca4c1e8b1438a8f11919c24fb6506a5790ea)) + + +### Bug Fixes + +* **deps:** allow protobuf < 5.0.0 ([#118](https://github.com/googleapis/python-bigquery-migration/issues/118)) ([b217543](https://github.com/googleapis/python-bigquery-migration/commit/b2175431fd5b2391f9490a5900977c5768d6712a)) +* **deps:** require proto-plus >= 1.22.0 ([b217543](https://github.com/googleapis/python-bigquery-migration/commit/b2175431fd5b2391f9490a5900977c5768d6712a)) + ## [0.6.0](https://github.com/googleapis/python-bigquery-migration/compare/v0.5.0...v0.6.0) (2022-07-16) diff --git a/bigquery-migration-v2alpha-py.tar.gz b/bigquery-migration-v2alpha-py.tar.gz new file mode 100644 index 0000000..e69de29 diff --git a/google/cloud/bigquery_migration/__init__.py b/google/cloud/bigquery_migration/__init__.py index 7c12438..861cad9 100644 --- a/google/cloud/bigquery_migration/__init__.py +++ b/google/cloud/bigquery_migration/__init__.py @@ -52,6 +52,7 @@ BigQueryDialect, Dialect, HiveQLDialect, + MySQLDialect, NameMappingKey, NameMappingValue, NetezzaDialect, @@ -96,6 +97,7 @@ "BigQueryDialect", "Dialect", "HiveQLDialect", + "MySQLDialect", "NameMappingKey", "NameMappingValue", "NetezzaDialect", diff --git a/google/cloud/bigquery_migration_v2/__init__.py b/google/cloud/bigquery_migration_v2/__init__.py index 76c30df..d99dbca 100644 --- a/google/cloud/bigquery_migration_v2/__init__.py +++ b/google/cloud/bigquery_migration_v2/__init__.py @@ -41,6 +41,7 @@ BigQueryDialect, Dialect, HiveQLDialect, + MySQLDialect, NameMappingKey, NameMappingValue, NetezzaDialect, @@ -79,6 +80,7 @@ "MigrationSubtask", "MigrationTask", "MigrationWorkflow", + "MySQLDialect", "NameMappingKey", "NameMappingValue", "NetezzaDialect", diff --git a/google/cloud/bigquery_migration_v2/types/__init__.py b/google/cloud/bigquery_migration_v2/types/__init__.py index 45476e5..6ab511a 100644 --- a/google/cloud/bigquery_migration_v2/types/__init__.py +++ b/google/cloud/bigquery_migration_v2/types/__init__.py @@ -32,6 +32,7 @@ BigQueryDialect, Dialect, HiveQLDialect, + MySQLDialect, NameMappingKey, NameMappingValue, NetezzaDialect, @@ -74,6 +75,7 @@ "BigQueryDialect", "Dialect", "HiveQLDialect", + "MySQLDialect", "NameMappingKey", "NameMappingValue", "NetezzaDialect", diff --git a/google/cloud/bigquery_migration_v2/types/migration_entities.py b/google/cloud/bigquery_migration_v2/types/migration_entities.py index c0b3c18..d7acbeb 100644 --- a/google/cloud/bigquery_migration_v2/types/migration_entities.py +++ b/google/cloud/bigquery_migration_v2/types/migration_entities.py @@ -122,7 +122,8 @@ class MigrationTask(proto.Message): Translation_HiveQL2BQ, Translation_SparkSQL2BQ, Translation_Snowflake2BQ, Translation_Netezza2BQ, Translation_AzureSynapse2BQ, Translation_Vertica2BQ, - Translation_SQLServer2BQ, Translation_Presto2BQ. + Translation_SQLServer2BQ, Translation_Presto2BQ, + Translation_MySQL2BQ. state (google.cloud.bigquery_migration_v2.types.MigrationTask.State): Output only. The current state of the task. processing_error (google.rpc.error_details_pb2.ErrorInfo): diff --git a/google/cloud/bigquery_migration_v2/types/translation_config.py b/google/cloud/bigquery_migration_v2/types/translation_config.py index bab0fe8..71343ef 100644 --- a/google/cloud/bigquery_migration_v2/types/translation_config.py +++ b/google/cloud/bigquery_migration_v2/types/translation_config.py @@ -33,6 +33,7 @@ "SQLServerDialect", "PostgresqlDialect", "PrestoDialect", + "MySQLDialect", "ObjectNameMappingList", "ObjectNameMapping", "NameMappingKey", @@ -170,6 +171,10 @@ class Dialect(proto.Message): presto_dialect (google.cloud.bigquery_migration_v2.types.PrestoDialect): The Presto dialect + This field is a member of `oneof`_ ``dialect_value``. + mysql_dialect (google.cloud.bigquery_migration_v2.types.MySQLDialect): + The MySQL dialect + This field is a member of `oneof`_ ``dialect_value``. """ @@ -251,6 +256,12 @@ class Dialect(proto.Message): oneof="dialect_value", message="PrestoDialect", ) + mysql_dialect = proto.Field( + proto.MESSAGE, + number=14, + oneof="dialect_value", + message="MySQLDialect", + ) class BigQueryDialect(proto.Message): @@ -323,6 +334,10 @@ class PrestoDialect(proto.Message): r"""The dialect definition for Presto.""" +class MySQLDialect(proto.Message): + r"""The dialect definition for MySQL.""" + + class ObjectNameMappingList(proto.Message): r"""Represents a map of name mappings using a list of key:value proto messages of existing name to desired output name. diff --git a/noxfile.py b/noxfile.py index 94b2f9c..cc39f3b 100644 --- a/noxfile.py +++ b/noxfile.py @@ -334,7 +334,8 @@ def prerelease_deps(session): # Install all dependencies session.install("-e", ".[all, tests, tracing]") - session.install(*UNIT_TEST_STANDARD_DEPENDENCIES) + unit_deps_all = UNIT_TEST_STANDARD_DEPENDENCIES + UNIT_TEST_EXTERNAL_DEPENDENCIES + session.install(*unit_deps_all) system_deps_all = ( SYSTEM_TEST_STANDARD_DEPENDENCIES + SYSTEM_TEST_EXTERNAL_DEPENDENCIES @@ -363,12 +364,6 @@ def prerelease_deps(session): session.install(*constraints_deps) - if os.path.exists("samples/snippets/requirements.txt"): - session.install("-r", "samples/snippets/requirements.txt") - - if os.path.exists("samples/snippets/requirements-test.txt"): - session.install("-r", "samples/snippets/requirements-test.txt") - prerel_deps = [ "protobuf", # dependency of grpc @@ -405,11 +400,19 @@ def prerelease_deps(session): system_test_folder_path = os.path.join("tests", "system") # Only run system tests if found. - if os.path.exists(system_test_path) or os.path.exists(system_test_folder_path): - session.run("py.test", "tests/system") - - snippets_test_path = os.path.join("samples", "snippets") - - # Only run samples tests if found. - if os.path.exists(snippets_test_path): - session.run("py.test", "samples/snippets") + if os.path.exists(system_test_path): + session.run( + "py.test", + "--verbose", + f"--junitxml=system_{session.python}_sponge_log.xml", + system_test_path, + *session.posargs, + ) + if os.path.exists(system_test_folder_path): + session.run( + "py.test", + "--verbose", + f"--junitxml=system_{session.python}_sponge_log.xml", + system_test_folder_path, + *session.posargs, + ) diff --git a/samples/snippets/requirements-test.txt b/samples/snippets/requirements-test.txt index 1fa6eb0..bdc49f7 100644 --- a/samples/snippets/requirements-test.txt +++ b/samples/snippets/requirements-test.txt @@ -1,4 +1,4 @@ pytest==7.1.2 -google-cloud-testutils==1.3.1 -google-api-core==2.8.1 -google-cloud-storage==2.3.0 \ No newline at end of file +google-cloud-testutils==1.3.3 +google-api-core==2.8.2 +google-cloud-storage==2.5.0 \ No newline at end of file diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 311dc82..bafdc54 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,2 +1 @@ -google-cloud-bigquery-migration==0.4.2 -protobuf==3.20.1 +google-cloud-bigquery-migration==0.6.0 diff --git a/setup.py b/setup.py index 998f1f6..2d7566c 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ import setuptools # type: ignore -version = "0.6.0" +version = "0.7.0" package_root = os.path.abspath(os.path.dirname(__file__)) @@ -40,8 +40,8 @@ include_package_data=True, install_requires=( "google-api-core[grpc] >= 1.32.0, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*", - "proto-plus >= 1.15.0, <2.0.0dev", - "protobuf >= 3.19.0, <4.0.0dev", + "proto-plus >= 1.22.0, <2.0.0dev", + "protobuf >= 3.19.0, <5.0.0dev", ), python_requires=">=3.7", classifiers=[ diff --git a/testing/constraints-3.7.txt b/testing/constraints-3.7.txt index 5d57a8d..3df2732 100644 --- a/testing/constraints-3.7.txt +++ b/testing/constraints-3.7.txt @@ -6,6 +6,6 @@ # e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev", # Then this file should have foo==1.14.0 google-api-core==1.32.0 -proto-plus==1.15.0 +proto-plus==1.22.0 libcst==0.2.5 protobuf==3.19.0