From 18eebb9e7e30a2b3ca0e1c1c6974a7686192b839 Mon Sep 17 00:00:00 2001 From: Cyril Humbert Date: Thu, 20 Nov 2025 11:15:48 +0100 Subject: [PATCH 1/2] Allow to use Python3.14 AWS Lambda now supports creating serverless applications using Python 3.14. https://aws.amazon.com/about-aws/whats-new/2025/11/aws-lambda-python-314/ --- lib/plugins/aws/invoke-local/index.js | 1 + lib/plugins/aws/provider.js | 1 + types/index.d.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/lib/plugins/aws/invoke-local/index.js b/lib/plugins/aws/invoke-local/index.js index a21dfadb9..c7e925119 100644 --- a/lib/plugins/aws/invoke-local/index.js +++ b/lib/plugins/aws/invoke-local/index.js @@ -262,6 +262,7 @@ class AwsInvokeLocal { 'python3.11', 'python3.12', 'python3.13', + 'python3.14', ].includes(runtime) ) { const handlerComponents = handler.split(/\./); diff --git a/lib/plugins/aws/provider.js b/lib/plugins/aws/provider.js index d1188e493..3a1c57941 100644 --- a/lib/plugins/aws/provider.js +++ b/lib/plugins/aws/provider.js @@ -648,6 +648,7 @@ class AwsProvider { 'python3.11', 'python3.12', 'python3.13', + 'python3.14', 'ruby2.7', 'ruby3.2', 'ruby3.3', diff --git a/types/index.d.ts b/types/index.d.ts index 901cd73fd..888c3cb83 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -74,6 +74,7 @@ export type AwsLambdaRuntime = | "python3.11" | "python3.12" | "python3.13" + | "python3.14" | "ruby2.7" | "ruby3.2" | "ruby3.3" From bd60d376cc282f36f9afe35254217ea52e5ead18 Mon Sep 17 00:00:00 2001 From: Cyril Humbert Date: Thu, 20 Nov 2025 14:18:49 +0100 Subject: [PATCH 2/2] Add test for Python 3.14 runtime --- test/unit/lib/plugins/aws/invoke-local/index.test.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/unit/lib/plugins/aws/invoke-local/index.test.js b/test/unit/lib/plugins/aws/invoke-local/index.test.js index 35e53dd11..c603d74a6 100644 --- a/test/unit/lib/plugins/aws/invoke-local/index.test.js +++ b/test/unit/lib/plugins/aws/invoke-local/index.test.js @@ -495,6 +495,17 @@ describe('AwsInvokeLocal', () => { ).to.be.equal(true); }); + it('should call invokeLocalPython when python3.14 runtime is set', async () => { + awsInvokeLocal.options.functionObj.runtime = 'python3.14'; + await awsInvokeLocal.invokeLocal(); + // NOTE: this is important so that tests on Windows won't fail + const runtime = process.platform === 'win32' ? 'python.exe' : 'python3.14'; + expect(invokeLocalPythonStub.calledOnce).to.be.equal(true); + expect( + invokeLocalPythonStub.calledWithExactly(runtime, 'handler', 'hello', {}, undefined) + ).to.be.equal(true); + }); + it('should call invokeLocalJava when java8 runtime is set', async () => { awsInvokeLocal.options.functionObj.runtime = 'java8'; await awsInvokeLocal.invokeLocal();