Skip to content

Commit 4e2eb23

Browse files
committed
Merge branch 'develop' of github.com:aws/aws-sam-cli into nightly
2 parents 4fbca85 + 4991b67 commit 4e2eb23

29 files changed

Lines changed: 1090 additions & 179 deletions

.github/dependabot.yml

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ updates:
3232
- "botocore-stubs"
3333
- "mypy-boto3-*"
3434
- "types-awscrt"
35-
types:
36-
patterns:
37-
- "types-*"
35+
- "types-s3transfer"
3836
pytest:
3937
patterns:
4038
- "pytest-*"
@@ -43,6 +41,68 @@ updates:
4341
# as of writing this
4442
- "pytest-metadata"
4543
- "pytest-json-report"
44+
cookiecutter:
45+
patterns:
46+
- "cookiecutter"
47+
- "arrow"
48+
- "binaryornot"
49+
- "chardet"
50+
- "python-slugify"
51+
- "text-unidecode"
52+
flask:
53+
patterns:
54+
- "flask"
55+
- "blinker"
56+
- "werkzeug"
57+
- "itsdangerous"
58+
cfn-lint:
59+
patterns:
60+
- "cfn-lint"
61+
- "networkx"
62+
- "sympy"
63+
- "mpmath"
64+
- "jsonpatch"
65+
- "jsonpointer"
66+
cryptography:
67+
patterns:
68+
- "cryptography"
69+
- "pyopenssl"
70+
- "cffi"
71+
- "pycparser"
72+
requests:
73+
patterns:
74+
- "requests"
75+
- "certifi"
76+
- "charset-normalizer"
77+
- "idna"
78+
- "urllib3"
79+
rich:
80+
patterns:
81+
- "rich"
82+
- "markdown-it-py"
83+
- "mdurl"
84+
- "pygments"
85+
jsonschema:
86+
patterns:
87+
- "jsonschema"
88+
- "jsonschema-specifications"
89+
- "referencing"
90+
- "attrs"
91+
- "rpds-py"
92+
pydantic:
93+
patterns:
94+
- "pydantic"
95+
- "pydantic-core"
96+
- "annotated-types"
97+
- "typing-inspection"
98+
jinja2:
99+
patterns:
100+
- "jinja2"
101+
- "markupsafe"
102+
pyyaml:
103+
patterns:
104+
- "pyyaml"
105+
- "ruamel-yaml"
46106
ignore:
47107
# Ignored intentionally since we have a GHA that updates to more
48108
# completely

.github/workflows/integration-tests.yml

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ jobs:
112112
- name: Checkout code
113113
uses: actions/checkout@v6
114114
with:
115-
ref: ${{ env.TEST_TYPE == 'nightly-release' && 'nightly-builds' || (github.event_name == 'schedule' && 'develop' || github.ref) }}
115+
ref: ${{ (env.TEST_TYPE == 'nightly-release' && github.event.action == 'published') && 'nightly-builds' || (github.event_name == 'schedule' && 'develop' || github.ref) }}
116116

117117
- name: Free up disk space
118118
shell: bash
@@ -189,6 +189,7 @@ jobs:
189189
uses: ruby/setup-ruby@v1
190190
with:
191191
ruby-version: '3.4.7'
192+
windows-toolchain: none
192193

193194
- name: Install Rust toolchain and cargo-lambda
194195
if: contains(fromJSON('["build-x86-1", "build-x86-2", "build-arm64", "cloud-based-tests", "tier1-finch", "tier1-windows-build-2", "tier1-windows-build-3", "tier1-windows-other"]'), matrix.test_suite)
@@ -225,13 +226,6 @@ jobs:
225226
make setup-pytest
226227
make init-nightly
227228
echo "SAM_CLI_DEV=" >> $GITHUB_ENV
228-
# Detect venv python/pytest path (bin on Linux/macOS, Scripts on Windows)
229-
if [ -f "$HOME/pytest/bin/python3" ]; then
230-
echo "SCRIPT_PY=$HOME/pytest/bin/python3" >> $GITHUB_ENV
231-
else
232-
echo "SCRIPT_PY=$HOME/pytest/Scripts/python.exe" >> $GITHUB_ENV
233-
echo "$HOME/pytest/Scripts" >> $GITHUB_PATH
234-
fi
235229
236230
- name: Initialize latest release test
237231
if: env.TEST_TYPE == 'latest-release'
@@ -242,12 +236,6 @@ jobs:
242236
make setup-pytest
243237
make init-latest-release
244238
echo "SAM_CLI_DEV=" >> $GITHUB_ENV
245-
if [ -f "$HOME/pytest/bin/python3" ]; then
246-
echo "SCRIPT_PY=$HOME/pytest/bin/python3" >> $GITHUB_ENV
247-
else
248-
echo "SCRIPT_PY=$HOME/pytest/Scripts/python.exe" >> $GITHUB_ENV
249-
echo "$HOME/pytest/Scripts" >> $GITHUB_PATH
250-
fi
251239
252240
- name: Configure AWS credentials via OIDC
253241
uses: aws-actions/configure-aws-credentials@v6
@@ -450,29 +438,29 @@ jobs:
450438
esac
451439
452440
- name: Upload test results
453-
if: always()
441+
if: always() && env.SCRIPT_PY != ''
454442
uses: actions/upload-artifact@v7
455443
with:
456444
name: test-results-${{ matrix.test_suite }}
457445
path: TEST_REPORT-*.json
458446

459447
- name: Re-authenticate with OIDC for cleanup
460-
if: always()
448+
if: always() && env.SCRIPT_PY != ''
461449
uses: aws-actions/configure-aws-credentials@v6
462450
with:
463451
role-to-assume: ${{ secrets.OIDC_ROLE_ARN }}
464452
aws-region: us-east-1
465453

466454
- name: Assume test reporting role
467-
if: always()
455+
if: always() && env.SCRIPT_PY != ''
468456
uses: aws-actions/configure-aws-credentials@v6
469457
with:
470458
role-to-assume: ${{ secrets.TESTREPORTING_ARN }}
471459
aws-region: us-east-1
472460
role-chaining: true
473461

474462
- name: Reset test account and upload reports
475-
if: always()
463+
if: always() && env.SCRIPT_PY != ''
476464
shell: bash
477465
env:
478466
TESTREPORTING_S3: ${{ secrets.TESTREPORTING_S3 }}

Makefile

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,17 @@ SAM_CLI_TELEMETRY ?= 0
66

77
# Initialize environment specifically for Github action tests using uv
88
init:
9-
@if [ "$$GITHUB_ACTIONS" = "true" ]; then \
9+
if [ "$$GITHUB_ACTIONS" = "true" ]; then \
1010
command -v uv >/dev/null 2>&1 || pip install uv==0.9.1; \
11+
echo "=== UV_PYTHON resolved to: $$(uv python find $$UV_PYTHON) ==="; \
1112
SAM_CLI_DEV=1 uv pip install --system --break-system-packages --python "$$(uv python find $$UV_PYTHON)" -e '.[dev]'; \
1213
else \
1314
SAM_CLI_DEV=1 pip install -e '.[dev]'; \
1415
fi
1516

16-
# Set up a pytest venv with test dependencies
1717
# Set up a pytest venv with test dependencies (cross-platform)
1818
setup-pytest:
19-
python3.11 -m venv $(HOME)/pytest || python3 -m venv $(HOME)/pytest || python -m venv $(HOME)/pytest
20-
uv pip install --python $(HOME)/pytest/bin/python3 --only-deps --extra dev '.' 2>/dev/null || \
21-
uv pip install --python $(HOME)/pytest/Scripts/python.exe --only-deps --extra dev '.'
22-
@if [ -f "$(HOME)/pytest/bin/pytest" ]; then \
23-
sudo ln -sf $(HOME)/pytest/bin/pytest /usr/local/bin/pytest 2>/dev/null || true; \
24-
fi
25-
$(HOME)/pytest/bin/pytest --version 2>/dev/null || $(HOME)/pytest/Scripts/pytest --version
26-
19+
bash tests/setup-pytest.sh
2720
# Install SAM CLI nightly binary
2821
init-nightly:
2922
bash tests/install-sam-cli-binary.sh sam-cli-nightly

pyproject.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ dynamic = ["version", "scripts"]
77
description = "AWS SAM CLI is a CLI tool for local development and testing of Serverless applications"
88
readme = "README.md"
99
license = "Apache-2.0"
10-
requires-python = ">=3.10, <=3.14"
10+
requires-python = ">=3.10"
1111
authors = [
1212
{ name = "Amazon Web Services", email = "aws-sam-developers@amazon.com" },
1313
]
@@ -35,11 +35,11 @@ dependencies = [
3535
"chevron~=0.12",
3636
"click==8.1.8",
3737
"Flask<3.2",
38-
"boto3[crt]==1.42.59",
38+
"boto3[crt]==1.42.64",
3939
"jmespath~=1.1.0",
4040
"ruamel_yaml~=0.19.1",
4141
"PyYAML~=6.0",
42-
"cookiecutter~=2.6.0",
42+
"cookiecutter>=2.6,<2.8",
4343
"aws-sam-translator==1.107.0",
4444
# docker minor version updates can include breaking changes. Auto update micro version only.
4545
"docker~=7.1.0",
@@ -56,14 +56,14 @@ dependencies = [
5656
# regex is not a direct dependency of SAM CLI, exclude version 2021.10.8 due to not working on M1 Mac
5757
"regex!=2021.10.8",
5858
"tzlocal==5.3.1",
59-
"cfn-lint~=1.45.0",
59+
"cfn-lint>=1.45,<1.47",
6060
"boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray,sqs,kinesis]>=1.41.0",
6161
"python-dotenv~=1.0.0",
6262
]
6363

6464
[project.optional-dependencies]
6565
pre-dev = [
66-
"ruff==0.15.4",
66+
"ruff==0.15.5",
6767
]
6868
dev = [
6969
"aws-sam-cli[pre-dev]",
@@ -91,8 +91,8 @@ dev = [
9191
"pytest-rerunfailures==16.1",
9292
"pytest-metadata==3.1.1",
9393
"pytest-json-report-wip==1.5.1",
94-
"filelock==3.25.0",
95-
"black==26.1.0",
94+
"filelock==3.25.1",
95+
"black==26.3.0",
9696
"psutil==7.2.2",
9797
"chardet<6",
9898
]

requirements/pyinstaller-build.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Executable binary builder requirements
2-
setuptools==82.0.0
2+
setuptools==82.0.1
33
pyinstaller==6.19.0

requirements/reproducible-linux.txt

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -74,19 +74,19 @@ blinker==1.9.0 \
7474
--hash=sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf \
7575
--hash=sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc
7676
# via flask
77-
boto3[crt]==1.42.59 \
78-
--hash=sha256:6c4a14a4eb37b58a9048901bdeefbe1c529638b73e8f55413319a25f010ca211 \
79-
--hash=sha256:7a66e3e8e2087ea4403e135e9de592e6d63fc9a91080d8dac415bb74df873a72
77+
boto3[crt]==1.42.64 \
78+
--hash=sha256:2ca6b472937a54ba74af0b4bede582ba98c070408db1061fc26d5c3aa8e6e7e6 \
79+
--hash=sha256:58d47897a26adbc22f6390d133dab772fb606ba72695291a8c9e20cba1c7fd23
8080
# via
8181
# aws-sam-cli (pyproject.toml)
8282
# aws-sam-translator
83-
boto3-stubs[apigateway, cloudformation, ecr, iam, kinesis, lambda, s3, schemas, secretsmanager, signer, sqs, stepfunctions, sts, xray]==1.42.59 \
84-
--hash=sha256:4a6fc520560ee6a2cb9e05bdfcd45d4e07d9fb91cf483dfbd3a5ab87efe6b860 \
85-
--hash=sha256:bef0080a1bbb3f6bfe0cdc0c3d0771bdb91729f5a415ad09397df1ec2aca7256
83+
boto3-stubs[apigateway, cloudformation, ecr, iam, kinesis, lambda, s3, schemas, secretsmanager, signer, sqs, stepfunctions, sts, xray]==1.42.64 \
84+
--hash=sha256:54e849fc3ae8ad73e049c304a425b3335ee81801bd00f80d9d1e3ae8d6ba5e17 \
85+
--hash=sha256:f184e7108b6b6220dd55d082159de0b0630972552eeb951b87cfdac0f0235823
8686
# via aws-sam-cli (pyproject.toml)
87-
botocore[crt]==1.42.59 \
88-
--hash=sha256:5314f19e1da8fc0ebc41bdb8bbe17c9a7397d87f4d887076ac8bdef972a34138 \
89-
--hash=sha256:d2f2ff7ecc31e86ef46b5daee112cfbca052c13801285fb23af909f7bff5b657
87+
botocore[crt]==1.42.64 \
88+
--hash=sha256:4ee2aece227b9171ace8b749af694a77ab984fceab1639f2626bd0d6fb1aa69d \
89+
--hash=sha256:f77c5cb76ed30576ed0bc73b591265d03dddffff02a9208d3ee0c790f43d3cd2
9090
# via
9191
# boto3
9292
# s3transfer
@@ -184,9 +184,9 @@ cffi==2.0.0 \
184184
--hash=sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453 \
185185
--hash=sha256:fe562eb1a64e67dd297ccc4f5addea2501664954f2692b69a76449ec7913ecbf
186186
# via cryptography
187-
cfn-lint==1.45.0 \
188-
--hash=sha256:0a05b34eff63f45d7b9b0465e01dca6c2035b730bd88910dca8c4bcf00913939 \
189-
--hash=sha256:39aed0cdb3be4d09fad4ca4e410790313c1b6a4e4a9f0362dac1b1980dd48978
187+
cfn-lint==1.46.0 \
188+
--hash=sha256:1dfca1993af3159411e4a4f79466617ccdca48eddaf424e216297167c500aa3b \
189+
--hash=sha256:fa7cb76db683109133241baf1e1734b1d61b46d3900ba2a309db8f3d0e5d3994
190190
# via aws-sam-cli (pyproject.toml)
191191
chardet==5.2.0 \
192192
--hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \
@@ -318,9 +318,9 @@ click==8.1.8 \
318318
# aws-sam-cli (pyproject.toml)
319319
# cookiecutter
320320
# flask
321-
cookiecutter==2.6.0 \
322-
--hash=sha256:a54a8e37995e4ed963b3e82831072d1ad4b005af736bb17b99c2cbd9d41b6e2d \
323-
--hash=sha256:db21f8169ea4f4fdc2408d48ca44859349de2647fbe494a9d6c3edfc0542c21c
321+
cookiecutter==2.7.1 \
322+
--hash=sha256:ca7bb7bc8c6ff441fbf53921b5537668000e38d56e28d763a1b73975c66c6138 \
323+
--hash=sha256:cee50defc1eaa7ad0071ee9b9893b746c1b3201b66bf4d3686d0f127c8ed6cf9
324324
# via aws-sam-cli (pyproject.toml)
325325
cryptography==46.0.5 \
326326
--hash=sha256:02f547fce831f5096c9a567fd41bc12ca8f11df260959ecc7c3202555cc47a72 \
@@ -542,9 +542,9 @@ mypy-boto3-ecr==1.42.57 \
542542
--hash=sha256:09c0b4df95a73c217d62383da8a869e270ecd380585f6fd690a77714074817bf \
543543
--hash=sha256:1d6a3b2887090e5f08a28b35b4391a34d17575f518f52cdb879e2275323a4137
544544
# via boto3-stubs
545-
mypy-boto3-iam==1.42.4 \
546-
--hash=sha256:41b17d55f44d31ca5ef0389579505e65f6e79fae0423b98ff2581e83f6284bc5 \
547-
--hash=sha256:670ffeff6dee7eaa7f6f77ddfee1eeec2ab968b381efeddd3ccfe6f9971ac198
545+
mypy-boto3-iam==1.42.64 \
546+
--hash=sha256:d01308ad4a197f8c465aed8002502793802f10fa0a01323b5efda4e2fbd937a5 \
547+
--hash=sha256:d138d8f41e719d9bbfc4aa3d2095030202f0c0642b37d038d21a153814198582
548548
# via boto3-stubs
549549
mypy-boto3-kinesis==1.42.41 \
550550
--hash=sha256:6f2079ef5908ee5e467f6e85c30001f241e3e19edc0fa3a487e3f51f180fab96 \
@@ -1095,9 +1095,9 @@ s3transfer==0.16.0 \
10951095
--hash=sha256:18e25d66fed509e3868dc1572b3f427ff947dd2c56f844a5bf09481ad3f3b2fe \
10961096
--hash=sha256:8e990f13268025792229cd52fa10cb7163744bf56e719e0b9cb925ab79abf920
10971097
# via boto3
1098-
setuptools==82.0.0 \
1099-
--hash=sha256:22e0a2d69474c6ae4feb01951cb69d515ed23728cf96d05513d36e42b62b37cb \
1100-
--hash=sha256:70b18734b607bd1da571d097d236cfcfacaf01de45717d59e6e04b96877532e0
1098+
setuptools==82.0.1 \
1099+
--hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \
1100+
--hash=sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb
11011101
# via aws-lambda-builders
11021102
six==1.17.0 \
11031103
--hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \
@@ -1115,9 +1115,9 @@ tomlkit==0.14.0 \
11151115
--hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \
11161116
--hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064
11171117
# via aws-sam-cli (pyproject.toml)
1118-
types-awscrt==0.31.2 \
1119-
--hash=sha256:3d6a29c1cca894b191be408f4d985a8e3a14d919785652dd3fa4ee558143e4bf \
1120-
--hash=sha256:dc79705acd24094656b8105b8d799d7e273c8eac37c69137df580cd84beb54f6
1118+
types-awscrt==0.31.3 \
1119+
--hash=sha256:09d3eaf00231e0f47e101bd9867e430873bc57040050e2a3bd8305cb4fc30865 \
1120+
--hash=sha256:e5ce65a00a2ab4f35eacc1e3d700d792338d56e4823ee7b4dbe017f94cfc4458
11211121
# via botocore-stubs
11221122
types-s3transfer==0.16.0 \
11231123
--hash=sha256:1c0cd111ecf6e21437cb410f5cddb631bfb2263b77ad973e79b9c6d0cb24e0ef \

0 commit comments

Comments
 (0)