Skip to content

Commit 841de33

Browse files
authored
Merge branch 'develop' into expanded-parameter-overrides
2 parents e1e7ab9 + cc268cb commit 841de33

456 files changed

Lines changed: 24338 additions & 3125 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ jobs:
120120
# folders that is commented below requires credentials, no need to spare time to run them
121121
tests_config:
122122
- name: "integ-buildcmd-arm64"
123-
params: "-n 2 --reruns 3 tests/integration/buildcmd/test_build_cmd_arm64.py"
123+
params: "-n 2 --reruns 3 tests/integration/buildcmd/test_build_cmd_arm64.py"
124124
- name: "integ-buildcmd-main"
125125
params: "-n 2 --reruns 3 tests/integration/buildcmd/test_build_cmd_dotnet.py tests/integration/buildcmd/test_build_cmd_provided.py tests/integration/buildcmd/test_build_cmd_rust.py tests/integration/buildcmd/test_build_cmd_python.py tests/integration/buildcmd/test_build_cmd_node.py"
126126
- name: "integ-buildcmd-java"
@@ -154,15 +154,17 @@ jobs:
154154
3.11
155155
3.12
156156
3.13
157+
3.14
157158
${{ matrix.python }}
158159
cache: 'pip'
159160
- uses: actions/setup-go@v6
160161
with:
161162
go-version: '1.19'
162-
- uses: ruby/setup-ruby@v1
163+
# Pin to specific version until Lambda Builders support bundler 4.0.0
164+
- uses: ruby/setup-ruby@v1.268.0
163165
with:
164166
ruby-version: "3.3"
165-
- uses: actions/setup-node@v5
167+
- uses: actions/setup-node@v6
166168
with:
167169
node-version: 22
168170
- uses: actions/setup-java@v5
@@ -173,6 +175,10 @@ jobs:
173175
11
174176
17
175177
21
178+
25
179+
- uses: actions/setup-dotnet@v5
180+
with:
181+
dotnet-version: '10.0.x'
176182
# Install and configure Rust & Cargo Lambda
177183
- name: Install and configure Rust & Cargo Lambda
178184
if: ${{ matrix.os == 'ubuntu-latest' }}
@@ -268,6 +274,7 @@ jobs:
268274
with:
269275
# These are the versions of Python that correspond to the supported Lambda runtimes
270276
python-version: |
277+
3.14
271278
3.9
272279
3.10
273280
3.11

.github/workflows/integration-tests.yml

Lines changed: 420 additions & 0 deletions
Large diffs are not rendered by default.

.github/workflows/validate_pyinstaller.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
sudo ./sam-installation/install
3333
sam-beta --version
3434
./tests/sanity-check.sh
35-
- uses: actions/upload-artifact@v4
35+
- uses: actions/upload-artifact@v5
3636
with:
3737
name: pyinstaller-linux-zip
3838
path: .build/output/aws-sam-cli-linux-x86_64.zip
@@ -61,7 +61,7 @@ jobs:
6161
sudo ./sam-installation/install
6262
sam-beta --version
6363
./tests/sanity-check.sh
64-
- uses: actions/upload-artifact@v4
64+
- uses: actions/upload-artifact@v5
6565
with:
6666
name: pyinstaller-macos-zip
6767
path: .build/output/aws-sam-cli-macos-x86_64.zip

.gitignore

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
.idea/**/tasks.xml
1111
.idea/dictionaries
1212
.idea
13-
.vscode
1413

1514
# Sensitive or high-churn files:
1615
.idea/**/dataSources/
@@ -376,10 +375,7 @@ GitHub.sublime-settings
376375

377376
### VisualStudioCode ###
378377
.vscode/*
379-
!.vscode/settings.json
380-
!.vscode/tasks.json
381-
!.vscode/launch.json
382-
!.vscode/extensions.json
378+
!.vscode/launch.json.template
383379
.history
384380

385381
### Theia editor (GitPod)
@@ -425,4 +421,8 @@ samcli/lib/init/templates/cookiecutter-aws-sam-hello-java-gradle/**/.gradle/
425421
# Installer build folder
426422
.build
427423

428-
.kiro
424+
.kiro
425+
mise.toml
426+
427+
# Durable executions
428+
**/.durable-executions-local/

.vscode/launch.json.template

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"name": "Run: Remote Invoke Sync",
6+
"type": "debugpy",
7+
"request": "launch",
8+
"program": "${workspaceFolder}/samcli/__main__.py",
9+
"python": "${command:python.interpreterPath}",
10+
"args": [
11+
"remote",
12+
"invoke",
13+
"<REMOTE_LAMBDA_ARN>",
14+
"--debug",
15+
"--output",
16+
"json"
17+
],
18+
"env": {
19+
"PYTHONPATH": "${workspaceFolder}"
20+
},
21+
"console": "integratedTerminal",
22+
"justMyCode": false
23+
},
24+
{
25+
"name": "Run: Remote Invoke Streaming Response",
26+
"type": "debugpy",
27+
"request": "launch",
28+
"program": "${workspaceFolder}/samcli/__main__.py",
29+
"python": "${command:python.interpreterPath}",
30+
"args": [
31+
"remote",
32+
"invoke",
33+
"<REMOTE_LAMBDA_ARN>",
34+
"--debug",
35+
"--output",
36+
"json"
37+
],
38+
"env": {
39+
"PYTHONPATH": "${workspaceFolder}"
40+
},
41+
"console": "integratedTerminal",
42+
"justMyCode": false
43+
},
44+
{
45+
"name": "Test: Run current test file",
46+
"type": "debugpy",
47+
"request": "launch",
48+
"module": "pytest",
49+
"args": ["${file}", "-v"],
50+
"python": "${command:python.interpreterPath}",
51+
"console": "integratedTerminal",
52+
"justMyCode": false
53+
},
54+
{
55+
"name": "Format and PR",
56+
"type": "node",
57+
"request": "launch",
58+
"runtimeExecutable": "bash",
59+
"runtimeArgs": [
60+
"-c",
61+
"cd \"${workspaceFolder}\" && make black && make pr"
62+
],
63+
"console": "integratedTerminal",
64+
"internalConsoleOptions": "neverOpen"
65+
}
66+
]
67+
}

DEVELOPMENT_GUIDE.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,18 @@ samdev --version # this will print something like "SAM CLI, version x.xx.x"
110110
echo '__version__ = "123.456.789"' >> samcli/__init__.py
111111
samdev --version # this will print "SAM CLI, version 123.456.789"
112112
```
113+
### 3 VS Code Debugger
113114

114-
### 3. (Optional) Install development version of SAM Transformer
115+
For VS Code Launch configuration, run the following command to create your local VS Code launch configuration:
116+
117+
```bash
118+
cp .vscode/launch.json.template .vscode/launch.json
119+
```
120+
121+
This will create a local copy of the launch configuration that you can customize without affecting the shared template.
122+
123+
124+
### 4. (Optional) Install development version of SAM Transformer
115125

116126
If you want to run the latest version of [SAM Transformer](https://github.com/aws/serverless-application-model/)
117127
or work on it at the same time, you can clone it locally and install it in your virtual environment.

Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ init:
1313
fi
1414

1515
test:
16-
# Run unit tests
17-
# Fail if coverage falls below 95%
16+
# Run unit tests and fail if coverage falls below 94%
1817
pytest --cov samcli --cov schema --cov-report term-missing --cov-fail-under 94 tests/unit
1918

2019
test-cov-report:

appveyor-linux-binary.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,15 @@ install:
4646
- sh: "ls /usr/"
4747
# install latest maven which is compatible with jdk17
4848
- sh: "sudo apt-get -y remove maven"
49-
- sh: "wget https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.zip -P /tmp"
49+
- sh: "wget https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.zip -P /tmp"
5050
- sh: "sudo unzip -d /opt/mvn /tmp/apache-maven-*.zip"
51-
- sh: "PATH=/opt/mvn/apache-maven-3.9.11/bin:$PATH"
51+
- sh: "PATH=/opt/mvn/apache-maven-3.9.12/bin:$PATH"
5252
- sh: "mvn --version"
5353

5454
- sh: "source ${HOME}/venv${PYTHON_VERSION}/bin/activate"
55+
- sh: "git -C ~/.rbenv/plugins/ruby-build pull"
5556
- sh: "rbenv install 3.3.7"
56-
- sh: "rbenv install 3.4.2"
57+
- sh: "rbenv install 3.4.7"
5758
- sh: "rbenv install 3.2.7"
5859
- sh: "rbenv global 3.3.7"
5960
- sh: "ruby --version"
@@ -79,7 +80,7 @@ install:
7980
- sh: "./aws_cli/bin/python -m pip install awscli"
8081
- sh: "PATH=$(echo $PWD'/aws_cli/bin'):$PATH"
8182

82-
- sh: "PATH=$PATH:$HOME/venv3.9/bin:$HOME/venv3.10/bin:$HOME/venv3.11/bin:$HOME/venv3.12/bin:$HOME/venv3.13/bin"
83+
- sh: "PATH=$PATH:$HOME/venv3.9/bin:$HOME/venv3.10/bin:$HOME/venv3.11/bin:$HOME/venv3.12/bin:$HOME/venv3.13/bin:$HOME/venv3.14/bin"
8384

8485
# Install pytest
8586
- sh: "python3.9 -m venv $HOME/pytest"

appveyor-ubuntu.yml

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ install:
4444
# AppVeyor's apt-get cache might be outdated, and the package could potentially be 404.
4545
- sh: "sudo apt-get update --allow-releaseinfo-change"
4646

47-
# install coretto 21
47+
# install coretto 25
4848
- sh: wget -O - https://apt.corretto.aws/corretto.key | sudo gpg --dearmor -o /usr/share/keyrings/corretto-keyring.gpg
4949
- sh: echo "deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main" | sudo tee /etc/apt/sources.list.d/corretto.list
50-
- sh: sudo apt-get update; sudo apt-get install -y java-21-amazon-corretto-jdk
51-
- sh: JAVA_HOME=/usr/lib/jvm/java-21-amazon-corretto
50+
- sh: sudo apt-get update; sudo apt-get install -y java-25-amazon-corretto-jdk
51+
- sh: JAVA_HOME=/usr/lib/jvm/java-25-amazon-corretto
5252
- sh: PATH=$JAVA_HOME/bin:$PATH
5353
- sh: java --version
5454
- sh: javac --version
@@ -58,9 +58,9 @@ install:
5858
- sh: "ls /usr/"
5959
# install latest maven which is compatible with jdk17
6060
- sh: "sudo apt-get -y remove maven"
61-
- sh: "wget https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.zip -P /tmp"
61+
- sh: "wget https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.zip -P /tmp"
6262
- sh: "sudo unzip -d /opt/mvn /tmp/apache-maven-*.zip"
63-
- sh: "PATH=/opt/mvn/apache-maven-3.9.11/bin:$PATH"
63+
- sh: "PATH=/opt/mvn/apache-maven-3.9.12/bin:$PATH"
6464
- sh: "mvn --version"
6565

6666
# Finch Runtime Setup (Steps 1-7)
@@ -237,11 +237,11 @@ install:
237237
- sh: "npm install npm@10.2.3 -g"
238238
- sh: "npm -v"
239239

240-
# Install latest gradle
240+
# Install latest gradle comptabile with Java 25
241241
- sh: "sudo apt-get -y remove gradle"
242-
- sh: "wget https://services.gradle.org/distributions/gradle-9.0.0-bin.zip -P /tmp"
242+
- sh: "wget https://services.gradle.org/distributions/gradle-9.2.0-bin.zip -P /tmp"
243243
- sh: "sudo unzip -d /opt/gradle /tmp/gradle-*.zip"
244-
- sh: "PATH=/opt/gradle/gradle-9.0.0/bin:$PATH"
244+
- sh: "PATH=/opt/gradle/gradle-9.2.0/bin:$PATH"
245245
- sh: "gradle --version"
246246

247247
# Install dotnet8 SDK
@@ -253,7 +253,16 @@ install:
253253
- sh: "./aws_cli/bin/python -m pip install awscli"
254254
- sh: "PATH=$(echo $PWD'/aws_cli/bin'):$PATH"
255255

256-
- sh: "PATH=$PATH:$HOME/venv3.7/bin:$HOME/venv3.8/bin:$HOME/venv3.9/bin:$HOME/venv3.10/bin:$HOME/venv3.11/bin:$HOME/venv3.12/bin:$HOME/venv3.13/bin"
256+
# install python 3.14
257+
- sh: |
258+
DEST="$HOME/venv3.14"
259+
URL="https://github.com/astral-sh/python-build-standalone/releases/download/20251031/cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz"
260+
curl -L "$URL" | tar -xz
261+
mv python $DEST
262+
$HOME/venv3.14/bin/python --version
263+
$HOME/venv3.14/bin/pip --version
264+
265+
- sh: "PATH=$PATH:$HOME/venv3.7/bin:$HOME/venv3.8/bin:$HOME/venv3.9/bin:$HOME/venv3.10/bin:$HOME/venv3.11/bin:$HOME/venv3.12/bin:$HOME/venv3.13/bin:$HOME/venv3.14/bin"
257266

258267
# update ca-certificates which causes failures with newest golang library
259268
- sh: "sudo apt-get install --reinstall ca-certificates"
@@ -295,6 +304,8 @@ install:
295304
- sh: 'export AWS_KMS_KEY=$(echo "$test_env_var" | jq -j ".TestKMSKeyArn")'
296305
- sh: 'export AWS_SIGNING_PROFILE_NAME=$(echo "$test_env_var" | jq -j ".TestSigningProfileName")'
297306
- sh: 'export AWS_SIGNING_PROFILE_VERSION_ARN=$(echo "$test_env_var" | jq -j ".TestSigningProfileARN")'
307+
- sh: 'export LMI_SUBNET_ID=$(echo "$test_env_var" | jq -j ".LMISubnetId")'
308+
- sh: 'export LMI_SECURITY_GROUP_ID=$(echo "$test_env_var" | jq -j ".LMISecurityGroupId")'
298309

299310
# Runtime-aware Docker Hub authentication with fail-fast
300311
- sh: |
@@ -444,8 +455,9 @@ for:
444455

445456
test_script:
446457
# Install Ruby for Ruby build tests
458+
- sh: "git -C ~/.rbenv/plugins/ruby-build pull"
447459
- sh: "rbenv install 3.3.7"
448-
- sh: "rbenv install 3.4.2"
460+
- sh: "rbenv install 3.4.7"
449461
- sh: "rbenv install 3.2.7"
450462
- sh: "rbenv global 3.3.7"
451463
- sh: "ruby --version"
@@ -465,8 +477,9 @@ for:
465477

466478
test_script:
467479
# Install Ruby for Ruby ARM64 build tests
480+
- sh: "git -C ~/.rbenv/plugins/ruby-build pull"
468481
- sh: "rbenv install 3.3.7"
469-
- sh: "rbenv install 3.4.2"
482+
- sh: "rbenv install 3.4.7"
470483
- sh: "rbenv install 3.2.7"
471484
- sh: "rbenv global 3.3.7"
472485
- sh: "ruby --version"
@@ -510,8 +523,9 @@ for:
510523

511524
test_script:
512525
# Install Ruby for Ruby sync tests
526+
- sh: "git -C ~/.rbenv/plugins/ruby-build pull"
513527
- sh: "rbenv install 3.3.7"
514-
- sh: "rbenv install 3.4.2"
528+
- sh: "rbenv install 3.4.7"
515529
- sh: "rbenv install 3.2.7"
516530
- sh: "rbenv global 3.3.7"
517531
- sh: "ruby --version"
@@ -556,8 +570,9 @@ for:
556570

557571
test_script:
558572
# Install Ruby for Ruby validation and other tests
573+
- sh: "git -C ~/.rbenv/plugins/ruby-build pull"
559574
- sh: "rbenv install 3.3.7"
560-
- sh: "rbenv install 3.4.2"
575+
- sh: "rbenv install 3.4.7"
561576
- sh: "rbenv install 3.2.7"
562577
- sh: "rbenv global 3.3.7"
563578
- sh: "ruby --version"

appveyor-windows-al2023.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@ install:
5050
- choco upgrade gradle --version=9.0.0
5151
- choco install ruby --version=3.2.7.1
5252
- choco install ruby --version=3.3.7.1
53-
- choco install ruby --version=3.4.2.1
53+
- choco install ruby --version=3.4.7.1
5454
- "gradle -v"
5555
- "mvn --version"
5656

5757
# Make sure the temp directory exists for Python to use.
5858
- ps: "mkdir -Force C:\\tmp"
5959
- "python --version"
60-
- 'set PATH=%PYTHON_HOME%;C:\Ruby32-x64\bin;C:\Ruby33-x64\bin;C:\Ruby34-x64\bin;%PATH%;C:\Python39-x64;C:\Python310-x64;C:\Python311-x64;C:\Python312-x64;C:\Python313-x64'
60+
- 'set PATH=%PYTHON_HOME%;C:\Ruby32-x64\bin;C:\Ruby33-x64\bin;C:\Ruby34-x64\bin;%PATH%;C:\Python39-x64;C:\Python310-x64;C:\Python311-x64;C:\Python312-x64;C:\Python313-x64;C:\Python314-x64'
6161
- "node --version"
6262
- "echo %PYTHON_HOME%"
6363
- "echo %PATH%"
@@ -102,6 +102,8 @@ install:
102102
$env:AWS_KMS_KEY = $test_env_var_json.TestKMSKeyArn;
103103
$env:AWS_SIGNING_PROFILE_NAME = $test_env_var_json.TestSigningProfileName;
104104
$env:AWS_SIGNING_PROFILE_VERSION_ARN = $test_env_var_json.TestSigningProfileARN;
105+
$env:LMI_SUBNET_ID = $test_env_var_json.LMISubnetId;
106+
$env:LMI_SECURITY_GROUP_ID = $test_env_var_json.LMISecurityGroupId;
105107
}"
106108

107109

0 commit comments

Comments
 (0)