Skip to content

ci: replace poetry with uv - #7910

Merged
leandrodamascena merged 1 commit into
developfrom
ci/replace-poetry-with-uv
Sep 29, 2026
Merged

leandrodamascena merged 1 commit into
developfrom
ci/replace-poetry-with-uv

Conversation

@leandrodamascena

@leandrodamascena leandrodamascena commented Jan 6, 2026 •

Copy link
Copy Markdown
Contributor

Issue number: closes #5624

Summary

Migrate development, CI, builds, and layer tooling from Poetry to uv, with standard project metadata and Hatchling builds. Existing dependency constraints and extras are preserved. Locked versions are retained except for datadog-lambda (8.121.0 → 8.122.0) and ddtrace (3.19.6 → 4.8.2), updated together to resolve GHSA-mw54-j2v2-42hr; the old Datadog Lambda version required ddtrace<4. Contributors install uv and run make dev.

Release and pre-release workflows validate the version and use sed to update pyproject.toml, shared/version.py, and uv.lock before sealing the source. The automatic version PR is preserved and includes the lockfile. The bump installs no dependencies and leaves their locked versions unchanged. Checks stop the workflow before sealing if a replacement misses its field; only the project version is changed in pyproject.toml.

Nox uses uv environments with explicit test dependencies, including JSON Schema validation previously installed transitively by Poetry. The E2E layer builder retains its pip commands and platform selection, with pip now declared as a development dependency. Existing coverage exclusions also apply when subprocesses change their working directory.

Validation

  • Full test suite on Python 3.10 and 3.14; all 12 Nox sessions; performance tests.
  • Datadog integration tests with the exact locked versions on Python 3.10 and 3.14; both environments pass dependency compatibility checks.
  • 69 release scenarios on Python 3.10 and 3.14 execute the workflow shell commands: version transitions, retries, invalid inputs, changed file formats, unrelated version fields, archive integrity, matching wheel/sdist versions, and a Git tag pushed to a temporary local repository.
  • Ruff, mypy, ty, Bandit, complexity checks, actionlint, Markdown lint, and docs build.
  • Wheel package files are byte-identical to the develop build; all 12 extras and default requirements are equivalent. Built and installed the sdist in a clean Python 3.10 environment.
  • Four layer helper tests passed locally. The Docker-based layer constructor matrix covers Python 3.10–3.14 on x86_64 and ARM64, replacing the obsolete Python 3.9 cases. Dependency resolution for the added Python 3.14 cases passed on both architectures; complete Docker builds run in CI.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

@leandrodamascena
leandrodamascena requested a review from a team as a code owner January 6, 2026 12:05
@pull-request-size pull-request-size Bot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Jan 6, 2026
@boring-cyborg boring-cyborg Bot added dependencies Pull requests that update a dependency file github-actions Pull requests that update Github_actions code internal Maintenance changes tests labels Jan 6, 2026
@codecov

codecov Bot commented Jan 6, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.80%. Comparing base (ed6535d) to head (d6136b5).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #7910   +/-   ##
========================================
  Coverage    96.80%   96.80%           
========================================
  Files          310      310           
  Lines        15594    15594           
  Branches      1361     1361           
========================================
  Hits         15096    15096           
  Misses         362      362           
  Partials       136      136           

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread tests/e2e/utils/lambda_layer/powertools_layer.py Outdated
@sonarqubecloud

sonarqubecloud Bot commented Jan 6, 2026

Copy link
Copy Markdown

Comment thread Makefile Outdated
@Suresh-2017

This comment was marked as low quality.

@boring-cyborg boring-cyborg Bot added the documentation Improvements or additions to documentation label Sep 29, 2026
Comment thread .github/workflows/publish_v3_layer.yml Fixed
Comment thread .github/workflows/publish_v3_layer.yml Fixed
Comment thread .github/workflows/quality_code_cdk_constructor.yml Fixed
Comment thread .github/workflows/quality_code_cdk_constructor.yml Fixed
Comment thread .github/workflows/reusable_deploy_v3_layer_stack.yml Fixed
@leandrodamascena
leandrodamascena force-pushed the ci/replace-poetry-with-uv branch 6 times, most recently from dd36385 to b35221c Compare September 29, 2026 04:22
@leandrodamascena
leandrodamascena force-pushed the ci/replace-poetry-with-uv branch from b35221c to d6136b5 Compare September 29, 2026 05:12
@sonarqubecloud

Copy link
Copy Markdown

@leandrodamascena
leandrodamascena merged commit ea11be2 into develop Sep 29, 2026
19 checks passed
@leandrodamascena
leandrodamascena deleted the ci/replace-poetry-with-uv branch September 29, 2026 06:45
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 documentation Improvements or additions to documentation github-actions Pull requests that update Github_actions code internal Maintenance changes size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Maintenance: Migrate our pipelines from poetry to uv

5 participants