Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: remove python3.7 lambda support #6689

Merged
merged 47 commits into from
Feb 21, 2024
Merged
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
074a88f
fix: remove python3.7 lambda support
mndeveci Feb 14, 2024
abdbd23
fix: update cdk template
mndeveci Feb 14, 2024
ce305f4
use py311
mndeveci Feb 14, 2024
9f06456
change numpy version depending on py version
mndeveci Feb 14, 2024
29fc669
fix numpy in cdk
mndeveci Feb 14, 2024
494645a
fix numpy requirement
mndeveci Feb 14, 2024
a096990
update runtimes in templates
mndeveci Feb 14, 2024
50c77b5
update build image
mndeveci Feb 15, 2024
773e094
add latest prefix
mndeveci Feb 15, 2024
ac06f8b
use public ecr image
mndeveci Feb 15, 2024
01a4af9
use 3.11 image
mndeveci Feb 15, 2024
87996f9
fix quotes
mndeveci Feb 15, 2024
0d2f536
use ecr image
mndeveci Feb 15, 2024
811f976
use image from public ecr
mndeveci Feb 15, 2024
6e2e9c0
change checking exception
mndeveci Feb 15, 2024
27057d2
update assertions
mndeveci Feb 15, 2024
a955e82
chore(deps-dev): Update pytest, pytest-metadata, and changed to pytes…
lucashuy Feb 7, 2024
fa476e7
chore: Deprecate Nodejs12 and Nodejs14 (#6664)
mildaniel Feb 8, 2024
b4988f0
chore: Remove ruby27 (#6674)
hnnasit Feb 9, 2024
0b0c8c2
chore(deps): bump pydantic from 2.6.0 to 2.6.1 in /requirements (#6650)
dependabot[bot] Feb 12, 2024
f5b301c
chore(deps): bump the boto group in /requirements with 4 updates (#6676)
dependabot[bot] Feb 12, 2024
f4de21c
chore(deps): bump tzdata from 2023.4 to 2024.1 in /requirements (#6675)
dependabot[bot] Feb 12, 2024
e460039
chore(deps): bump cfn-lint from 0.85.0 to 0.85.1 in /requirements (#6…
dependabot[bot] Feb 12, 2024
bdc5b82
chore(deps): bump markupsafe from 2.1.4 to 2.1.5 in /requirements (#6…
dependabot[bot] Feb 12, 2024
b1925d0
chore(deps-dev): bump ruff from 0.2.0 to 0.2.1 in /requirements (#6652)
dependabot[bot] Feb 12, 2024
476c576
feat: updating app templates repo hash with (b2f83d35cfe79f4057149330…
github-actions[bot] Feb 12, 2024
66a7486
chore(deps): bump ruamel-yaml from 0.18.5 to 0.18.6 in /requirements …
dependabot[bot] Feb 14, 2024
b7f8b9b
chore(deps): bump flask from 3.0.1 to 3.0.2 in /requirements (#6651)
dependabot[bot] Feb 14, 2024
14ecdd2
chore(deps): bump pyinstaller from 6.3.0 to 6.4.0 in /requirements (#…
dependabot[bot] Feb 14, 2024
2f5c688
chore(deps-dev): bump pytest-metadata in /requirements (#6682)
dependabot[bot] Feb 14, 2024
a03054a
chore(deps): bump python-slugify from 8.0.3 to 8.0.4 in /requirements…
dependabot[bot] Feb 14, 2024
4db005d
chore(deps): bump the boto group in /requirements with 4 updates (#6693)
dependabot[bot] Feb 14, 2024
f0e8c83
chore(deps): bump rpds-py from 0.17.1 to 0.18.0 in /requirements (#6692)
dependabot[bot] Feb 14, 2024
75bcbad
chore(deps-dev): bump black from 24.1.1 to 24.2.0 in /requirements (#…
dependabot[bot] Feb 14, 2024
1f11e47
chore(deps): bump setuptools from 69.0.3 to 69.1.0 in /requirements (…
dependabot[bot] Feb 14, 2024
4ef965e
merge from develop
mndeveci Feb 15, 2024
ba3c193
use python3.12 due to windows limitations
mndeveci Feb 15, 2024
5a6372b
skip py3.12 tests on windows
mndeveci Feb 15, 2024
a5e3853
use py3.11
mndeveci Feb 15, 2024
c2f7113
use common method for checking runtime
mndeveci Feb 16, 2024
97a2356
use generic skip message
mndeveci Feb 16, 2024
65fff3f
fix runtime check
mndeveci Feb 16, 2024
30e6f27
fix local manifest json
mndeveci Feb 20, 2024
b4483fb
update deprecated runtimes
mndeveci Feb 20, 2024
5c90cfe
fix init unit test
mndeveci Feb 20, 2024
3fbada3
Merge branch 'develop' into remove_py37
mndeveci Feb 20, 2024
315114c
update config json schema
mndeveci Feb 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion samcli/commands/build/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
\b
Supported Runtimes
------------------
1. Python 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 using PIP\n
1. Python 3.8, 3.9, 3.10, 3.11, 3.12 using PIP\n
2. Nodejs 20.x, 18.x, 16.x, 14.x, 12.x using NPM\n
3. Ruby 3.2 using Bundler\n
4. Java 8, Java 11, Java 17, Java 21 using Gradle and Maven\n
Expand Down
2 changes: 0 additions & 2 deletions samcli/lib/build/workflow_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ def get_selector(

def get_layer_subfolder(build_workflow: str) -> str:
subfolders_by_runtime = {
"python3.7": "python",
"python3.8": "python",
"python3.9": "python",
"python3.10": "python",
Expand Down Expand Up @@ -152,7 +151,6 @@ def get_workflow_config(
}

selectors_by_runtime = {
"python3.7": BasicWorkflowSelector(PYTHON_PIP_CONFIG),
"python3.8": BasicWorkflowSelector(PYTHON_PIP_CONFIG),
"python3.9": BasicWorkflowSelector(PYTHON_PIP_CONFIG),
"python3.10": BasicWorkflowSelector(PYTHON_PIP_CONFIG),
Expand Down
10 changes: 0 additions & 10 deletions samcli/lib/init/local_manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,5 @@
"packageType": "Zip",
"useCaseName": "Hello World Example"
}
],
"python3.7": [
{
"directory": "template/cookiecutter-aws-sam-hello-python",
"displayName": "Hello World Example",
"dependencyManager": "pip",
"appTemplate": "hello-world",
"packageType": "Zip",
"useCaseName": "Hello World Example"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ A cookiecutter template to create a Python Hello world boilerplate using [Server

Generate a boilerplate template in your current project directory using the following syntax:

* **Python 3.7**: `sam init --runtime python3.7`
* **Python 3.8**: `sam init --runtime python3.8`
* **Python 3.9**: `sam init --runtime python3.9`

Expand Down
4 changes: 2 additions & 2 deletions samcli/lib/providers/sam_stack_provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -349,9 +349,9 @@ def normalize_resource_path(stack_file_path: str, path: str) -> str:

* symlinks on Windows might not work properly.
https://stackoverflow.com/questions/43333640/python-os-path-realpath-for-symlink-in-windows
For example, using Python 3.7, realpath() is a no-op (same as abspath):
For example, using Python 3.8, realpath() is a no-op (same as abspath):
```
Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit (AMD64)] on win32
Python 3.8.8 (tags/v3.8.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.symlink('some\\path', 'link1')
Expand Down
1 change: 0 additions & 1 deletion samcli/lib/utils/architecture.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
"nodejs16.x": [ARM64, X86_64],
"nodejs18.x": [ARM64, X86_64],
"nodejs20.x": [ARM64, X86_64],
"python3.7": [X86_64],
"python3.8": [ARM64, X86_64],
"python3.9": [ARM64, X86_64],
"python3.10": [ARM64, X86_64],
Expand Down
5 changes: 1 addition & 4 deletions samcli/local/common/runtime_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
RUNTIME_DEP_TEMPLATE_MAPPING = {
"python": [
{
"runtimes": ["python3.12", "python3.11", "python3.10", "python3.9", "python3.8", "python3.7"],
"runtimes": ["python3.12", "python3.11", "python3.10", "python3.9", "python3.8"],
"dependency_manager": "pip",
"init_location": os.path.join(_templates, "cookiecutter-aws-sam-hello-python"),
"build": True,
Expand Down Expand Up @@ -121,7 +121,6 @@ def get_local_lambda_images_location(mapping, runtime):
"python3.10",
"python3.9",
"python3.8",
"python3.7",
# ruby runtimes in descending order
"ruby3.2",
]
Expand All @@ -145,7 +144,6 @@ def get_local_lambda_images_location(mapping, runtime):
"python3.10": "amazon/python3.10-base",
"python3.9": "amazon/python3.9-base",
"python3.8": "amazon/python3.8-base",
"python3.7": "amazon/python3.7-base",
"ruby3.2": "amazon/ruby3.2-base",
}

Expand All @@ -160,7 +158,6 @@ def get_local_lambda_images_location(mapping, runtime):
"java11": "Java8",
"java17": "Java8",
"java21": "Java8",
"python3.7": "Python36",
"python3.8": "Python36",
"python3.9": "Python36",
"python3.10": "Python36",
Expand Down
4 changes: 0 additions & 4 deletions samcli/local/docker/lambda_debug_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,10 +159,6 @@ def get_debug_settings(debug_port, debug_args_list, _container_env_vars, runtime
**_container_env_vars,
},
),
Runtime.python37.value: lambda: DebugSettings(
entry + ["/var/lang/bin/python3.7"] + debug_args_list + ["/var/runtime/bootstrap"],
container_env_vars=_container_env_vars,
),
Runtime.python38.value: lambda: DebugSettings(
entry + ["/var/lang/bin/python3.8"] + debug_args_list + ["/var/runtime/bootstrap.py"],
container_env_vars=_container_env_vars,
Expand Down
7 changes: 3 additions & 4 deletions samcli/local/docker/lambda_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ class Runtime(Enum):
nodejs16x = "nodejs16.x"
nodejs18x = "nodejs18.x"
nodejs20x = "nodejs20.x"
python37 = "python3.7"
python38 = "python3.8"
python39 = "python3.9"
python310 = "python3.10"
Expand Down Expand Up @@ -79,7 +78,7 @@ def get_image_name_tag(cls, runtime: str, architecture: str) -> str:
Returns
-------
str
Image name and tag for the runtime's base image, like `python:3.7` or `provided:al2`
Image name and tag for the runtime's base image, like `python:3.12` or `provided:al2`
"""
runtime_image_tag = ""
if runtime == cls.provided.value:
Expand Down Expand Up @@ -166,7 +165,7 @@ def build(self, runtime, packagetype, image, layers, architecture, stream=None,
if self.invoke_images:
base_image = self.invoke_images.get(function_name, self.invoke_images.get(None))
if not base_image:
# Gets the ECR image format like `python:3.7` or `nodejs:16-x86_64`
# Gets the ECR image format like `python:3.12` or `nodejs:16-x86_64`
runtime_only_number = re.split("[:-]", runtime_image_tag)[1]
tag_prefix = f"{runtime_only_number}-"
base_image = f"{self._INVOKE_REPO_PREFIX}/{runtime_image_tag}"
Expand Down Expand Up @@ -262,7 +261,7 @@ def _generate_docker_image_version(layers, runtime_image_tag):
List of the layers

runtime_image_tag str
Runtime version format to generate image name and tag (including architecture, e.g. "python:3.7-x86_64")
Runtime version format to generate image name and tag (including architecture, e.g. "python:3.12-x86_64")

Returns
-------
Expand Down
6 changes: 3 additions & 3 deletions tests/end_to_end/test_runtimes_e2e.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def validate(self, command_result: CommandResult):
("runtime", "dependency_manager"),
[
("go1.x", "mod"),
("python3.7", "pip"),
("python3.11", "pip"),
],
)
class TestHelloWorldDefaultEndToEnd(EndToEndBase):
Expand Down Expand Up @@ -104,7 +104,7 @@ def test_hello_world_default_workflow(self):
("runtime", "dependency_manager"),
[
("go1.x", "mod"),
("python3.7", "pip"),
("python3.11", "pip"),
],
)
class TestHelloWorldZipPackagePermissionsEndToEnd(EndToEndBase):
Expand Down Expand Up @@ -142,7 +142,7 @@ def test_hello_world_workflow(self):
("runtime", "dependency_manager"),
[
("go1.x", "mod"),
("python3.7", "pip"),
("python3.11", "pip"),
],
)
class TestHelloWorldDefaultSyncEndToEnd(EndToEndBase):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
SimpleCase:
Type: HttpApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Resources:
Method: get
RestApiId:
Ref: ApiGatewayApi
Runtime: python3.7
Runtime: python3.11
Handler: index.handler
InlineCode: |-
def handler(event, context):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Resources:
Method: get
RestApiId:
Ref: ApiGatewayApi
Runtime: python3.7
Runtime: python3.11
Handler: index.handler
InlineCode: |-
def handler(event, context):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Resources:
Method: get
RestApiId:
Ref: ApiGatewayApi
Runtime: python3.7
Runtime: python3.11
Handler: index.handler
InlineCode: |
def handler(event, context):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
SimpleCase:
Type: HttpApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
HttpApiANYdefault:
Type: HttpApi
Expand All @@ -18,7 +18,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
HttpApiANYhello:
Type: HttpApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Resources:
Properties:
Handler: index.handler
CodeUri: s3://bucket/key
Runtime: python3.7
Runtime: python3.11
Events:
Api:
Type: HttpApi
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
SimpleCase:
Type: HttpApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/hello.zip
Handler: hello.handler
Runtime: python3.7
Runtime: python3.11
MemorySize: '700'
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Resources:
Handler: lambda.lambda_handler
Role:
Fn::Sub: arn:${AWS::Partition}:iam::${AWS::AccountId}:role/lambda-role
Runtime: python3.7
Runtime: python3.11
CodeUri: s3://bucket/key
AutoPublishAlias: live
DeploymentPreference:
Expand All @@ -34,7 +34,7 @@ Resources:
Handler: hook.lambda_handler
Role:
Fn::Sub: arn:${AWS::Partition}:iam::${AWS::AccountId}:role/lambda-role
Runtime: python3.7
Runtime: python3.11
CodeUri: s3://bucket/key
FunctionName: CodeDeployHook_preTrafficHook
AutoPublishAlias: live
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/hello.zip
Handler: hello.world
Runtime: python3.7
Runtime: python3.11
RolePath: /foo/bar
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
HelloAWSIAMAuth:
Type: HttpApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Resources:
Function:
Type: AWS::Serverless::Function
Properties:
Runtime: python3.7
Runtime: python3.11
Handler: index.handler
CodeUri: s3://bucket/key
Events:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Resources:
Function:
Type: AWS::Serverless::Function
Properties:
Runtime: python3.7
Runtime: python3.11
Handler: index.handler
CodeUri: s3://bucket/key
Events:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
Basic: # integration exists
Type: HttpApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
# The following events use the implicit AWS::Serverless::HttpApi called "ServerlessHttpApi".
# The Iam Authorizer of the implicit AWS::Serverless::HttpApi is enabled using the global above.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
Basic: # integration exists
Type: HttpApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
Basic: # integration exists
Type: HttpApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
Basic:
Type: HttpApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
# The following events use the defined AWS::Serverless::HttpApi, MyDefaultIamAuthHttpApi, further down.
# This HttpApi has Iam auth enabled AND set as the default.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Resources:
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.restapi
Runtime: python3.7
Runtime: python3.11
Events:
HelloGet:
Type: HttpApi
Expand Down
Loading
Loading