diff --git a/eng/pipelines/templates/jobs/tests-nightly-python.yml b/eng/pipelines/templates/jobs/tests-nightly-python.yml index 50c1bd24d767..e3be3452c96c 100644 --- a/eng/pipelines/templates/jobs/tests-nightly-python.yml +++ b/eng/pipelines/templates/jobs/tests-nightly-python.yml @@ -15,7 +15,7 @@ jobs: displayName: Validate Release Candidate Python - Linux variables: skipComponentGovernanceDetection: true - PythonVersion: '3.13.0-rc.2' + PythonVersion: '3.13.0-rc.3' TargetedPackages: ${{ parameters.TargetedPackages }} timeoutInMinutes: 90 diff --git a/eng/pipelines/templates/stages/platform-matrix-excluding-pypy.json b/eng/pipelines/templates/stages/platform-matrix-excluding-pypy.json index 0b55203ee574..217e3780b197 100644 --- a/eng/pipelines/templates/stages/platform-matrix-excluding-pypy.json +++ b/eng/pipelines/templates/stages/platform-matrix-excluding-pypy.json @@ -36,6 +36,17 @@ "TestSamples": "false" } } + }, + { + "Config": { + "Ubuntu2004_3130": { + "OSVmImage": "env:LINUXVMIMAGE", + "Pool": "env:LINUXPOOL", + "PythonVersion": "3.13.0-rc.3", + "CoverageArg": "--disablecov", + "TestSamples": "false" + } + } } ] } diff --git a/eng/pipelines/templates/stages/platform-matrix-no-312.json b/eng/pipelines/templates/stages/platform-matrix-no-312.json deleted file mode 100644 index 7ea18d31f80e..000000000000 --- a/eng/pipelines/templates/stages/platform-matrix-no-312.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "displayNames": { - "--disablecov": "", - "false": "", - "true": "" - }, - "matrix": { - "Agent": { - "windows-2022": { "OSVmImage": "env:WINDOWSVMIMAGE", "Pool": "env:WINDOWSPOOL" }, - "ubuntu-20.04": { "OSVmImage": "env:LINUXVMIMAGE", "Pool": "env:LINUXPOOL" }, - "macos-latest": { "OSVmImage": "env:MACVMIMAGE", "Pool": "env:MACPOOL" } - }, - "PythonVersion": [ "pypy3.9", "3.8", "3.10", "3.11" ], - "CoverageArg": "--disablecov", - "TestSamples": "false" - }, - "include": [ - { - "CoverageConfig": { - "ubuntu2004_39_coverage": { - "OSVmImage": "env:LINUXVMIMAGE", - "Pool": "env:LINUXPOOL", - "PythonVersion": "3.9", - "CoverageArg": "", - "TestSamples": "false" - } - } - } - ] - } - \ No newline at end of file diff --git a/eng/pipelines/templates/stages/platform-matrix-no-313.json b/eng/pipelines/templates/stages/platform-matrix-no-313.json new file mode 100644 index 000000000000..7e273142713e --- /dev/null +++ b/eng/pipelines/templates/stages/platform-matrix-no-313.json @@ -0,0 +1,41 @@ +{ + "displayNames": { + "--disablecov": "", + "false": "", + "true": "" + }, + "matrix": { + "Agent": { + "windows-2022": { "OSVmImage": "env:WINDOWSVMIMAGE", "Pool": "env:WINDOWSPOOL" }, + "ubuntu-20.04": { "OSVmImage": "env:LINUXVMIMAGE", "Pool": "env:LINUXPOOL" }, + "macos-latest": { "OSVmImage": "env:MACVMIMAGE", "Pool": "env:MACPOOL" } + }, + "PythonVersion": [ "3.8", "pypy3.9", "3.11", "3.10"], + "CoverageArg": "--disablecov", + "TestSamples": "false" + }, + "include": [ + { + "CoverageConfig": { + "ubuntu2004_39_coverage": { + "OSVmImage": "env:LINUXVMIMAGE", + "Pool": "env:LINUXPOOL", + "PythonVersion": "3.9", + "CoverageArg": "", + "TestSamples": "false" + } + } + }, + { + "Config": { + "Ubuntu2004_312": { + "OSVmImage": "env:LINUXVMIMAGE", + "Pool": "env:LINUXPOOL", + "PythonVersion": "3.12", + "CoverageArg": "--disablecov", + "TestSamples": "false" + } + } + } + ] +} \ No newline at end of file diff --git a/eng/pipelines/templates/stages/platform-matrix.json b/eng/pipelines/templates/stages/platform-matrix.json index 5c2286e4d589..bf39936207db 100644 --- a/eng/pipelines/templates/stages/platform-matrix.json +++ b/eng/pipelines/templates/stages/platform-matrix.json @@ -10,7 +10,7 @@ "ubuntu-20.04": { "OSVmImage": "env:LINUXVMIMAGE", "Pool": "env:LINUXPOOL" }, "macos-latest": { "OSVmImage": "env:MACVMIMAGE", "Pool": "env:MACPOOL" } }, - "PythonVersion": [ "3.8", "pypy3.9", "3.11", "3.10" ], + "PythonVersion": [ "3.8", "pypy3.9", "3.11", "3.10", "3.12" ], "CoverageArg": "--disablecov", "TestSamples": "false" }, @@ -28,10 +28,10 @@ }, { "Config": { - "Ubuntu2004_312": { + "Ubuntu2004_313": { "OSVmImage": "env:LINUXVMIMAGE", "Pool": "env:LINUXPOOL", - "PythonVersion": "3.12", + "PythonVersion": "3.13.0-rc.3", "CoverageArg": "--disablecov", "TestSamples": "false" } diff --git a/eng/pipelines/templates/steps/use-python-version.yml b/eng/pipelines/templates/steps/use-python-version.yml index e556500885da..0e43022f4048 100644 --- a/eng/pipelines/templates/steps/use-python-version.yml +++ b/eng/pipelines/templates/steps/use-python-version.yml @@ -19,3 +19,4 @@ steps: displayName: "Use Python ${{ parameters.versionSpec }}" inputs: versionSpec: ${{ parameters.versionSpec }} + allowUnstable: true diff --git a/eng/tox/install_depend_packages.py b/eng/tox/install_depend_packages.py index 8b5c946e3a8b..d46b4a9532c1 100644 --- a/eng/tox/install_depend_packages.py +++ b/eng/tox/install_depend_packages.py @@ -60,6 +60,7 @@ "azure-identity": {"msal": "1.23.0"}, "azure-core-tracing-opentelemetry": {"azure-core": "1.28.0"}, "azure-storage-file-datalake": {"azure-storage-blob": "12.22.0"}, + "azure-cosmos": {"azure-core": "1.30.0"} } MAXIMUM_VERSION_SPECIFIC_OVERRIDES = {} @@ -67,7 +68,15 @@ # PLATFORM SPECIFIC OVERRIDES provide additional generic (EG not tied to the package whos dependencies are being processed) # filtering on a _per platform_ basis. Primarily used to limit certain packages due to platform compatbility PLATFORM_SPECIFIC_MINIMUM_OVERRIDES = { - ">=3.12.0": {"azure-core": "1.23.1", "aiohttp": "3.8.6", "six": "1.16.0", "requests": "2.30.0"} + ">=3.12.0": { + "azure-core": "1.23.1", + "aiohttp": "3.8.6", + "six": "1.16.0", + "requests": "2.30.0" + }, + ">=3.13.0": { + "typing-extensions": "4.12.0", + } } PLATFORM_SPECIFIC_MAXIMUM_OVERRIDES = {} diff --git a/sdk/core/azure-core-experimental/tests/test_pyodide_transport.py b/sdk/core/azure-core-experimental/tests/test_pyodide_transport.py index b530591caa98..709b9b4ca24b 100644 --- a/sdk/core/azure-core-experimental/tests/test_pyodide_transport.py +++ b/sdk/core/azure-core-experimental/tests/test_pyodide_transport.py @@ -96,6 +96,7 @@ def create_mock_response(self, body: bytes, headers: dict, status: int, status_t return response_promise @pytest.mark.asyncio + @pytest.mark.skipif(sys.version_info >= (3, 13), reason="cgi is removed in Python 3.13") async def test_successful_send(self, mock_pyfetch, mock_pyodide_module, pipeline): """Test that a successful send returns the correct values.""" # setup data @@ -143,6 +144,7 @@ async def test_successful_send(self, mock_pyfetch, mock_pyodide_module, pipeline assert not kwargs["files"] @pytest.mark.asyncio + @pytest.mark.skipif(sys.version_info >= (3, 13), reason="cgi is removed in Python 3.13") async def test_unsuccessful_send(self, mock_pyfetch, mock_pyodide_module, pipeline): """Test that the pipeline is failing correctly.""" mock_pyfetch.reset_mock() @@ -154,6 +156,7 @@ async def test_unsuccessful_send(self, mock_pyfetch, mock_pyodide_module, pipeli # 3 retries plus the original request. assert mock_pyfetch.call_count == retry_total + 1 + @pytest.mark.skipif(sys.version_info >= (3, 13), reason="cgi is removed in Python 3.13") def test_valid_import(self, transport): """Test that we can import Pyodide classes from `azure.core.pipeline.transport` Adding the transport fixture will mock the Pyodide modules in `sys.modules`. diff --git a/sdk/core/azure-core-experimental/tests/utils.py b/sdk/core/azure-core-experimental/tests/utils.py index d562f4cf713d..000de57578ad 100644 --- a/sdk/core/azure-core-experimental/tests/utils.py +++ b/sdk/core/azure-core-experimental/tests/utils.py @@ -35,7 +35,7 @@ # ASYNC_TRANSPORTS.append(AsyncHttpXTransport) -from azure.core.experimental.transport import PyodideTransport +# from azure.core.experimental.transport import PyodideTransport # ASYNC_TRANSPORTS.append(PyodideTransport) diff --git a/sdk/core/azure-core/LICENSE b/sdk/core/azure-core/LICENSE index 63447fd8bbbf..b2f52a2bad4e 100644 --- a/sdk/core/azure-core/LICENSE +++ b/sdk/core/azure-core/LICENSE @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/sdk/cosmos/cosmos-emulator-matrix.json b/sdk/cosmos/cosmos-emulator-matrix.json index 72daff0c3855..35a069bf8b9f 100644 --- a/sdk/cosmos/cosmos-emulator-matrix.json +++ b/sdk/cosmos/cosmos-emulator-matrix.json @@ -44,8 +44,16 @@ "ACCOUNT_HOST": "https://localhost:8081/", "ACCOUNT_KEY": "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==", "Skip.Analyze": "true" + }, + "Emulator Tests Python 3.13": { + "PythonVersion": "3.13.0-rc.3", + "CoverageArg": "--disablecov", + "TestSamples": "false", + "ToxTestEnv": "'whl,sdist'", + "ACCOUNT_HOST": "https://localhost:8081/", + "ACCOUNT_KEY": "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==", + "Skip.Analyze": "true" } } } } - \ No newline at end of file diff --git a/sdk/ml/ci.yml b/sdk/ml/ci.yml index 5d7727dac30b..5df934d5cf7f 100644 --- a/sdk/ml/ci.yml +++ b/sdk/ml/ci.yml @@ -11,7 +11,7 @@ trigger: include: - sdk/ml/ - scripts/ - - sdk/core/ + - sdk/core/ pr: branches: @@ -24,7 +24,7 @@ pr: paths: include: - sdk/ml/ - - sdk/core/ + - sdk/core/ extends: template: /eng/pipelines/templates/stages/archetype-sdk-client.yml @@ -33,6 +33,11 @@ extends: ValidateFormatting: true TestTimeoutInMinutes: 75 TestProxy: true + MatrixConfigs: + - Name: ml_ci_matrix + Path: eng/pipelines/templates/stages/platform-matrix-no-313.json + Selection: sparse + GenerateVMJobs: true # This is a short term solution to create API review for python azure-ml package only when running pipeline manually # Long term solution should be to have different versions on main branch and release branch for python package so APIView can have different revisions for each version. # Tracking issue: https://github.com/Azure/azure-sdk-for-python/issues/29196