From c1449046c36dcf49208372acb1519dbfe188fcd3 Mon Sep 17 00:00:00 2001 From: Ran Isenberg <60175085+ran-isenberg@users.noreply.github.com> Date: Fri, 15 Dec 2023 13:05:45 +0200 Subject: [PATCH] feature: add python 3.12 support (#21) Co-authored-by: Ran Isenberg --- .../.github/workflows/main-serverless-service.yml | 4 ++-- .../.github/workflows/pr-serverless-service.yml | 4 ++-- {{cookiecutter.repo_name}}/cdk/setup.py | 4 ++-- .../cdk/{{cookiecutter.service_name}}/api_construct.py | 4 ++-- .../cdk/{{cookiecutter.service_name}}/service_stack.py | 4 ++++ {{cookiecutter.repo_name}}/package-lock.json | 10 +++++----- {{cookiecutter.repo_name}}/package.json | 2 +- {{cookiecutter.repo_name}}/pyproject.toml | 6 +++--- 8 files changed, 21 insertions(+), 17 deletions(-) diff --git a/{{cookiecutter.repo_name}}/.github/workflows/main-serverless-service.yml b/{{cookiecutter.repo_name}}/.github/workflows/main-serverless-service.yml index 32bb916..eb96884 100644 --- a/{{cookiecutter.repo_name}}/.github/workflows/main-serverless-service.yml +++ b/{{cookiecutter.repo_name}}/.github/workflows/main-serverless-service.yml @@ -6,8 +6,8 @@ permissions: contents: read env: - NODE_VERSION: "18" - PYTHON_VERSION: "3.11" + NODE_VERSION: "20" + PYTHON_VERSION: "3.12" AWS_REGION: "us-east-1" on: diff --git a/{{cookiecutter.repo_name}}/.github/workflows/pr-serverless-service.yml b/{{cookiecutter.repo_name}}/.github/workflows/pr-serverless-service.yml index b5c2ea3..9721b5b 100644 --- a/{{cookiecutter.repo_name}}/.github/workflows/pr-serverless-service.yml +++ b/{{cookiecutter.repo_name}}/.github/workflows/pr-serverless-service.yml @@ -6,8 +6,8 @@ permissions: contents: read env: - NODE_VERSION: "18" - PYTHON_VERSION: "3.11" + NODE_VERSION: "20" + PYTHON_VERSION: "3.12" AWS_REGION: "us-east-1" on: diff --git a/{{cookiecutter.repo_name}}/cdk/setup.py b/{{cookiecutter.repo_name}}/cdk/setup.py index 55b8315..bc31763 100755 --- a/{{cookiecutter.repo_name}}/cdk/setup.py +++ b/{{cookiecutter.repo_name}}/cdk/setup.py @@ -12,7 +12,7 @@ classifiers=[ 'Intended Audience :: Developers', 'Topic :: Software Development :: Build Tools', - 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', ], url='https://github.com/ran-isenberg/aws-lambda-handler-cookbook', author='{{cookiecutter.author}}', @@ -20,6 +20,6 @@ packages=find_packages(exclude=['contrib', 'docs', 'tests']), package_data={'': ['*.json']}, include_package_data=True, - python_requires='>=3.11', + python_requires='>=3.12', install_requires=[], ) diff --git a/{{cookiecutter.repo_name}}/cdk/{{cookiecutter.service_name}}/api_construct.py b/{{cookiecutter.repo_name}}/cdk/{{cookiecutter.service_name}}/api_construct.py index ce3080c..90cd8c0 100644 --- a/{{cookiecutter.repo_name}}/cdk/{{cookiecutter.service_name}}/api_construct.py +++ b/{{cookiecutter.repo_name}}/cdk/{{cookiecutter.service_name}}/api_construct.py @@ -79,7 +79,7 @@ def _build_common_layer(self) -> PythonLayerVersion: self, f'{self.id_}{constants.LAMBDA_LAYER_NAME}', entry=constants.COMMON_LAYER_BUILD_FOLDER, - compatible_runtimes=[_lambda.Runtime.PYTHON_3_11], + compatible_runtimes=[_lambda.Runtime.PYTHON_3_12], removal_policy=RemovalPolicy.DESTROY, ) @@ -88,7 +88,7 @@ def _add_post_lambda_integration(self, api_name: aws_apigateway.Resource, role: lambda_function = _lambda.Function( self, constants.CREATE_LAMBDA, - runtime=_lambda.Runtime.PYTHON_3_11, + runtime=_lambda.Runtime.PYTHON_3_12, code=_lambda.Code.from_asset(constants.BUILD_FOLDER), handler='{{cookiecutter.service_name}}.handlers.handle_create_order.lambda_handler', environment={ diff --git a/{{cookiecutter.repo_name}}/cdk/{{cookiecutter.service_name}}/service_stack.py b/{{cookiecutter.repo_name}}/cdk/{{cookiecutter.service_name}}/service_stack.py index 86bbdcf..81642c7 100644 --- a/{{cookiecutter.repo_name}}/cdk/{{cookiecutter.service_name}}/service_stack.py +++ b/{{cookiecutter.repo_name}}/cdk/{{cookiecutter.service_name}}/service_stack.py @@ -76,5 +76,9 @@ def _add_security_tests(self) -> None: 'id': 'AwsSolutions-COG4', 'reason': 'not using cognito' }, + { + 'id': 'AwsSolutions-L1', + 'reason': 'False positive' + }, ], ) diff --git a/{{cookiecutter.repo_name}}/package-lock.json b/{{cookiecutter.repo_name}}/package-lock.json index 14f7cba..76cc2f1 100644 --- a/{{cookiecutter.repo_name}}/package-lock.json +++ b/{{cookiecutter.repo_name}}/package-lock.json @@ -5,13 +5,13 @@ "packages": { "": { "dependencies": { - "aws-cdk": "2.102.0" + "aws-cdk": "2.115.0" } }, "node_modules/aws-cdk": { - "version": "2.102.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.102.0.tgz", - "integrity": "sha512-q+FQSeX/25QvZ1/Fxjr7GydMY/WR/+iTif2EiaN7rUlEEZx27o0I5k1p9YmTNUGiBl13ZvggIJjwTRmnL7E/lg==", + "version": "2.115.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.115.0.tgz", + "integrity": "sha512-jf+5j+ygk/DqxLzYyjFnCOOlRgvL/fwcYhyanhpb1OEQEe1FF6NGUb1TYsnQc3Ly67qLOKkQgdeyeXgzkKoSOQ==", "bin": { "cdk": "bin/cdk" }, @@ -36,4 +36,4 @@ } } } -} +} \ No newline at end of file diff --git a/{{cookiecutter.repo_name}}/package.json b/{{cookiecutter.repo_name}}/package.json index dd2da5c..f89ea7f 100644 --- a/{{cookiecutter.repo_name}}/package.json +++ b/{{cookiecutter.repo_name}}/package.json @@ -1,5 +1,5 @@ { "dependencies": { - "aws-cdk": "2.102.0" + "aws-cdk": "2.115.0" } } \ No newline at end of file diff --git a/{{cookiecutter.repo_name}}/pyproject.toml b/{{cookiecutter.repo_name}}/pyproject.toml index 5c950e3..5b955dd 100644 --- a/{{cookiecutter.repo_name}}/pyproject.toml +++ b/{{cookiecutter.repo_name}}/pyproject.toml @@ -8,7 +8,7 @@ classifiers=[ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", ] repository="https://github.com/replaceme/{{cookiecutter.repo_name}}" readme = "README.md" @@ -16,7 +16,7 @@ keywords = ["{{cookiecutter.service_name}}"] license = "MIT-0" [tool.poetry.dependencies] -python = "^3.11.0" +python = "^3.12.0" pydantic = {version = "^2.0.3"} email-validator = {version = "*"} aws-lambda-powertools = {extras = ["tracer"],version = "^2.20.0"} @@ -57,7 +57,7 @@ types-requests = "*" toml = "*" [tool.isort] -py_version = 311 +py_version = 312 multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0