Skip to content

feat(aws-lambda): Enable Python 3.14 support to the Lambda layer - #6916

Merged
pabloDeputter merged 4 commits into
masterfrom
pablo/add-py314-lambda-layer-support
Aug 10, 2026
Merged

feat(aws-lambda): Enable Python 3.14 support to the Lambda layer#6916
pabloDeputter merged 4 commits into
masterfrom
pablo/add-py314-lambda-layer-support

Conversation

@pabloDeputter

@pabloDeputter pabloDeputter commented Jul 29, 2026

Copy link
Copy Markdown
Member

Description

Adds python3.14 to the AWS Lambda layer compatible runtimes in .craft.yml, and declares x86-64 / arm64 architectures. Also updated/fixed broken scripts for ease of testing in the future:

  • Added aws-configure-layer-on-lambda-function.sh: setup sentry handler and required env vars after attaching the layer with aws-deploy-local-layer.sh.

Verified that it works with layer built from this branch (arn:aws:lambda:eu-north-1:431451851189:layer:SentryPythonServerlessSDK-local-dev:3):

Issues

Reminders

…ration

- Added support for py 3.14 in the .craft.yml as well as compatible architectures (not yet supported in craft).
- Modified local deployment script to include py 3.14 and compatible architectures.
- Removed `make aws-lambda-layer` and use `uv build`and `uv run` as is also done in `.github/workflows/ci.yml`.

Refs: #6908
Refs: PY-2629
…etup

- Sets the Sentry handler and required env vars for local layer testing.

Refs #6908
Refs PY-2629
@linear-code

linear-code Bot commented Jul 29, 2026

Copy link
Copy Markdown

PY-2629

Comment thread .craft.yml
@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊

2647 passed | ⏭️ 264 skipped | Total: 2911 | Pass Rate: 90.93% | Execution Time: 8m 55s

📊 Comparison with Base Branch

Metric Change
Total Tests 📉 -105241
Passed Tests 📉 -98870
Failed Tests
Skipped Tests 📉 -6371

All tests are passing successfully.

✅ Patch coverage is 100.00%. Project has 15081 uncovered lines.
❌ Project coverage is 38.9%. Comparing base (base) to head (head).

Coverage diff
@@            Coverage Diff             @@
##          main       #PR       +/-##
==========================================
- Coverage    90.02%    38.90%   -51.12%
==========================================
  Files          193       193         —
  Lines        25010     24681      -329
  Branches      9032      8810      -222
==========================================
+ Hits         22514      9600    -12914
- Misses        2496     15081    +12585
- Partials      1434       518      -916

Generated by Codecov Action

@pabloDeputter

Copy link
Copy Markdown
Member Author

Related issue in craft.

@pabloDeputter

pabloDeputter commented Jul 29, 2026

Copy link
Copy Markdown
Member Author

minVersion: 2.21.1 in .craft.ymlshould be updated to craft version that supports compatibleArchitectures

@pabloDeputter
pabloDeputter marked this pull request as ready for review August 10, 2026 09:21
@pabloDeputter
pabloDeputter requested a review from a team as a code owner August 10, 2026 09:21
--zip-file "fileb://dist/$ZIP" \
--description "Local test build of SentryPythonServerlessSDK (can be deleted)" \
--compatible-runtimes python3.7 python3.8 python3.9 python3.10 python3.11 python3.12 python3.13 python3.14 \
--compatible-architectures x86_64 arm64 \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this compatible architectures thing actually make a difference?
I'd hope it's implied that pure Python packages support all architectures, but maybe AWS is annoying here?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Supports both x86_64 and arm64 indeed since it's pure Python. Just added it for visibility, currently it looks like this:
Screenshot 2026-08-10 at 11 28 52
with this change it looks like this:
Screenshot 2026-08-10 at 11 33 34

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 5c8c9a4. Configure here.

FUNCTION_NAME=$1
DSN=$2
SENTRY_HANDLER="sentry_sdk.integrations.init_serverless_sdk.sentry_lambda_handler"
REGION=${3:-"eu-north-1"}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong default AWS region

Medium Severity

The new configure script defaults REGION to eu-north-1, but aws-deploy-local-layer.sh, aws-delete-lambda-layer-versions.sh, and CONTRIBUTING.md all use eu-central-1. Running the documented deploy → attach → configure flow without an explicit region targets the wrong region, so configuration fails or updates a different function than the one that received the local layer.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 5c8c9a4. Configure here.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

think this script is just for testing, that's fine here

@pabloDeputter
pabloDeputter merged commit 5554554 into master Aug 10, 2026
395 of 401 checks passed
@pabloDeputter
pabloDeputter deleted the pablo/add-py314-lambda-layer-support branch August 10, 2026 09:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(aws-lambda): Add Python 3.14 Lambda layer deployment

2 participants