From 880fbaa21be716525f21ee43ac885e34214f86ed Mon Sep 17 00:00:00 2001 From: Andy Staples Date: Thu, 9 Jul 2026 10:38:08 -0600 Subject: [PATCH 1/3] Install setuptools_scm via pip to fix vcs_versioning ModuleNotFoundError setup.py's setup_requires=['setuptools_scm'] uses the deprecated fetch_build_eggs path, which fetches setuptools_scm as an egg but not its transitive dependency vcs_versioning (split out in setuptools_scm 10.x), causing ModuleNotFoundError during build. Pip-installing setuptools_scm satisfies the requirement (resolving vcs_versioning) and skips the egg-fetch path. --- azure-pipelines.yml | 7 +++++-- eng/templates/build.yml | 6 +----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6fb919d..accc2e1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -40,8 +40,11 @@ stages: # Ensure setuptools >= 69.3.0 so the sdist filename follows the # PEP 625 normalized form (azure_functions_durable-*.tar.gz). # Older setuptools emits the legacy hyphenated name, which ESRP - # rejects. - pip install "setuptools>=69.3.0" wheel + # rejects. setuptools_scm is installed via pip (rather than left + # to setup.py's setup_requires) so its transitive dependency + # vcs_versioning is resolved; the deprecated setup_requires + # egg-fetch path does not install transitive deps and fails. + pip install "setuptools>=69.3.0" setuptools_scm wheel # Pin an older azure-functions (< 1.26.0) that predates the # centralized df_dumps / df_loads serializers so this job exercises # the legacy serialization fallback in df_serialization. The diff --git a/eng/templates/build.yml b/eng/templates/build.yml index 49ca57c..eec92d8 100644 --- a/eng/templates/build.yml +++ b/eng/templates/build.yml @@ -16,11 +16,7 @@ jobs: - script: | python -m pip install --upgrade pip pip install -r requirements.txt - # Ensure setuptools >= 69.3.0 so the sdist filename follows the - # PEP 625 normalized form (azure_functions_durable-*.tar.gz). - # Older setuptools emits the legacy hyphenated name, which ESRP - # rejects. - pip install "setuptools>=69.3.0" wheel + pip install "setuptools>=69.3.0" setuptools_scm wheel # Pin an older azure-functions (< 1.26.0) that predates the # centralized df_dumps / df_loads serializers so this job # exercises the legacy serialization fallback in df_serialization. From 3a2aed7f657f44c20f588352d3a9bf66745fb131 Mon Sep 17 00:00:00 2001 From: Andy Staples Date: Thu, 9 Jul 2026 11:22:15 -0600 Subject: [PATCH 2/3] Fix pipeline warnings: pin Python to '3.10' and replace deprecated utcnow() - UsePythonVersion versionSpec '3.10.x' -> '3.10' to satisfy the hosted-agent recommendation to avoid pinning a patch version. - Replace datetime.utcnow() (deprecated, slated for removal) with datetime.now(timezone.utc).replace(tzinfo=None), preserving the naive-UTC value the test relies on. --- eng/templates/build.yml | 2 +- tests/orchestrator/test_sequential_orchestrator.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/templates/build.yml b/eng/templates/build.yml index eec92d8..28aae81 100644 --- a/eng/templates/build.yml +++ b/eng/templates/build.yml @@ -12,7 +12,7 @@ jobs: steps: - task: UsePythonVersion@0 inputs: - versionSpec: '3.10.x' + versionSpec: '3.10' - script: | python -m pip install --upgrade pip pip install -r requirements.txt diff --git a/tests/orchestrator/test_sequential_orchestrator.py b/tests/orchestrator/test_sequential_orchestrator.py index cb20dc2..56c533d 100644 --- a/tests/orchestrator/test_sequential_orchestrator.py +++ b/tests/orchestrator/test_sequential_orchestrator.py @@ -1,7 +1,7 @@ from azure.durable_functions.models.actions.WhenAnyAction import WhenAnyAction from azure.durable_functions.models.actions.WhenAllAction import WhenAllAction from azure.durable_functions.models.ReplaySchema import ReplaySchema -from datetime import datetime, timedelta +from datetime import datetime, timedelta, timezone from .orchestrator_test_utils \ import assert_orchestration_state_equals, get_orchestration_state_result, assert_valid_schema from tests.test_utils.ContextBuilder import ContextBuilder @@ -703,7 +703,7 @@ def test_utc_time_is_never_none(): def test_utc_time_updates_correctly(): """Tests that current_utc_datetime updates correctly""" - now = datetime.utcnow() + now = datetime.now(timezone.utc).replace(tzinfo=None) # the first orchestrator-started event starts 1 second after `now` context_builder = ContextBuilder('test_simple_function', starting_time=now) add_hello_completed_events(context_builder, 0, "\"Hello Tokyo!\"") From 3a45ab702988010dd099f8bcaa11241b6037e28f Mon Sep 17 00:00:00 2001 From: Andy Staples Date: Thu, 9 Jul 2026 11:23:41 -0600 Subject: [PATCH 3/3] Remove comment --- azure-pipelines.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index accc2e1..526bd65 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -37,13 +37,6 @@ stages: - script: | python -m pip install --upgrade pip pip install -r requirements.txt - # Ensure setuptools >= 69.3.0 so the sdist filename follows the - # PEP 625 normalized form (azure_functions_durable-*.tar.gz). - # Older setuptools emits the legacy hyphenated name, which ESRP - # rejects. setuptools_scm is installed via pip (rather than left - # to setup.py's setup_requires) so its transitive dependency - # vcs_versioning is resolved; the deprecated setup_requires - # egg-fetch path does not install transitive deps and fails. pip install "setuptools>=69.3.0" setuptools_scm wheel # Pin an older azure-functions (< 1.26.0) that predates the # centralized df_dumps / df_loads serializers so this job exercises