Skip to content

Conversation

@roger-zhangg
Copy link
Member

@roger-zhangg roger-zhangg commented Jan 7, 2026

Which issue(s) does this change fix?

make update-reproducible-reqs-uv  1.82s user 1.97s system 54% cpu 6.930 total

This PR simplifies the reproducible requirements update workflow by using uv pip compile with cross-platform compilation support. Instead of requiring 3 separate CI runners (Linux, macOS, Windows) to generate platform-specific requirements files, we can now generate all 3 files from a single Linux runner.

Changes

Makefile

  • Added new update-reproducible-reqs-uv target that uses uv pip compile with --python-platform flag to generate requirements for all 3 platforms:

    • reproducible-linux.txt (Python 3.11, Linux)
    • reproducible-mac.txt (Python 3.11, macOS)
    • reproducible-win.txt (Python 3.12, Windows)
  • Includes a check to only install uv if it's not already available

.github/workflows/update-reproducibles.yml

  • Simplified from 3 sequential matrix jobs to a single job
  • Uses astral-sh/setup-uv@v5 action for fast, reliable uv installation
  • Runs on ubuntu-latest only

Benefits

  • Faster CI: Single job instead of 3 sequential jobs, 6 second to produce reproducible for 3 platforms ~20second vs 5 minutes before
  • Cross-platform compilation: uv resolves platform-specific dependencies without needing the actual platform

Testing

  • Verified make update-reproducible-reqs-uv generates all 3 files locally
  • Compared output with existing reproducible files to ensure compatibility

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@roger-zhangg roger-zhangg requested a review from a team as a code owner January 7, 2026 23:09
@roger-zhangg roger-zhangg reopened this Jan 7, 2026
@roger-zhangg
Copy link
Member Author

roger-zhangg commented Jan 7, 2026

https://github.com/aws/aws-sam-cli/actions/runs/20799543362/job/59741306757
17 seconds. Old workflow ~5 minutes

@roger-zhangg roger-zhangg changed the title chore(git-action): Use uv for cross-platform reproducible requirements generation ## chore(git-action): Use uv for cross-platform reproducible requirements generation Jan 7, 2026
@roger-zhangg roger-zhangg added this pull request to the merge queue Jan 8, 2026
Merged via the queue into develop with commit d74c92c Jan 8, 2026
50 of 86 checks passed
@roger-zhangg roger-zhangg deleted the uv-repro branch January 8, 2026 01:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants