apache-airflow-providers-mysql 6.3.4rc1__tar.gz → 6.4.1rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. apache_airflow_providers_mysql-6.4.1rc1/NOTICE +5 -0
  2. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/PKG-INFO +46 -27
  3. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/README.rst +38 -22
  4. apache_airflow_providers_mysql-6.4.1rc1/docs/.latest-doc-only-change.txt +1 -0
  5. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/changelog.rst +52 -4
  6. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/index.rst +25 -23
  7. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/provider.yaml +4 -1
  8. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/pyproject.toml +8 -5
  9. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/__init__.py +3 -3
  10. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/hooks/mysql.py +2 -7
  11. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/transfers/presto_to_mysql.py +2 -6
  12. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/transfers/s3_to_mysql.py +2 -6
  13. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/transfers/trino_to_mysql.py +2 -6
  14. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/transfers/vertica_to_mysql.py +5 -9
  15. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/version_compat.py +0 -6
  16. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/assets/test_mysql.py +8 -3
  17. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/hooks/test_mysql.py +23 -13
  18. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/hooks/test_mysql_connector_python.py +3 -1
  19. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/transfers/test_s3_to_mysql.py +3 -5
  20. apache_airflow_providers_mysql-6.3.4rc1/docs/.latest-doc-only-change.txt +0 -1
  21. {apache_airflow_providers_mysql-6.3.4rc1/src/airflow/providers/mysql → apache_airflow_providers_mysql-6.4.1rc1}/LICENSE +0 -0
  22. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/commits.rst +0 -0
  23. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/conf.py +0 -0
  24. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/connections/mysql.rst +0 -0
  25. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/installing-providers-from-sources.rst +0 -0
  26. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/integration-logos/MySQL.png +0 -0
  27. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/operators.rst +0 -0
  28. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/redirects.txt +0 -0
  29. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/docs/security.rst +0 -0
  30. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/__init__.py +0 -0
  31. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/__init__.py +0 -0
  32. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/assets/__init__.py +0 -0
  33. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/assets/mysql.py +0 -0
  34. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/get_provider_info.py +0 -0
  35. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/hooks/__init__.py +0 -0
  36. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/src/airflow/providers/mysql/transfers/__init__.py +0 -0
  37. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/conftest.py +0 -0
  38. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/system/__init__.py +0 -0
  39. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/system/mysql/__init__.py +0 -0
  40. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/system/mysql/example_mysql.py +0 -0
  41. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/__init__.py +0 -0
  42. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/__init__.py +0 -0
  43. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/assets/__init__.py +0 -0
  44. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/hooks/__init__.py +0 -0
  45. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/transfers/__init__.py +0 -0
  46. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/transfers/test_presto_to_mysql.py +0 -0
  47. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/transfers/test_trino_to_mysql.py +0 -0
  48. {apache_airflow_providers_mysql-6.3.4rc1 → apache_airflow_providers_mysql-6.4.1rc1}/tests/unit/mysql/transfers/test_vertica_to_mysql.py +0 -0
@@ -0,0 +1,5 @@
1
+ Apache Airflow
2
+ Copyright 2016-2026 The Apache Software Foundation
3
+
4
+ This product includes software developed at
5
+ The Apache Software Foundation (http://www.apache.org/).
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-mysql
3
- Version: 6.3.4rc1
3
+ Version: 6.4.1rc1
4
4
  Summary: Provider package apache-airflow-providers-mysql for Apache Airflow
5
5
  Keywords: airflow-provider,mysql,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
7
7
  Maintainer-email: Apache Software Foundation <dev@airflow.apache.org>
8
8
  Requires-Python: >=3.10
9
9
  Description-Content-Type: text/x-rst
10
+ License-Expression: Apache-2.0
10
11
  Classifier: Development Status :: 5 - Production/Stable
11
12
  Classifier: Environment :: Console
12
13
  Classifier: Environment :: Web Environment
@@ -14,13 +15,15 @@ Classifier: Intended Audience :: Developers
14
15
  Classifier: Intended Audience :: System Administrators
15
16
  Classifier: Framework :: Apache Airflow
16
17
  Classifier: Framework :: Apache Airflow :: Provider
17
- Classifier: License :: OSI Approved :: Apache Software License
18
18
  Classifier: Programming Language :: Python :: 3.10
19
19
  Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Programming Language :: Python :: 3.13
22
22
  Classifier: Topic :: System :: Monitoring
23
- Requires-Dist: apache-airflow>=2.10.0rc1
23
+ License-File: LICENSE
24
+ License-File: NOTICE
25
+ Requires-Dist: apache-airflow>=2.11.0rc1
26
+ Requires-Dist: apache-airflow-providers-common-compat>=1.12.0rc1
24
27
  Requires-Dist: apache-airflow-providers-common-sql>=1.20.0rc1
25
28
  Requires-Dist: mysqlclient>=2.2.5; sys_platform != "darwin"
26
29
  Requires-Dist: mysql-connector-python>=9.1.0
@@ -31,8 +34,8 @@ Requires-Dist: apache-airflow-providers-presto ; extra == "presto"
31
34
  Requires-Dist: apache-airflow-providers-trino ; extra == "trino"
32
35
  Requires-Dist: apache-airflow-providers-vertica ; extra == "vertica"
33
36
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
34
- Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html
35
- Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4
37
+ Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.4.1/changelog.html
38
+ Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.4.1
36
39
  Project-URL: Mastodon, https://fosstodon.org/@airflow
37
40
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
38
41
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -69,7 +72,7 @@ Provides-Extra: vertica
69
72
 
70
73
  Package ``apache-airflow-providers-mysql``
71
74
 
72
- Release: ``6.3.4``
75
+ Release: ``6.4.1``
73
76
 
74
77
 
75
78
  `MySQL <https://www.mysql.com/>`__
@@ -82,7 +85,7 @@ This is a provider package for ``mysql`` provider. All classes for this provider
82
85
  are in ``airflow.providers.mysql`` python package.
83
86
 
84
87
  You can find package information and changelog for the provider
85
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.4/>`_.
88
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.4.1/>`_.
86
89
 
87
90
  Installation
88
91
  ------------
@@ -96,15 +99,16 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13
96
99
  Requirements
97
100
  ------------
98
101
 
99
- ======================================= =====================================
100
- PIP package Version required
101
- ======================================= =====================================
102
- ``apache-airflow`` ``>=2.10.0``
103
- ``apache-airflow-providers-common-sql`` ``>=1.20.0``
104
- ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
105
- ``mysql-connector-python`` ``>=9.1.0``
106
- ``aiomysql`` ``>=0.2.0``
107
- ======================================= =====================================
102
+ ========================================== =====================================
103
+ PIP package Version required
104
+ ========================================== =====================================
105
+ ``apache-airflow`` ``>=2.11.0``
106
+ ``apache-airflow-providers-common-compat`` ``>=1.8.0``
107
+ ``apache-airflow-providers-common-sql`` ``>=1.20.0``
108
+ ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
109
+ ``mysql-connector-python`` ``>=9.1.0``
110
+ ``aiomysql`` ``>=0.2.0``
111
+ ========================================== =====================================
108
112
 
109
113
  Cross provider package dependencies
110
114
  -----------------------------------
@@ -119,17 +123,32 @@ You can install such cross-provider dependencies when installing from PyPI. For
119
123
  pip install apache-airflow-providers-mysql[amazon]
120
124
 
121
125
 
122
- ============================================================================================================== ===============
123
- Dependent package Extra
124
- ============================================================================================================== ===============
125
- `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
126
- `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
127
- `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
128
- `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
129
- `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
130
- `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
131
- ============================================================================================================== ===============
126
+ ================================================================================================================== =================
127
+ Dependent package Extra
128
+ ================================================================================================================== =================
129
+ `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
130
+ `apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
131
+ `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
132
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
133
+ `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
134
+ `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
135
+ `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
136
+ ================================================================================================================== =================
137
+
138
+ Optional dependencies
139
+ ----------------------
140
+
141
+ ========================== ========================================
142
+ Extra Dependencies
143
+ ========================== ========================================
144
+ ``mysql-connector-python``
145
+ ``amazon`` ``apache-airflow-providers-amazon``
146
+ ``openlineage`` ``apache-airflow-providers-openlineage``
147
+ ``presto`` ``apache-airflow-providers-presto``
148
+ ``trino`` ``apache-airflow-providers-trino``
149
+ ``vertica`` ``apache-airflow-providers-vertica``
150
+ ========================== ========================================
132
151
 
133
152
  The changelog for the provider package can be found in the
134
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html>`_.
153
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.4.1/changelog.html>`_.
135
154
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-mysql``
25
25
 
26
- Release: ``6.3.4``
26
+ Release: ``6.4.1``
27
27
 
28
28
 
29
29
  `MySQL <https://www.mysql.com/>`__
@@ -36,7 +36,7 @@ This is a provider package for ``mysql`` provider. All classes for this provider
36
36
  are in ``airflow.providers.mysql`` python package.
37
37
 
38
38
  You can find package information and changelog for the provider
39
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.4/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.4.1/>`_.
40
40
 
41
41
  Installation
42
42
  ------------
@@ -50,15 +50,16 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13
50
50
  Requirements
51
51
  ------------
52
52
 
53
- ======================================= =====================================
54
- PIP package Version required
55
- ======================================= =====================================
56
- ``apache-airflow`` ``>=2.10.0``
57
- ``apache-airflow-providers-common-sql`` ``>=1.20.0``
58
- ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
59
- ``mysql-connector-python`` ``>=9.1.0``
60
- ``aiomysql`` ``>=0.2.0``
61
- ======================================= =====================================
53
+ ========================================== =====================================
54
+ PIP package Version required
55
+ ========================================== =====================================
56
+ ``apache-airflow`` ``>=2.11.0``
57
+ ``apache-airflow-providers-common-compat`` ``>=1.8.0``
58
+ ``apache-airflow-providers-common-sql`` ``>=1.20.0``
59
+ ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
60
+ ``mysql-connector-python`` ``>=9.1.0``
61
+ ``aiomysql`` ``>=0.2.0``
62
+ ========================================== =====================================
62
63
 
63
64
  Cross provider package dependencies
64
65
  -----------------------------------
@@ -73,16 +74,31 @@ You can install such cross-provider dependencies when installing from PyPI. For
73
74
  pip install apache-airflow-providers-mysql[amazon]
74
75
 
75
76
 
76
- ============================================================================================================== ===============
77
- Dependent package Extra
78
- ============================================================================================================== ===============
79
- `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
80
- `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
81
- `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
82
- `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
83
- `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
84
- `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
85
- ============================================================================================================== ===============
77
+ ================================================================================================================== =================
78
+ Dependent package Extra
79
+ ================================================================================================================== =================
80
+ `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
81
+ `apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
82
+ `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
83
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
84
+ `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
85
+ `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
86
+ `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
87
+ ================================================================================================================== =================
88
+
89
+ Optional dependencies
90
+ ----------------------
91
+
92
+ ========================== ========================================
93
+ Extra Dependencies
94
+ ========================== ========================================
95
+ ``mysql-connector-python``
96
+ ``amazon`` ``apache-airflow-providers-amazon``
97
+ ``openlineage`` ``apache-airflow-providers-openlineage``
98
+ ``presto`` ``apache-airflow-providers-presto``
99
+ ``trino`` ``apache-airflow-providers-trino``
100
+ ``vertica`` ``apache-airflow-providers-vertica``
101
+ ========================== ========================================
86
102
 
87
103
  The changelog for the provider package can be found in the
88
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html>`_.
104
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.4.1/changelog.html>`_.
@@ -0,0 +1 @@
1
+ 134348e1895ad54cfa4d3a75a78bafe872328b11
@@ -26,11 +26,57 @@
26
26
  Changelog
27
27
  ---------
28
28
 
29
- 6.3.4
29
+ 6.4.1
30
30
  .....
31
31
 
32
+ Misc
33
+ ~~~~
34
+
35
+ * ``Consume ''AirflowOptionalProviderFeatureException'' from compat sdk in providers (#60335)``
36
+ * ``New year means updated Copyright notices (#60344)``
37
+
38
+ .. Below changes are excluded from the changelog. Move them to
39
+ appropriate section above if needed. Do not delete the lines(!):
40
+ * ``Remove TaskInstance and TaskLogReader unused methods (#59922)``
41
+ * ``Refactor/sqla2 providers(celery, kubernetes, databricks, mysql) to remove SQLA query usage (#59537)``
42
+
43
+ 6.4.0
44
+ .....
45
+
46
+ .. note::
47
+ This release of provider is only available for Airflow 2.11+ as explained in the
48
+ Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>_.
49
+
50
+ Misc
51
+ ~~~~
52
+
53
+ * ``Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)``
54
+
55
+ .. Below changes are excluded from the changelog. Move them to
56
+ appropriate section above if needed. Do not delete the lines(!):
57
+ * ``Updates to release process of providers (#58316)``
58
+
59
+ 6.3.5
60
+ .....
61
+
62
+ Misc
63
+ ~~~~
64
+
65
+ * ``Convert all airflow distributions to be compliant with ASF requirements (#58138)``
66
+ * ``Migrate MySQL provider to 'common.compat' (#57165)``
67
+
68
+ .. Below changes are excluded from the changelog. Move them to
69
+ appropriate section above if needed. Do not delete the lines(!):
70
+ * ``Delete all unnecessary LICENSE Files (#58191)``
71
+ * ``Enable ruff PLW2101,PLW2901,PLW3301 rule (#57700)``
72
+ * ``Enable PT006 rule to mysql Provider test (#57937)``
73
+ * ``Prepare release for Oct 2025 wave of providers (#57029)``
74
+ * ``Remove placeholder Release Date in changelog and index files (#56056)``
75
+ * ``Enable PT011 rule to prvoider tests (#56021)``
76
+
77
+ 6.3.4
78
+ .....
32
79
 
33
- Release Date: ``|PypiReleaseDate|``
34
80
 
35
81
  Misc
36
82
  ~~~~
@@ -47,7 +93,8 @@ Doc-only
47
93
  appropriate section above if needed. Do not delete the lines(!):
48
94
  * ``Switch pre-commit to prek (#54258)``
49
95
 
50
- .. Review and move the new changes to one of the sections above:
96
+ .. Below changes are excluded from the changelog. Move them to
97
+ appropriate section above if needed. Do not delete the lines(!):
51
98
  * ``Fix Airflow 2 reference in README/index of providers (#55240)``
52
99
 
53
100
  6.3.3
@@ -229,7 +276,8 @@ Misc
229
276
  appropriate section above if needed. Do not delete the lines(!):
230
277
  * ``Use Python 3.9 as target version for Ruff & Black rules (#44298)``
231
278
 
232
- .. Review and move the new changes to one of the sections above:
279
+ .. Below changes are excluded from the changelog. Move them to
280
+ appropriate section above if needed. Do not delete the lines(!):
233
281
  * ``Update path of example dags in docs (#45069)``
234
282
 
235
283
  5.7.4
@@ -77,7 +77,7 @@ apache-airflow-providers-mysql package
77
77
  `MySQL <https://www.mysql.com/>`__
78
78
 
79
79
 
80
- Release: 6.3.4
80
+ Release: 6.4.1
81
81
 
82
82
  Provider package
83
83
  ----------------
@@ -95,17 +95,18 @@ For the minimum Airflow version supported, see ``Requirements`` below.
95
95
  Requirements
96
96
  ------------
97
97
 
98
- The minimum Apache Airflow version supported by this provider distribution is ``2.10.0``.
98
+ The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``.
99
99
 
100
- ======================================= =====================================
101
- PIP package Version required
102
- ======================================= =====================================
103
- ``apache-airflow`` ``>=2.10.0``
104
- ``apache-airflow-providers-common-sql`` ``>=1.20.0``
105
- ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
106
- ``mysql-connector-python`` ``>=9.1.0``
107
- ``aiomysql`` ``>=0.2.0``
108
- ======================================= =====================================
100
+ ========================================== =====================================
101
+ PIP package Version required
102
+ ========================================== =====================================
103
+ ``apache-airflow`` ``>=2.11.0``
104
+ ``apache-airflow-providers-common-compat`` ``>=1.12.0``
105
+ ``apache-airflow-providers-common-sql`` ``>=1.20.0``
106
+ ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
107
+ ``mysql-connector-python`` ``>=9.1.0``
108
+ ``aiomysql`` ``>=0.2.0``
109
+ ========================================== =====================================
109
110
 
110
111
  Cross provider package dependencies
111
112
  -----------------------------------
@@ -120,16 +121,17 @@ You can install such cross-provider dependencies when installing from PyPI. For
120
121
  pip install apache-airflow-providers-mysql[amazon]
121
122
 
122
123
 
123
- ============================================================================================================== ===============
124
- Dependent package Extra
125
- ============================================================================================================== ===============
126
- `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
127
- `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
128
- `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
129
- `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
130
- `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
131
- `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
132
- ============================================================================================================== ===============
124
+ ================================================================================================================== =================
125
+ Dependent package Extra
126
+ ================================================================================================================== =================
127
+ `apache-airflow-providers-amazon <https://airflow.apache.org/docs/apache-airflow-providers-amazon>`_ ``amazon``
128
+ `apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
129
+ `apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
130
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
131
+ `apache-airflow-providers-presto <https://airflow.apache.org/docs/apache-airflow-providers-presto>`_ ``presto``
132
+ `apache-airflow-providers-trino <https://airflow.apache.org/docs/apache-airflow-providers-trino>`_ ``trino``
133
+ `apache-airflow-providers-vertica <https://airflow.apache.org/docs/apache-airflow-providers-vertica>`_ ``vertica``
134
+ ================================================================================================================== =================
133
135
 
134
136
  Downloading official packages
135
137
  -----------------------------
@@ -137,5 +139,5 @@ Downloading official packages
137
139
  You can download officially released packages and verify their checksums and signatures from the
138
140
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
139
141
 
140
- * `The apache-airflow-providers-mysql 6.3.4 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4.tar.gz.sha512>`__)
141
- * `The apache-airflow-providers-mysql 6.3.4 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4-py3-none-any.whl.sha512>`__)
142
+ * `The apache-airflow-providers-mysql 6.4.1 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1.tar.gz.sha512>`__)
143
+ * `The apache-airflow-providers-mysql 6.4.1 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.4.1-py3-none-any.whl.sha512>`__)
@@ -22,12 +22,15 @@ description: |
22
22
  `MySQL <https://www.mysql.com/>`__
23
23
 
24
24
  state: ready
25
- source-date-epoch: 1756877094
25
+ source-date-epoch: 1768335332
26
26
  # Note that those versions are maintained by release manager - do not update them manually
27
27
  # with the exception of case where other provider in sources has >= new provider version.
28
28
  # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
29
29
  # to be done in the same PR
30
30
  versions:
31
+ - 6.4.1
32
+ - 6.4.0
33
+ - 6.3.5
31
34
  - 6.3.4
32
35
  - 6.3.3
33
36
  - 6.3.2
@@ -25,9 +25,11 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-mysql"
28
- version = "6.3.4rc1"
28
+ version = "6.4.1rc1"
29
29
  description = "Provider package apache-airflow-providers-mysql for Apache Airflow"
30
30
  readme = "README.rst"
31
+ license = "Apache-2.0"
32
+ license-files = ['LICENSE', 'NOTICE']
31
33
  authors = [
32
34
  {name="Apache Software Foundation", email="dev@airflow.apache.org"},
33
35
  ]
@@ -43,7 +45,6 @@ classifiers = [
43
45
  "Intended Audience :: System Administrators",
44
46
  "Framework :: Apache Airflow",
45
47
  "Framework :: Apache Airflow :: Provider",
46
- "License :: OSI Approved :: Apache Software License",
47
48
  "Programming Language :: Python :: 3.10",
48
49
  "Programming Language :: Python :: 3.11",
49
50
  "Programming Language :: Python :: 3.12",
@@ -57,7 +58,8 @@ requires-python = ">=3.10"
57
58
  # Make sure to run ``prek update-providers-dependencies --all-files``
58
59
  # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
59
60
  dependencies = [
60
- "apache-airflow>=2.10.0rc1",
61
+ "apache-airflow>=2.11.0rc1",
62
+ "apache-airflow-providers-common-compat>=1.12.0rc1",
61
63
  "apache-airflow-providers-common-sql>=1.20.0rc1",
62
64
  # The mysqlclient package creates friction when installing on MacOS as it needs pkg-config to
63
65
  # Install and compile, and it's really only used by MySQL provider, so we can skip it on MacOS
@@ -95,6 +97,7 @@ dev = [
95
97
  "apache-airflow-task-sdk",
96
98
  "apache-airflow-devel-common",
97
99
  "apache-airflow-providers-amazon",
100
+ "apache-airflow-providers-common-compat",
98
101
  "apache-airflow-providers-common-sql",
99
102
  "apache-airflow-providers-openlineage",
100
103
  "apache-airflow-providers-presto",
@@ -129,8 +132,8 @@ apache-airflow-providers-common-sql = {workspace = true}
129
132
  apache-airflow-providers-standard = {workspace = true}
130
133
 
131
134
  [project.urls]
132
- "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4"
133
- "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html"
135
+ "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.4.1"
136
+ "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.4.1/changelog.html"
134
137
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
135
138
  "Source Code" = "https://github.com/apache/airflow"
136
139
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -29,11 +29,11 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "6.3.4"
32
+ __version__ = "6.4.1"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
- "2.10.0"
35
+ "2.11.0"
36
36
  ):
37
37
  raise RuntimeError(
38
- f"The package `apache-airflow-providers-mysql:{__version__}` needs Apache Airflow 2.10.0+"
38
+ f"The package `apache-airflow-providers-mysql:{__version__}` needs Apache Airflow 2.11.0+"
39
39
  )
@@ -24,18 +24,13 @@ import logging
24
24
  from typing import TYPE_CHECKING, Any, Union
25
25
  from urllib.parse import quote_plus, urlencode
26
26
 
27
- from airflow.exceptions import AirflowOptionalProviderFeatureException
27
+ from airflow.providers.common.compat.sdk import AirflowOptionalProviderFeatureException
28
28
  from airflow.providers.common.sql.hooks.sql import DbApiHook
29
29
 
30
30
  logger = logging.getLogger(__name__)
31
31
 
32
32
  if TYPE_CHECKING:
33
- from airflow.providers.mysql.version_compat import AIRFLOW_V_3_0_PLUS
34
-
35
- if AIRFLOW_V_3_0_PLUS:
36
- from airflow.sdk import Connection
37
- else:
38
- from airflow.models.connection import Connection # type: ignore[assignment]
33
+ from airflow.providers.common.compat.sdk import Connection
39
34
 
40
35
  try:
41
36
  from mysql.connector.abstracts import MySQLConnectionAbstract
@@ -20,16 +20,12 @@ from __future__ import annotations
20
20
  from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING
22
22
 
23
+ from airflow.providers.common.compat.sdk import BaseOperator
23
24
  from airflow.providers.mysql.hooks.mysql import MySqlHook
24
- from airflow.providers.mysql.version_compat import BaseOperator
25
25
  from airflow.providers.presto.hooks.presto import PrestoHook
26
26
 
27
27
  if TYPE_CHECKING:
28
- try:
29
- from airflow.sdk.definitions.context import Context
30
- except ImportError:
31
- # TODO: Remove once provider drops support for Airflow 2
32
- from airflow.utils.context import Context
28
+ from airflow.providers.common.compat.sdk import Context
33
29
 
34
30
 
35
31
  class PrestoToMySqlOperator(BaseOperator):
@@ -21,15 +21,11 @@ from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING
22
22
 
23
23
  from airflow.providers.amazon.aws.hooks.s3 import S3Hook
24
+ from airflow.providers.common.compat.sdk import BaseOperator
24
25
  from airflow.providers.mysql.hooks.mysql import MySqlHook
25
- from airflow.providers.mysql.version_compat import BaseOperator
26
26
 
27
27
  if TYPE_CHECKING:
28
- try:
29
- from airflow.sdk.definitions.context import Context
30
- except ImportError:
31
- # TODO: Remove once provider drops support for Airflow 2
32
- from airflow.utils.context import Context
28
+ from airflow.providers.common.compat.sdk import Context
33
29
 
34
30
 
35
31
  class S3ToMySqlOperator(BaseOperator):
@@ -20,16 +20,12 @@ from __future__ import annotations
20
20
  from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING
22
22
 
23
+ from airflow.providers.common.compat.sdk import BaseOperator
23
24
  from airflow.providers.mysql.hooks.mysql import MySqlHook
24
- from airflow.providers.mysql.version_compat import BaseOperator
25
25
  from airflow.providers.trino.hooks.trino import TrinoHook
26
26
 
27
27
  if TYPE_CHECKING:
28
- try:
29
- from airflow.sdk.definitions.context import Context
30
- except ImportError:
31
- # TODO: Remove once provider drops support for Airflow 2
32
- from airflow.utils.context import Context
28
+ from airflow.providers.common.compat.sdk import Context
33
29
 
34
30
 
35
31
  class TrinoToMySqlOperator(BaseOperator):
@@ -33,16 +33,12 @@ except ImportError:
33
33
  "installed in case you see compilation error during installation."
34
34
  )
35
35
 
36
+ from airflow.providers.common.compat.sdk import BaseOperator
36
37
  from airflow.providers.mysql.hooks.mysql import MySqlHook
37
- from airflow.providers.mysql.version_compat import BaseOperator
38
38
  from airflow.providers.vertica.hooks.vertica import VerticaHook
39
39
 
40
40
  if TYPE_CHECKING:
41
- try:
42
- from airflow.sdk.definitions.context import Context
43
- except ImportError:
44
- # TODO: Remove once provider drops support for Airflow 2
45
- from airflow.utils.context import Context
41
+ from airflow.providers.common.compat.sdk import Context
46
42
 
47
43
 
48
44
  class VerticaToMySqlOperator(BaseOperator):
@@ -149,13 +145,13 @@ class VerticaToMySqlOperator(BaseOperator):
149
145
  self._run_preoperator(mysql)
150
146
  try:
151
147
  self.log.info("Bulk inserting rows into MySQL...")
152
- with closing(mysql.get_conn()) as conn, closing(conn.cursor()) as cursor:
153
- cursor.execute(
148
+ with closing(mysql.get_conn()) as conn2, closing(conn2.cursor()) as cursor2:
149
+ cursor2.execute(
154
150
  f"LOAD DATA LOCAL INFILE '{tmpfile.name}' "
155
151
  f"INTO TABLE {self.mysql_table} "
156
152
  f"LINES TERMINATED BY '\r\n' ({', '.join(selected_columns)})"
157
153
  )
158
- conn.commit()
154
+ conn2.commit()
159
155
  self.log.info("Inserted rows into MySQL %s", count)
160
156
  except (MySQLdb.Error, MySQLdb.Warning):
161
157
  self.log.info("Inserted rows into MySQL 0")
@@ -29,12 +29,6 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
29
29
 
30
30
  AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
31
31
 
32
- if AIRFLOW_V_3_0_PLUS:
33
- from airflow.sdk import BaseOperator
34
- else:
35
- from airflow.models import BaseOperator
36
-
37
32
  __all__ = [
38
33
  "AIRFLOW_V_3_0_PLUS",
39
- "BaseOperator",
40
34
  ]
@@ -25,7 +25,7 @@ from airflow.providers.mysql.assets.mysql import sanitize_uri
25
25
 
26
26
 
27
27
  @pytest.mark.parametrize(
28
- "original, normalized",
28
+ ("original", "normalized"),
29
29
  [
30
30
  pytest.param(
31
31
  "mysql://example.com:1234/database/table",
@@ -56,11 +56,16 @@ def test_sanitize_uri_pass(original: str, normalized: str) -> None:
56
56
  pytest.param("mysql://", id="blank"),
57
57
  pytest.param("mysql:///database/table", id="no-host"),
58
58
  pytest.param("mysql://example.com/database", id="missing-component"),
59
- pytest.param("mysql://example.com:abcd/database/table", id="non-port"),
60
59
  pytest.param("mysql://example.com/database/table/column", id="extra-component"),
61
60
  ],
62
61
  )
63
62
  def test_sanitize_uri_fail(value: str) -> None:
64
63
  uri_i = urllib.parse.urlsplit(value)
65
- with pytest.raises(ValueError):
64
+ with pytest.raises(ValueError, match="URI format mysql:// must contain"):
65
+ sanitize_uri(uri_i)
66
+
67
+
68
+ def test_sanitize_uri_fail_non_port() -> None:
69
+ uri_i = urllib.parse.urlsplit("mysql://example.com:abcd/database/table")
70
+ with pytest.raises(ValueError, match="Port could not be cast to integer value as 'abcd'"):
66
71
  sanitize_uri(uri_i)
@@ -25,8 +25,12 @@ from unittest import mock
25
25
  import pytest
26
26
  import sqlalchemy
27
27
 
28
- from airflow.models import Connection
29
28
  from airflow.models.dag import DAG
29
+ from airflow.providers.common.compat.sdk import Connection
30
+ from airflow.providers.mysql.hooks.mysql import MySqlHook
31
+
32
+ from tests_common.test_utils.asserts import assert_equal_ignore_multiple_spaces
33
+ from tests_common.test_utils.compat import timezone
30
34
 
31
35
  try:
32
36
  import MySQLdb.cursors
@@ -35,15 +39,6 @@ try:
35
39
  except ImportError:
36
40
  MYSQL_AVAILABLE = False
37
41
 
38
- from airflow.providers.mysql.hooks.mysql import MySqlHook
39
-
40
- try:
41
- from airflow.sdk import timezone
42
- except ImportError:
43
- from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
44
-
45
- from tests_common.test_utils.asserts import assert_equal_ignore_multiple_spaces
46
-
47
42
  SSL_DICT = {"cert": "/tmp/client-cert.pem", "ca": "/tmp/server-ca.pem", "key": "/tmp/client-key.pem"}
48
43
  INSERT_SQL_STATEMENT = "INSERT INTO connection (id, conn_id, conn_type, description, host, `schema`, login, password, port, is_encrypted, is_extra_encrypted, extra) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
49
44
 
@@ -52,6 +47,7 @@ INSERT_SQL_STATEMENT = "INSERT INTO connection (id, conn_id, conn_type, descript
52
47
  class TestMySqlHookConn:
53
48
  def setup_method(self):
54
49
  self.connection = Connection(
50
+ conn_id="test_conn_id",
55
51
  conn_type="mysql",
56
52
  login="login",
57
53
  password="password",
@@ -91,7 +87,7 @@ class TestMySqlHookConn:
91
87
 
92
88
  @mock.patch("MySQLdb.connect")
93
89
  @pytest.mark.parametrize(
94
- "connection_params, expected_uri",
90
+ ("connection_params", "expected_uri"),
95
91
  [
96
92
  pytest.param(
97
93
  {
@@ -194,7 +190,14 @@ class TestMySqlHookConn:
194
190
 
195
191
  @mock.patch("MySQLdb.connect")
196
192
  def test_get_conn_from_connection(self, mock_connect):
197
- conn = Connection(login="login-conn", password="password-conn", host="host", schema="schema")
193
+ conn = Connection(
194
+ conn_id="test_conn_id",
195
+ conn_type="mysql",
196
+ login="login-conn",
197
+ password="password-conn",
198
+ host="host",
199
+ schema="schema",
200
+ )
198
201
  hook = MySqlHook(connection=conn)
199
202
  hook.get_conn()
200
203
  mock_connect.assert_called_once_with(
@@ -203,7 +206,14 @@ class TestMySqlHookConn:
203
206
 
204
207
  @mock.patch("MySQLdb.connect")
205
208
  def test_get_conn_from_connection_with_schema(self, mock_connect):
206
- conn = Connection(login="login-conn", password="password-conn", host="host", schema="schema")
209
+ conn = Connection(
210
+ conn_id="test_conn_id",
211
+ conn_type="mysql",
212
+ login="login-conn",
213
+ password="password-conn",
214
+ host="host",
215
+ schema="schema",
216
+ )
207
217
  hook = MySqlHook(connection=conn, schema="schema-override")
208
218
  hook.get_conn()
209
219
  mock_connect.assert_called_once_with(
@@ -20,13 +20,15 @@ from __future__ import annotations
20
20
  import json
21
21
  from unittest import mock
22
22
 
23
- from airflow.models import Connection
23
+ from airflow.providers.common.compat.sdk import Connection
24
24
  from airflow.providers.mysql.hooks.mysql import MySqlHook
25
25
 
26
26
 
27
27
  class TestMySqlHookConnMySqlConnectorPython:
28
28
  def setup_method(self):
29
29
  self.connection = Connection(
30
+ conn_id="test_conn_id",
31
+ conn_type="mysql",
30
32
  login="login",
31
33
  password="password",
32
34
  host="host",
@@ -19,7 +19,7 @@ from __future__ import annotations
19
19
  from unittest.mock import patch
20
20
 
21
21
  import pytest
22
- from sqlalchemy import or_
22
+ from sqlalchemy import delete, or_
23
23
 
24
24
  from airflow import models
25
25
  from airflow.providers.mysql.transfers.s3_to_mysql import S3ToMySqlOperator
@@ -101,10 +101,8 @@ class TestS3ToMySqlTransfer:
101
101
 
102
102
  def teardown_method(self):
103
103
  with create_session() as session:
104
- (
105
- session.query(models.Connection)
106
- .filter(
104
+ session.execute(
105
+ delete(models.Connection).where(
107
106
  or_(models.Connection.conn_id == "s3_test", models.Connection.conn_id == "mysql_test")
108
107
  )
109
- .delete()
110
108
  )
@@ -1 +0,0 @@
1
- d4473555c0e7022e073489b7163d49102881a1a6