diff --git a/appveyor-ubuntu.yml b/appveyor-ubuntu.yml index 9a16892b33..dd82e5e2f9 100644 --- a/appveyor-ubuntu.yml +++ b/appveyor-ubuntu.yml @@ -53,8 +53,8 @@ install: - sh: "mvn --version" - sh: "source ${HOME}/venv${PYTHON_VERSION}/bin/activate" - - sh: "rvm reinstall ruby-3.2.2 --with-openssl-dir=/usr/lib/x86_64-linux-gnu" # reinstall ruby3.2 to fix OpenSSL issue - - sh: "rvm use 3.2.2" + - sh: "rbenv global 3.2.3" + - sh: "ruby --version" - sh: "docker info" - sh: "docker version" - sh: "nvm install ${NODE_VERSION}" diff --git a/requirements/base.txt b/requirements/base.txt index 170ed88910..38cd50577c 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,15 +6,15 @@ jmespath~=1.0.1 ruamel_yaml~=0.18.6 PyYAML~=6.0,>=6.0.1 cookiecutter~=2.6.0 -aws-sam-translator==1.85.0 +aws-sam-translator==1.86.0 #docker minor version updates can include breaking changes. Auto update micro version only. docker~=7.0.0 dateparser~=1.2 requests~=2.31.0 aws_lambda_builders==1.47.0 -tomlkit==0.12.3 +tomlkit==0.12.4 watchdog==4.0.0 -rich~=13.7.0 +rich~=13.7.1 pyopenssl~=24.0.0 # Pin to <4.18 to until SAM-T no longer uses RefResolver jsonschema<4.22 @@ -28,7 +28,7 @@ regex!=2021.10.8 tzlocal==5.2 #Adding cfn-lint dependency for SAM validate -cfn-lint~=0.85.2 +cfn-lint~=0.86.0 # Type checking boto3 objects -boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray,sqs,kinesis]==1.34.52 +boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray,sqs,kinesis]==1.34.58 diff --git a/requirements/dev.txt b/requirements/dev.txt index d382830312..35aada2903 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -12,11 +12,11 @@ types-pywin32==306.0.0.20240130 types-PyYAML==6.0.12.12 types-chevron==0.14.2.20240106 types-psutil==5.9.5.20240205 -types-setuptools==69.1.0.20240229 +types-setuptools==69.1.0.20240308 types-Pygments==2.17.0.20240106 types-colorama==0.4.15.20240205 types-dateparser==1.1.4.20240106 -types-docutils==0.20.0.20240227 +types-docutils==0.20.0.20240308 types-jsonschema==4.21.0.20240118 types-pyOpenSSL==24.0.0.20240228 # as of types-requests>=2.31.0.7, this now requires `urllib3>2`, pin we are able to upgrade @@ -28,7 +28,7 @@ pytest~=8.0.1 parameterized==0.9.0 pytest-xdist==3.5.0 pytest-forked==1.6.0 -pytest-timeout==2.2.0 +pytest-timeout==2.3.1 pytest-rerunfailures==13.0 # NOTE (hawflau): DO NOT upgrade pytest-metadata and pytest-json-report unless pytest-json-report addresses https://github.com/numirias/pytest-json-report/issues/89 pytest-metadata==3.1.1 diff --git a/requirements/pre-dev.txt b/requirements/pre-dev.txt index 83028ae40b..e93be0b37b 100644 --- a/requirements/pre-dev.txt +++ b/requirements/pre-dev.txt @@ -1 +1 @@ -ruff==0.2.2 +ruff==0.3.1 diff --git a/requirements/reproducible-linux.txt b/requirements/reproducible-linux.txt index 29d267e982..e4bfa16fbb 100644 --- a/requirements/reproducible-linux.txt +++ b/requirements/reproducible-linux.txt @@ -24,9 +24,9 @@ aws-lambda-builders==1.47.0 \ --hash=sha256:e35466c7faa603f9bd30c851be1a8e6076b93876e56ab59ff78dca5b244bdddf \ --hash=sha256:f30175975ae60f6fe301a6ca1e3e7b5ca53c7685da9a3bccc9e720a7f5168e5e # via aws-sam-cli (setup.py) -aws-sam-translator==1.85.0 \ - --hash=sha256:e41938affa128fb5bde5e1989b260bf539a96369bba3faf316ce66651351df39 \ - --hash=sha256:e8c69a4db7279421ff6c3579cd4d43395fe9b6781f50416528e984be68e25481 +aws-sam-translator==1.86.0 \ + --hash=sha256:97a44e5ac8b0d141c31f4ed35c57aa94429a0e6cef7fe989831c9a1c40455473 \ + --hash=sha256:a748dcd7886024cb7586abbbdbabe8c787c44c6547bb6602879d7bb8a6934d05 # via # aws-sam-cli (setup.py) # cfn-lint @@ -38,25 +38,25 @@ blinker==1.7.0 \ --hash=sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 \ --hash=sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182 # via flask -boto3==1.34.52 \ - --hash=sha256:66303b5f26d92afb72656ff490b22ea72dfff8bf1a29e4a0c5d5f11ec56245dd \ - --hash=sha256:898ad2123b18cae8efd85adc56ac2d1925be54592aebc237020d4f16e9a9e7a9 +boto3==1.34.58 \ + --hash=sha256:09e3d17c718bc938a76774f31bc557b20733c0f5f9135a3e7782b55f3459cbdd \ + --hash=sha256:d213a6fea9db6d537b1e65924133d8279ada79a40bc840d4930e1b64be869d4c # via # aws-sam-cli (setup.py) # aws-sam-translator -boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.52 \ - --hash=sha256:644381a404fb5884154f7dcc40bb819f0c7f37de21b7a7b493585277b51c9a5f \ - --hash=sha256:823c41059f836d6877daaa1cbd20f813c8f1a78b9fdf290bc0b853127e127ba3 +boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.58 \ + --hash=sha256:14ea85a355f984bd7dc17e39237bfc24c3a55479fbcb87f17c00269bd95a2b44 \ + --hash=sha256:f164e520361d6aa39d295ac09588a6dc6b8efbc4058ada0b796d3bfb0e6e6e98 # via aws-sam-cli (setup.py) -botocore==1.34.52 \ - --hash=sha256:05567d8aba344826060481ea309555432c96f0febe22bee7cf5a3b6d3a03cec8 \ - --hash=sha256:187da93aec3f2e87d8a31eced16fa2cb9c71fe2d69b0a797f9f7a9220f5bf7ae +botocore==1.34.58 \ + --hash=sha256:8086a6ea27d0f658505ac81e6d7314e013561469c40db9b5a4692127eb5c97cf \ + --hash=sha256:d75216952886dc513ea1b5e2979a6af08feed2f537e3fc102e4a0a2ead563a35 # via # boto3 # s3transfer -botocore-stubs==1.34.52 \ - --hash=sha256:0870e2db4ec557c21a8fc142f1f785759f263437b64c1d45f2ca16e91d612af7 \ - --hash=sha256:a51b6ca1fca9acdaa9e80412f37153690fffad7ed227743cc530809920d2a009 +botocore-stubs==1.34.58 \ + --hash=sha256:7f820ed37a11109744a8c4aeb9f0224c7114b5aaabcbd46fc6c4f60af69faa3e \ + --hash=sha256:830bf3bc6b0a7299f770c0adcbea21fda5d240080024f12ca6d80633a3ce46c4 # via boto3-stubs certifi==2024.2.2 \ --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ @@ -116,9 +116,9 @@ cffi==1.16.0 \ --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 # via cryptography -cfn-lint==0.85.2 \ - --hash=sha256:e7a0aafb9ad93dbe5db54cbefca92a94f2d173309218273ef997ecb048125d89 \ - --hash=sha256:f8a5cc55daeaaa747b8d776dcf62fe1b6bfb8cb46ae60950cbe627601facccd7 +cfn-lint==0.86.0 \ + --hash=sha256:70cefa0ab91e35698cd8c03a2f99a367d71d848da5a62123192552937652d542 \ + --hash=sha256:7216e9c10dd27af73821d0ae79b17406cd89f5dfbc25feb5d2ba756eb6e9a651 # via aws-sam-cli (setup.py) chardet==5.2.0 \ --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ @@ -405,13 +405,13 @@ mpmath==1.3.0 \ --hash=sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f \ --hash=sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c # via sympy -mypy-boto3-apigateway==1.34.50 \ - --hash=sha256:3df3cb29a38fe6e7607dde0680f3016e223b895c566ced9820da64657f9b4fad \ - --hash=sha256:43978b27d585528dc218749082b683cc060519aa4958b97d107620ddad6a383d +mypy-boto3-apigateway==1.34.56 \ + --hash=sha256:3695503bd9388b3067c1dc1dc4ec1486dcec450dbf1e9889f451120e333b92da \ + --hash=sha256:5ab15db30d730198384d6445d50cc1fec98361b85366dd092b10e9b9f4a1a2cb # via boto3-stubs -mypy-boto3-cloudformation==1.34.32 \ - --hash=sha256:49d04c090dae3fd8289738ae592cac9d6faa5169684de40c2730b425bba2a32d \ - --hash=sha256:bfe5ec405eae6dae31dc9874729eef5e668e634eae8972032f00400d17bd2c7d +mypy-boto3-cloudformation==1.34.55 \ + --hash=sha256:78c4d25ef7102bd02c8e87d32211ff60a7b474ec546e9948b46f170d341ae0a2 \ + --hash=sha256:de9f4d45d0a4e57bb5ef8b8d7a03476f8ef24ffa253d636cd824cde061227439 # via boto3-stubs mypy-boto3-ecr==1.34.0 \ --hash=sha256:3346c02c22b16068c9acc67d990e32060bf7cdaea5f3d43c50e44308fbbc3439 \ @@ -425,9 +425,9 @@ mypy-boto3-kinesis==1.34.0 \ --hash=sha256:1add81c53f6e36599e0c22e142024867759aaf2f4954bcb2baa21c284c852377 \ --hash=sha256:f404e75badd5977e9f09741b769b8888854bdd411c631344686ab889efe98741 # via boto3-stubs -mypy-boto3-lambda==1.34.46 \ - --hash=sha256:275297944c5e36a170b37ce70229f21db6dd3561606799f18d96e36ac5df6876 \ - --hash=sha256:a12232002e04ee06b413b47068bc6bb085aeaa3693d28e9bf0efd76fa6953a0b +mypy-boto3-lambda==1.34.58 \ + --hash=sha256:6ab1b9611ff396e9310ad77f02994a6e03d40c8a0eea51085e355b4fd2a0cbc9 \ + --hash=sha256:903822c74bd1b34748eb2d72eab0f132fbc3b392c8041aa8fe4d9552a44b0c65 # via boto3-stubs mypy-boto3-s3==1.34.14 \ --hash=sha256:71c39ab0623cdb442d225b71c1783f6a513cff4c4a13505a2efbb2e3aff2e965 \ @@ -479,9 +479,9 @@ pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pydantic==2.6.2 \ - --hash=sha256:37a5432e54b12fecaa1049c5195f3d860a10e01bdfd24f1840ef14bd0d3aeab3 \ - --hash=sha256:a09be1c3d28f3abe37f8a78af58284b236a92ce520105ddc91a6d29ea1176ba7 +pydantic==2.6.3 \ + --hash=sha256:72c6034df47f46ccdf81869fddb81aade68056003900a8724a4f160700016a2a \ + --hash=sha256:e07805c4c7f5c6826e33a1d4c9d47950d7eaf34868e2690f8594d2e30241f11f # via aws-sam-translator pydantic-core==2.16.3 \ --hash=sha256:00ee1c97b5364b84cb0bd82e9bbf645d5e2871fb8c58059d158412fee2d33d8a \ @@ -572,9 +572,9 @@ pyopenssl==24.0.0 \ --hash=sha256:6aa33039a93fffa4563e655b61d11364d01264be8ccb49906101e02a334530bf \ --hash=sha256:ba07553fb6fd6a7a2259adb9b84e12302a9a8a75c44046e8bb5d3e5ee887e3c3 # via aws-sam-cli (setup.py) -python-dateutil==2.8.2 \ - --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ - --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 +python-dateutil==2.9.0.post0 \ + --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ + --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 # via # arrow # botocore @@ -743,9 +743,9 @@ requests==2.31.0 \ # aws-sam-cli (setup.py) # cookiecutter # docker -rich==13.7.0 \ - --hash=sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa \ - --hash=sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235 +rich==13.7.1 \ + --hash=sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222 \ + --hash=sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432 # via # aws-sam-cli (setup.py) # cookiecutter @@ -930,13 +930,13 @@ text-unidecode==1.3 \ --hash=sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8 \ --hash=sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93 # via python-slugify -tomlkit==0.12.3 \ - --hash=sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4 \ - --hash=sha256:b0a645a9156dc7cb5d3a1f0d4bab66db287fcb8e0430bdd4664a095ea16414ba +tomlkit==0.12.4 \ + --hash=sha256:5cd82d48a3dd89dee1f9d64420aa20ae65cfbd00668d6f094d7578a78efbb77b \ + --hash=sha256:7ca1cfc12232806517a8515047ba66a19369e71edf2439d0f5824f91032b6cc3 # via aws-sam-cli (setup.py) -types-awscrt==0.20.4 \ - --hash=sha256:10245570c7285e949362b4ae710c54bf285d64a27453d42762477bcee5cd77a3 \ - --hash=sha256:73be0a2720d6f76b924df6917d4edf4c9958f83e5c25bf7d9f0c1e9cdf836941 +types-awscrt==0.20.5 \ + --hash=sha256:61811bbf4de95248939f9276a434be93d2b95f6ccfe8aa94e56999e9778cfcc2 \ + --hash=sha256:79d5bfb01f64701b6cf442e89a37d9c4dc6dbb79a46f2f611739b2418d30ecfd # via botocore-stubs types-python-dateutil==2.8.19.20240106 \ --hash=sha256:1f8db221c3b98e6ca02ea83a58371b22c374f42ae5bbdf186db9c9a76581459f \ @@ -946,9 +946,9 @@ types-s3transfer==0.10.0 \ --hash=sha256:35e4998c25df7f8985ad69dedc8e4860e8af3b43b7615e940d53c00d413bdc69 \ --hash=sha256:44fcdf0097b924a9aab1ee4baa1179081a9559ca62a88c807e2b256893ce688f # via boto3-stubs -typing-extensions==4.9.0 \ - --hash=sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783 \ - --hash=sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd +typing-extensions==4.10.0 \ + --hash=sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475 \ + --hash=sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb # via # aws-sam-cli (setup.py) # aws-sam-translator @@ -975,9 +975,9 @@ tzlocal==5.2 \ # via # aws-sam-cli (setup.py) # dateparser -urllib3==1.26.18 \ - --hash=sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07 \ - --hash=sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0 +urllib3==2.0.7 \ + --hash=sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84 \ + --hash=sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e # via # botocore # docker diff --git a/requirements/reproducible-mac.txt b/requirements/reproducible-mac.txt index 42b12aef6f..3fd3a558f6 100644 --- a/requirements/reproducible-mac.txt +++ b/requirements/reproducible-mac.txt @@ -24,9 +24,9 @@ aws-lambda-builders==1.47.0 \ --hash=sha256:e35466c7faa603f9bd30c851be1a8e6076b93876e56ab59ff78dca5b244bdddf \ --hash=sha256:f30175975ae60f6fe301a6ca1e3e7b5ca53c7685da9a3bccc9e720a7f5168e5e # via aws-sam-cli (setup.py) -aws-sam-translator==1.85.0 \ - --hash=sha256:e41938affa128fb5bde5e1989b260bf539a96369bba3faf316ce66651351df39 \ - --hash=sha256:e8c69a4db7279421ff6c3579cd4d43395fe9b6781f50416528e984be68e25481 +aws-sam-translator==1.86.0 \ + --hash=sha256:97a44e5ac8b0d141c31f4ed35c57aa94429a0e6cef7fe989831c9a1c40455473 \ + --hash=sha256:a748dcd7886024cb7586abbbdbabe8c787c44c6547bb6602879d7bb8a6934d05 # via # aws-sam-cli (setup.py) # cfn-lint @@ -56,25 +56,25 @@ blinker==1.7.0 \ --hash=sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 \ --hash=sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182 # via flask -boto3==1.34.52 \ - --hash=sha256:66303b5f26d92afb72656ff490b22ea72dfff8bf1a29e4a0c5d5f11ec56245dd \ - --hash=sha256:898ad2123b18cae8efd85adc56ac2d1925be54592aebc237020d4f16e9a9e7a9 +boto3==1.34.58 \ + --hash=sha256:09e3d17c718bc938a76774f31bc557b20733c0f5f9135a3e7782b55f3459cbdd \ + --hash=sha256:d213a6fea9db6d537b1e65924133d8279ada79a40bc840d4930e1b64be869d4c # via # aws-sam-cli (setup.py) # aws-sam-translator -boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.52 \ - --hash=sha256:644381a404fb5884154f7dcc40bb819f0c7f37de21b7a7b493585277b51c9a5f \ - --hash=sha256:823c41059f836d6877daaa1cbd20f813c8f1a78b9fdf290bc0b853127e127ba3 +boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.58 \ + --hash=sha256:14ea85a355f984bd7dc17e39237bfc24c3a55479fbcb87f17c00269bd95a2b44 \ + --hash=sha256:f164e520361d6aa39d295ac09588a6dc6b8efbc4058ada0b796d3bfb0e6e6e98 # via aws-sam-cli (setup.py) -botocore==1.34.52 \ - --hash=sha256:05567d8aba344826060481ea309555432c96f0febe22bee7cf5a3b6d3a03cec8 \ - --hash=sha256:187da93aec3f2e87d8a31eced16fa2cb9c71fe2d69b0a797f9f7a9220f5bf7ae +botocore==1.34.58 \ + --hash=sha256:8086a6ea27d0f658505ac81e6d7314e013561469c40db9b5a4692127eb5c97cf \ + --hash=sha256:d75216952886dc513ea1b5e2979a6af08feed2f537e3fc102e4a0a2ead563a35 # via # boto3 # s3transfer -botocore-stubs==1.34.52 \ - --hash=sha256:0870e2db4ec557c21a8fc142f1f785759f263437b64c1d45f2ca16e91d612af7 \ - --hash=sha256:a51b6ca1fca9acdaa9e80412f37153690fffad7ed227743cc530809920d2a009 +botocore-stubs==1.34.58 \ + --hash=sha256:7f820ed37a11109744a8c4aeb9f0224c7114b5aaabcbd46fc6c4f60af69faa3e \ + --hash=sha256:830bf3bc6b0a7299f770c0adcbea21fda5d240080024f12ca6d80633a3ce46c4 # via boto3-stubs certifi==2024.2.2 \ --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ @@ -134,9 +134,9 @@ cffi==1.16.0 \ --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 # via cryptography -cfn-lint==0.85.2 \ - --hash=sha256:e7a0aafb9ad93dbe5db54cbefca92a94f2d173309218273ef997ecb048125d89 \ - --hash=sha256:f8a5cc55daeaaa747b8d776dcf62fe1b6bfb8cb46ae60950cbe627601facccd7 +cfn-lint==0.86.0 \ + --hash=sha256:70cefa0ab91e35698cd8c03a2f99a367d71d848da5a62123192552937652d542 \ + --hash=sha256:7216e9c10dd27af73821d0ae79b17406cd89f5dfbc25feb5d2ba756eb6e9a651 # via aws-sam-cli (setup.py) chardet==5.2.0 \ --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ @@ -299,13 +299,13 @@ idna==3.6 \ --hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \ --hash=sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f # via requests -importlib-metadata==7.0.1 \ - --hash=sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e \ - --hash=sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc +importlib-metadata==7.0.2 \ + --hash=sha256:198f568f3230878cb1b44fbd7975f87906c22336dba2e4a7f05278c281fbd792 \ + --hash=sha256:f4bc4c0c070c490abf4ce96d715f68e95923320370efb66143df00199bb6c100 # via flask -importlib-resources==6.1.2 \ - --hash=sha256:308abf8474e2dba5f867d279237cd4076482c3de7104a40b41426370e891549b \ - --hash=sha256:9a0a862501dc38b68adebc82970140c9e4209fc99601782925178f8386339938 +importlib-resources==6.1.3 \ + --hash=sha256:4c0269e3580fe2634d364b39b38b961540a7738c02cb984e98add8b4221d793d \ + --hash=sha256:56fb4525197b78544a3354ea27793952ab93f935bb4bf746b846bb1015020f2b # via # jsonschema # jsonschema-specifications @@ -433,13 +433,13 @@ mpmath==1.3.0 \ --hash=sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f \ --hash=sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c # via sympy -mypy-boto3-apigateway==1.34.50 \ - --hash=sha256:3df3cb29a38fe6e7607dde0680f3016e223b895c566ced9820da64657f9b4fad \ - --hash=sha256:43978b27d585528dc218749082b683cc060519aa4958b97d107620ddad6a383d +mypy-boto3-apigateway==1.34.56 \ + --hash=sha256:3695503bd9388b3067c1dc1dc4ec1486dcec450dbf1e9889f451120e333b92da \ + --hash=sha256:5ab15db30d730198384d6445d50cc1fec98361b85366dd092b10e9b9f4a1a2cb # via boto3-stubs -mypy-boto3-cloudformation==1.34.32 \ - --hash=sha256:49d04c090dae3fd8289738ae592cac9d6faa5169684de40c2730b425bba2a32d \ - --hash=sha256:bfe5ec405eae6dae31dc9874729eef5e668e634eae8972032f00400d17bd2c7d +mypy-boto3-cloudformation==1.34.55 \ + --hash=sha256:78c4d25ef7102bd02c8e87d32211ff60a7b474ec546e9948b46f170d341ae0a2 \ + --hash=sha256:de9f4d45d0a4e57bb5ef8b8d7a03476f8ef24ffa253d636cd824cde061227439 # via boto3-stubs mypy-boto3-ecr==1.34.0 \ --hash=sha256:3346c02c22b16068c9acc67d990e32060bf7cdaea5f3d43c50e44308fbbc3439 \ @@ -453,9 +453,9 @@ mypy-boto3-kinesis==1.34.0 \ --hash=sha256:1add81c53f6e36599e0c22e142024867759aaf2f4954bcb2baa21c284c852377 \ --hash=sha256:f404e75badd5977e9f09741b769b8888854bdd411c631344686ab889efe98741 # via boto3-stubs -mypy-boto3-lambda==1.34.46 \ - --hash=sha256:275297944c5e36a170b37ce70229f21db6dd3561606799f18d96e36ac5df6876 \ - --hash=sha256:a12232002e04ee06b413b47068bc6bb085aeaa3693d28e9bf0efd76fa6953a0b +mypy-boto3-lambda==1.34.58 \ + --hash=sha256:6ab1b9611ff396e9310ad77f02994a6e03d40c8a0eea51085e355b4fd2a0cbc9 \ + --hash=sha256:903822c74bd1b34748eb2d72eab0f132fbc3b392c8041aa8fe4d9552a44b0c65 # via boto3-stubs mypy-boto3-s3==1.34.14 \ --hash=sha256:71c39ab0623cdb442d225b71c1783f6a513cff4c4a13505a2efbb2e3aff2e965 \ @@ -511,9 +511,9 @@ pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pydantic==2.6.2 \ - --hash=sha256:37a5432e54b12fecaa1049c5195f3d860a10e01bdfd24f1840ef14bd0d3aeab3 \ - --hash=sha256:a09be1c3d28f3abe37f8a78af58284b236a92ce520105ddc91a6d29ea1176ba7 +pydantic==2.6.3 \ + --hash=sha256:72c6034df47f46ccdf81869fddb81aade68056003900a8724a4f160700016a2a \ + --hash=sha256:e07805c4c7f5c6826e33a1d4c9d47950d7eaf34868e2690f8594d2e30241f11f # via aws-sam-translator pydantic-core==2.16.3 \ --hash=sha256:00ee1c97b5364b84cb0bd82e9bbf645d5e2871fb8c58059d158412fee2d33d8a \ @@ -604,9 +604,9 @@ pyopenssl==24.0.0 \ --hash=sha256:6aa33039a93fffa4563e655b61d11364d01264be8ccb49906101e02a334530bf \ --hash=sha256:ba07553fb6fd6a7a2259adb9b84e12302a9a8a75c44046e8bb5d3e5ee887e3c3 # via aws-sam-cli (setup.py) -python-dateutil==2.8.2 \ - --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ - --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 +python-dateutil==2.9.0.post0 \ + --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ + --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 # via # arrow # botocore @@ -775,9 +775,9 @@ requests==2.31.0 \ # aws-sam-cli (setup.py) # cookiecutter # docker -rich==13.7.0 \ - --hash=sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa \ - --hash=sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235 +rich==13.7.1 \ + --hash=sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222 \ + --hash=sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432 # via # aws-sam-cli (setup.py) # cookiecutter @@ -962,13 +962,13 @@ text-unidecode==1.3 \ --hash=sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8 \ --hash=sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93 # via python-slugify -tomlkit==0.12.3 \ - --hash=sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4 \ - --hash=sha256:b0a645a9156dc7cb5d3a1f0d4bab66db287fcb8e0430bdd4664a095ea16414ba +tomlkit==0.12.4 \ + --hash=sha256:5cd82d48a3dd89dee1f9d64420aa20ae65cfbd00668d6f094d7578a78efbb77b \ + --hash=sha256:7ca1cfc12232806517a8515047ba66a19369e71edf2439d0f5824f91032b6cc3 # via aws-sam-cli (setup.py) -types-awscrt==0.20.4 \ - --hash=sha256:10245570c7285e949362b4ae710c54bf285d64a27453d42762477bcee5cd77a3 \ - --hash=sha256:73be0a2720d6f76b924df6917d4edf4c9958f83e5c25bf7d9f0c1e9cdf836941 +types-awscrt==0.20.5 \ + --hash=sha256:61811bbf4de95248939f9276a434be93d2b95f6ccfe8aa94e56999e9778cfcc2 \ + --hash=sha256:79d5bfb01f64701b6cf442e89a37d9c4dc6dbb79a46f2f611739b2418d30ecfd # via botocore-stubs types-python-dateutil==2.8.19.20240106 \ --hash=sha256:1f8db221c3b98e6ca02ea83a58371b22c374f42ae5bbdf186db9c9a76581459f \ @@ -978,9 +978,9 @@ types-s3transfer==0.10.0 \ --hash=sha256:35e4998c25df7f8985ad69dedc8e4860e8af3b43b7615e940d53c00d413bdc69 \ --hash=sha256:44fcdf0097b924a9aab1ee4baa1179081a9559ca62a88c807e2b256893ce688f # via boto3-stubs -typing-extensions==4.9.0 \ - --hash=sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783 \ - --hash=sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd +typing-extensions==4.10.0 \ + --hash=sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475 \ + --hash=sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb # via # annotated-types # aws-sam-cli (setup.py) diff --git a/requirements/reproducible-win.txt b/requirements/reproducible-win.txt index 8feec9b08e..a1b7d971f9 100644 --- a/requirements/reproducible-win.txt +++ b/requirements/reproducible-win.txt @@ -24,9 +24,9 @@ aws-lambda-builders==1.47.0 \ --hash=sha256:e35466c7faa603f9bd30c851be1a8e6076b93876e56ab59ff78dca5b244bdddf \ --hash=sha256:f30175975ae60f6fe301a6ca1e3e7b5ca53c7685da9a3bccc9e720a7f5168e5e # via aws-sam-cli (setup.py) -aws-sam-translator==1.85.0 \ - --hash=sha256:e41938affa128fb5bde5e1989b260bf539a96369bba3faf316ce66651351df39 \ - --hash=sha256:e8c69a4db7279421ff6c3579cd4d43395fe9b6781f50416528e984be68e25481 +aws-sam-translator==1.86.0 \ + --hash=sha256:97a44e5ac8b0d141c31f4ed35c57aa94429a0e6cef7fe989831c9a1c40455473 \ + --hash=sha256:a748dcd7886024cb7586abbbdbabe8c787c44c6547bb6602879d7bb8a6934d05 # via # aws-sam-cli (setup.py) # cfn-lint @@ -38,25 +38,25 @@ blinker==1.7.0 \ --hash=sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 \ --hash=sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182 # via flask -boto3==1.34.52 \ - --hash=sha256:66303b5f26d92afb72656ff490b22ea72dfff8bf1a29e4a0c5d5f11ec56245dd \ - --hash=sha256:898ad2123b18cae8efd85adc56ac2d1925be54592aebc237020d4f16e9a9e7a9 +boto3==1.34.58 \ + --hash=sha256:09e3d17c718bc938a76774f31bc557b20733c0f5f9135a3e7782b55f3459cbdd \ + --hash=sha256:d213a6fea9db6d537b1e65924133d8279ada79a40bc840d4930e1b64be869d4c # via # aws-sam-cli (setup.py) # aws-sam-translator -boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.52 \ - --hash=sha256:644381a404fb5884154f7dcc40bb819f0c7f37de21b7a7b493585277b51c9a5f \ - --hash=sha256:823c41059f836d6877daaa1cbd20f813c8f1a78b9fdf290bc0b853127e127ba3 +boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.58 \ + --hash=sha256:14ea85a355f984bd7dc17e39237bfc24c3a55479fbcb87f17c00269bd95a2b44 \ + --hash=sha256:f164e520361d6aa39d295ac09588a6dc6b8efbc4058ada0b796d3bfb0e6e6e98 # via aws-sam-cli (setup.py) -botocore==1.34.52 \ - --hash=sha256:05567d8aba344826060481ea309555432c96f0febe22bee7cf5a3b6d3a03cec8 \ - --hash=sha256:187da93aec3f2e87d8a31eced16fa2cb9c71fe2d69b0a797f9f7a9220f5bf7ae +botocore==1.34.58 \ + --hash=sha256:8086a6ea27d0f658505ac81e6d7314e013561469c40db9b5a4692127eb5c97cf \ + --hash=sha256:d75216952886dc513ea1b5e2979a6af08feed2f537e3fc102e4a0a2ead563a35 # via # boto3 # s3transfer -botocore-stubs==1.34.52 \ - --hash=sha256:0870e2db4ec557c21a8fc142f1f785759f263437b64c1d45f2ca16e91d612af7 \ - --hash=sha256:a51b6ca1fca9acdaa9e80412f37153690fffad7ed227743cc530809920d2a009 +botocore-stubs==1.34.58 \ + --hash=sha256:7f820ed37a11109744a8c4aeb9f0224c7114b5aaabcbd46fc6c4f60af69faa3e \ + --hash=sha256:830bf3bc6b0a7299f770c0adcbea21fda5d240080024f12ca6d80633a3ce46c4 # via boto3-stubs certifi==2024.2.2 \ --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ @@ -116,9 +116,9 @@ cffi==1.16.0 \ --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 # via cryptography -cfn-lint==0.85.2 \ - --hash=sha256:e7a0aafb9ad93dbe5db54cbefca92a94f2d173309218273ef997ecb048125d89 \ - --hash=sha256:f8a5cc55daeaaa747b8d776dcf62fe1b6bfb8cb46ae60950cbe627601facccd7 +cfn-lint==0.86.0 \ + --hash=sha256:70cefa0ab91e35698cd8c03a2f99a367d71d848da5a62123192552937652d542 \ + --hash=sha256:7216e9c10dd27af73821d0ae79b17406cd89f5dfbc25feb5d2ba756eb6e9a651 # via aws-sam-cli (setup.py) chardet==5.2.0 \ --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ @@ -409,13 +409,13 @@ mpmath==1.3.0 \ --hash=sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f \ --hash=sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c # via sympy -mypy-boto3-apigateway==1.34.50 \ - --hash=sha256:3df3cb29a38fe6e7607dde0680f3016e223b895c566ced9820da64657f9b4fad \ - --hash=sha256:43978b27d585528dc218749082b683cc060519aa4958b97d107620ddad6a383d +mypy-boto3-apigateway==1.34.56 \ + --hash=sha256:3695503bd9388b3067c1dc1dc4ec1486dcec450dbf1e9889f451120e333b92da \ + --hash=sha256:5ab15db30d730198384d6445d50cc1fec98361b85366dd092b10e9b9f4a1a2cb # via boto3-stubs -mypy-boto3-cloudformation==1.34.32 \ - --hash=sha256:49d04c090dae3fd8289738ae592cac9d6faa5169684de40c2730b425bba2a32d \ - --hash=sha256:bfe5ec405eae6dae31dc9874729eef5e668e634eae8972032f00400d17bd2c7d +mypy-boto3-cloudformation==1.34.55 \ + --hash=sha256:78c4d25ef7102bd02c8e87d32211ff60a7b474ec546e9948b46f170d341ae0a2 \ + --hash=sha256:de9f4d45d0a4e57bb5ef8b8d7a03476f8ef24ffa253d636cd824cde061227439 # via boto3-stubs mypy-boto3-ecr==1.34.0 \ --hash=sha256:3346c02c22b16068c9acc67d990e32060bf7cdaea5f3d43c50e44308fbbc3439 \ @@ -429,9 +429,9 @@ mypy-boto3-kinesis==1.34.0 \ --hash=sha256:1add81c53f6e36599e0c22e142024867759aaf2f4954bcb2baa21c284c852377 \ --hash=sha256:f404e75badd5977e9f09741b769b8888854bdd411c631344686ab889efe98741 # via boto3-stubs -mypy-boto3-lambda==1.34.46 \ - --hash=sha256:275297944c5e36a170b37ce70229f21db6dd3561606799f18d96e36ac5df6876 \ - --hash=sha256:a12232002e04ee06b413b47068bc6bb085aeaa3693d28e9bf0efd76fa6953a0b +mypy-boto3-lambda==1.34.58 \ + --hash=sha256:6ab1b9611ff396e9310ad77f02994a6e03d40c8a0eea51085e355b4fd2a0cbc9 \ + --hash=sha256:903822c74bd1b34748eb2d72eab0f132fbc3b392c8041aa8fe4d9552a44b0c65 # via boto3-stubs mypy-boto3-s3==1.34.14 \ --hash=sha256:71c39ab0623cdb442d225b71c1783f6a513cff4c4a13505a2efbb2e3aff2e965 \ @@ -483,9 +483,9 @@ pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pydantic==2.6.2 \ - --hash=sha256:37a5432e54b12fecaa1049c5195f3d860a10e01bdfd24f1840ef14bd0d3aeab3 \ - --hash=sha256:a09be1c3d28f3abe37f8a78af58284b236a92ce520105ddc91a6d29ea1176ba7 +pydantic==2.6.3 \ + --hash=sha256:72c6034df47f46ccdf81869fddb81aade68056003900a8724a4f160700016a2a \ + --hash=sha256:e07805c4c7f5c6826e33a1d4c9d47950d7eaf34868e2690f8594d2e30241f11f # via aws-sam-translator pydantic-core==2.16.3 \ --hash=sha256:00ee1c97b5364b84cb0bd82e9bbf645d5e2871fb8c58059d158412fee2d33d8a \ @@ -576,9 +576,9 @@ pyopenssl==24.0.0 \ --hash=sha256:6aa33039a93fffa4563e655b61d11364d01264be8ccb49906101e02a334530bf \ --hash=sha256:ba07553fb6fd6a7a2259adb9b84e12302a9a8a75c44046e8bb5d3e5ee887e3c3 # via aws-sam-cli (setup.py) -python-dateutil==2.8.2 \ - --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ - --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 +python-dateutil==2.9.0.post0 \ + --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ + --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 # via # arrow # botocore @@ -763,9 +763,9 @@ requests==2.31.0 \ # aws-sam-cli (setup.py) # cookiecutter # docker -rich==13.7.0 \ - --hash=sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa \ - --hash=sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235 +rich==13.7.1 \ + --hash=sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222 \ + --hash=sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432 # via # aws-sam-cli (setup.py) # cookiecutter @@ -950,13 +950,13 @@ text-unidecode==1.3 \ --hash=sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8 \ --hash=sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93 # via python-slugify -tomlkit==0.12.3 \ - --hash=sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4 \ - --hash=sha256:b0a645a9156dc7cb5d3a1f0d4bab66db287fcb8e0430bdd4664a095ea16414ba +tomlkit==0.12.4 \ + --hash=sha256:5cd82d48a3dd89dee1f9d64420aa20ae65cfbd00668d6f094d7578a78efbb77b \ + --hash=sha256:7ca1cfc12232806517a8515047ba66a19369e71edf2439d0f5824f91032b6cc3 # via aws-sam-cli (setup.py) -types-awscrt==0.20.4 \ - --hash=sha256:10245570c7285e949362b4ae710c54bf285d64a27453d42762477bcee5cd77a3 \ - --hash=sha256:73be0a2720d6f76b924df6917d4edf4c9958f83e5c25bf7d9f0c1e9cdf836941 +types-awscrt==0.20.5 \ + --hash=sha256:61811bbf4de95248939f9276a434be93d2b95f6ccfe8aa94e56999e9778cfcc2 \ + --hash=sha256:79d5bfb01f64701b6cf442e89a37d9c4dc6dbb79a46f2f611739b2418d30ecfd # via botocore-stubs types-python-dateutil==2.8.19.20240106 \ --hash=sha256:1f8db221c3b98e6ca02ea83a58371b22c374f42ae5bbdf186db9c9a76581459f \ @@ -966,9 +966,9 @@ types-s3transfer==0.10.0 \ --hash=sha256:35e4998c25df7f8985ad69dedc8e4860e8af3b43b7615e940d53c00d413bdc69 \ --hash=sha256:44fcdf0097b924a9aab1ee4baa1179081a9559ca62a88c807e2b256893ce688f # via boto3-stubs -typing-extensions==4.9.0 \ - --hash=sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783 \ - --hash=sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd +typing-extensions==4.10.0 \ + --hash=sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475 \ + --hash=sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb # via # aws-sam-cli (setup.py) # aws-sam-translator @@ -999,9 +999,9 @@ tzlocal==5.2 \ # via # aws-sam-cli (setup.py) # dateparser -urllib3==1.26.18 \ - --hash=sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07 \ - --hash=sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0 +urllib3==2.0.7 \ + --hash=sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84 \ + --hash=sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e # via # botocore # docker diff --git a/samcli/__init__.py b/samcli/__init__.py index c6423bbc51..37c5ab641b 100644 --- a/samcli/__init__.py +++ b/samcli/__init__.py @@ -2,4 +2,4 @@ SAM CLI version """ -__version__ = "1.111.0" +__version__ = "1.112.0" diff --git a/samcli/commands/build/build_context.py b/samcli/commands/build/build_context.py index c976f13532..77cd372b4e 100644 --- a/samcli/commands/build/build_context.py +++ b/samcli/commands/build/build_context.py @@ -6,7 +6,7 @@ import os import pathlib import shutil -from typing import Dict, Optional, List, Tuple +from typing import Dict, List, Optional, Tuple import click @@ -17,14 +17,14 @@ move_template, ) from samcli.commands.build.exceptions import InvalidBuildDirException, MissingBuildMethodException -from samcli.commands.build.utils import prompt_user_to_enable_mount_with_write_if_needed, MountMode +from samcli.commands.build.utils import MountMode, prompt_user_to_enable_mount_with_write_if_needed from samcli.commands.exceptions import UserException from samcli.lib.bootstrap.nested_stack.nested_stack_manager import NestedStackManager from samcli.lib.build.app_builder import ( ApplicationBuilder, + ApplicationBuildResult, BuildError, UnsupportedBuilderLibraryVersionError, - ApplicationBuildResult, ) from samcli.lib.build.build_graph import DEFAULT_DEPENDENCIES_DIR from samcli.lib.build.bundler import EsbuildBundlerManager @@ -34,12 +34,12 @@ ) from samcli.lib.build.workflow_config import UnsupportedRuntimeException from samcli.lib.intrinsic_resolver.intrinsics_symbol_table import IntrinsicsSymbolTable -from samcli.lib.providers.provider import ResourcesToBuildCollector, Stack, LayerVersion +from samcli.lib.providers.provider import LayerVersion, ResourcesToBuildCollector, Stack from samcli.lib.providers.sam_api_provider import SamApiProvider from samcli.lib.providers.sam_function_provider import SamFunctionProvider from samcli.lib.providers.sam_layer_provider import SamLayerProvider from samcli.lib.providers.sam_stack_provider import SamLocalStackProvider -from samcli.lib.telemetry.event import EventTracker, UsedFeature, EventName +from samcli.lib.telemetry.event import EventName, EventTracker, UsedFeature from samcli.lib.utils.osutils import BUILD_DIR_PERMISSIONS from samcli.local.docker.manager import ContainerManager from samcli.local.lambdafn.exceptions import ( @@ -577,8 +577,8 @@ def collect_build_resources(self, resource_identifier: str) -> ResourcesToBuildC if not result.functions and not result.layers: # Collect all functions and layers that are not inline - all_resources = [f.name for f in self.function_provider.get_all() if not f.inlinecode] - all_resources.extend([l.name for l in self.layer_provider.get_all()]) + all_resources = [func.name for func in self.function_provider.get_all() if not func.inlinecode] + all_resources.extend([layer.name for layer in self.layer_provider.get_all()]) available_resource_message = ( f"{resource_identifier} not found. Possible options in your " f"template: {all_resources}" @@ -599,16 +599,16 @@ def collect_all_build_resources(self) -> ResourcesToBuildCollector: excludes: Tuple[str, ...] = self._exclude if self._exclude is not None else () result.add_functions( [ - f - for f in self.function_provider.get_all() - if (f.name not in excludes) and f.function_build_info.is_buildable() + func + for func in self.function_provider.get_all() + if (func.name not in excludes) and func.function_build_info.is_buildable() ] ) result.add_layers( [ - l - for l in self.layer_provider.get_all() - if (l.name not in excludes) and BuildContext.is_layer_buildable(l) + layer + for layer in self.layer_provider.get_all() + if (layer.name not in excludes) and BuildContext.is_layer_buildable(layer) ] ) return result @@ -639,7 +639,7 @@ def _collect_single_function_and_dependent_layers( return resource_collector.add_function(function) - resource_collector.add_layers([l for l in function.layers if BuildContext.is_layer_buildable(l)]) + resource_collector.add_layers([layer for layer in function.layers if BuildContext.is_layer_buildable(layer)]) def _collect_single_buildable_layer( self, resource_identifier: str, resource_collector: ResourcesToBuildCollector diff --git a/samcli/commands/build/command.py b/samcli/commands/build/command.py index e2713e9e54..7b467b65a4 100644 --- a/samcli/commands/build/command.py +++ b/samcli/commands/build/command.py @@ -2,37 +2,38 @@ CLI command for "build" command """ -import os import logging -from typing import List, Optional, Dict, Tuple +import os +from typing import Dict, List, Optional, Tuple + import click +from samcli.cli.cli_config_file import ConfigProvider, configuration_option, save_params_option from samcli.cli.context import Context +from samcli.cli.main import aws_creds_options, pass_context, print_cmdline_args +from samcli.cli.main import common_options as cli_framework_options +from samcli.commands._utils.option_value_processor import process_env_var, process_image_options from samcli.commands._utils.options import ( - build_in_source_option, - skip_prepare_infra_option, - template_option_without_build, - docker_common_options, - parameter_override_option, + base_dir_option, build_dir_option, + build_image_option, + build_in_source_option, cache_dir_option, - base_dir_option, - manifest_option, cached_option, - use_container_build_option, - build_image_option, + docker_common_options, hook_name_click_option, - terraform_plan_file_option, + manifest_option, + parameter_override_option, + skip_prepare_infra_option, + template_option_without_build, terraform_project_root_path_option, + use_container_build_option, ) -from samcli.commands._utils.option_value_processor import process_env_var, process_image_options -from samcli.cli.main import pass_context, common_options as cli_framework_options, aws_creds_options, print_cmdline_args +from samcli.commands.build.click_container import ContainerOptions from samcli.commands.build.core.command import BuildCommand +from samcli.commands.build.utils import MountMode from samcli.lib.telemetry.metric import track_command -from samcli.cli.cli_config_file import configuration_option, ConfigProvider, save_params_option from samcli.lib.utils.version_checker import check_newer_version -from samcli.commands.build.click_container import ContainerOptions -from samcli.commands.build.utils import MountMode LOG = logging.getLogger(__name__) diff --git a/samcli/commands/build/core/options.py b/samcli/commands/build/core/options.py index 2da97d83ed..dbd36231c9 100644 --- a/samcli/commands/build/core/options.py +++ b/samcli/commands/build/core/options.py @@ -4,8 +4,8 @@ from typing import Dict, List -from samcli.cli.row_modifiers import RowDefinition from samcli.cli.core.options import ALL_COMMON_OPTIONS, SAVE_PARAMS_OPTIONS, add_common_options_info +from samcli.cli.row_modifiers import RowDefinition # NOTE(sriram-mv): The ordering of the option lists matter, they are the order # in which options will be displayed. diff --git a/samcli/lib/build/app_builder.py b/samcli/lib/build/app_builder.py index 6c8b0f02f1..d4fa45ac27 100644 --- a/samcli/lib/build/app_builder.py +++ b/samcli/lib/build/app_builder.py @@ -2,12 +2,13 @@ Builds the application """ -import os import io import json import logging +import os import pathlib -from typing import List, Optional, Dict, cast, NamedTuple +from typing import Dict, List, NamedTuple, Optional, cast + import docker import docker.errors from aws_lambda_builders import ( @@ -15,16 +16,40 @@ ) from aws_lambda_builders.builder import LambdaBuilder from aws_lambda_builders.exceptions import LambdaBuilderError -from samcli.lib.constants import DOCKER_MIN_API_VERSION -from samcli.lib.build.build_graph import FunctionBuildDefinition, LayerBuildDefinition, BuildGraph + +from samcli.commands._utils.experimental import get_enabled_experimental_flags +from samcli.lib.build.build_graph import BuildGraph, FunctionBuildDefinition, LayerBuildDefinition from samcli.lib.build.build_strategy import ( - DefaultBuildStrategy, + BuildStrategy, CachedOrIncrementalBuildStrategyWrapper, + DefaultBuildStrategy, ParallelBuildStrategy, - BuildStrategy, ) -from samcli.lib.build.constants import DEPRECATED_RUNTIMES, BUILD_PROPERTIES +from samcli.lib.build.constants import BUILD_PROPERTIES, DEPRECATED_RUNTIMES +from samcli.lib.build.exceptions import ( + BuildError, + BuildInsideContainerError, + DockerBuildFailed, + DockerConnectionError, + DockerfileOutSideOfContext, + UnsupportedBuilderLibraryVersionError, +) from samcli.lib.build.utils import _make_env_vars +from samcli.lib.build.workflow_config import ( + CONFIG, + UnsupportedRuntimeException, + get_layer_subfolder, + get_workflow_config, + supports_specified_workflow, +) +from samcli.lib.constants import DOCKER_MIN_API_VERSION +from samcli.lib.docker.log_streamer import LogStreamer, LogStreamError +from samcli.lib.providers.provider import ResourcesToBuildCollector, Stack, get_full_path +from samcli.lib.samlib.resource_metadata_normalizer import ResourceMetadataNormalizer +from samcli.lib.utils import osutils +from samcli.lib.utils.colors import Colored, Colors +from samcli.lib.utils.lambda_builders import patch_runtime +from samcli.lib.utils.packagetype import IMAGE, ZIP from samcli.lib.utils.path_utils import convert_path_to_unix_path from samcli.lib.utils.resources import ( AWS_CLOUDFORMATION_STACK, @@ -34,38 +59,18 @@ AWS_SERVERLESS_FUNCTION, AWS_SERVERLESS_LAYERVERSION, ) -from samcli.lib.samlib.resource_metadata_normalizer import ResourceMetadataNormalizer -from samcli.lib.docker.log_streamer import LogStreamer, LogStreamError -from samcli.lib.providers.provider import ResourcesToBuildCollector, get_full_path, Stack -from samcli.lib.utils.colors import Colored, Colors -from samcli.lib.utils import osutils -from samcli.lib.utils.lambda_builders import patch_runtime -from samcli.lib.utils.packagetype import IMAGE, ZIP from samcli.lib.utils.stream_writer import StreamWriter -from samcli.local.docker.exceptions import ContainerNotStartableException from samcli.local.docker.lambda_build_container import LambdaBuildContainer -from samcli.local.docker.utils import is_docker_reachable, get_docker_platform from samcli.local.docker.manager import ContainerManager, DockerImagePullFailedException -from samcli.commands._utils.experimental import get_enabled_experimental_flags -from samcli.lib.build.exceptions import ( - DockerConnectionError, - DockerfileOutSideOfContext, - DockerBuildFailed, - BuildError, - BuildInsideContainerError, - UnsupportedBuilderLibraryVersionError, -) -from samcli.lib.build.workflow_config import ( - get_workflow_config, - supports_specified_workflow, - get_layer_subfolder, - CONFIG, - UnsupportedRuntimeException, -) +from samcli.local.docker.utils import get_docker_platform, is_docker_reachable LOG = logging.getLogger(__name__) FIRST_COMPATIBLE_RUNTIME_INDEX = 0 +HTTP_400 = 400 +HTTP_500 = 500 +HTTP_505 = 505 +JSON_RPC_CODE = -32601 class ApplicationBuildResult(NamedTuple): @@ -988,11 +993,11 @@ def _parse_builder_response(stdout_data: str, image_name: str) -> Dict: err_code = error.get("code") msg = error.get("message") - if 400 <= err_code < 500: + if HTTP_400 <= err_code < HTTP_500: # Like HTTP 4xx - customer error raise BuildInsideContainerError(msg) - if err_code == 505: + if err_code == HTTP_505: # Like HTTP 505 error code: Version of the protocol is not supported # In this case, this error means that the Builder Library within the container is # not compatible with the version of protocol expected SAM CLI installation supports. @@ -1000,7 +1005,7 @@ def _parse_builder_response(stdout_data: str, image_name: str) -> Dict: # https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/505 raise UnsupportedBuilderLibraryVersionError(image_name, msg) - if err_code == -32601: + if err_code == JSON_RPC_CODE: # Default JSON Rpc Code for Method Unavailable https://www.jsonrpc.org/specification # This can happen if customers are using an incompatible version of builder library within the # container diff --git a/samcli/lib/build/build_graph.py b/samcli/lib/build/build_graph.py index 2674f80c76..a8121dd3dc 100644 --- a/samcli/lib/build/build_graph.py +++ b/samcli/lib/build/build_graph.py @@ -9,22 +9,21 @@ from abc import abstractmethod from copy import deepcopy from pathlib import Path -from typing import Sequence, Tuple, List, Any, Optional, Dict, cast, NamedTuple +from typing import Any, Dict, List, NamedTuple, Optional, Sequence, Tuple, cast from uuid import uuid4 import tomlkit from tomlkit.toml_document import TOMLDocument -from samcli.commands._utils.experimental import is_experimental_enabled, ExperimentalFlag +from samcli.commands._utils.experimental import ExperimentalFlag, is_experimental_enabled from samcli.lib.build.exceptions import InvalidBuildGraphException from samcli.lib.providers.provider import Function, LayerVersion from samcli.lib.samlib.resource_metadata_normalizer import ( - SAM_RESOURCE_ID_KEY, SAM_IS_NORMALIZED, + SAM_RESOURCE_ID_KEY, ) -from samcli.lib.utils.packagetype import ZIP from samcli.lib.utils.architecture import X86_64 - +from samcli.lib.utils.packagetype import ZIP LOG = logging.getLogger(__name__) diff --git a/samcli/lib/build/build_strategy.py b/samcli/lib/build/build_strategy.py index 5fae26e79d..b1317e9311 100644 --- a/samcli/lib/build/build_strategy.py +++ b/samcli/lib/build/build_strategy.py @@ -7,27 +7,26 @@ import os.path import pathlib import shutil -from abc import abstractmethod, ABC +from abc import ABC, abstractmethod from copy import deepcopy -from typing import Callable, Dict, List, Any, Optional, cast, Set, Tuple, TypeVar +from typing import Any, Callable, Dict, List, Optional, Set, Tuple, TypeVar, cast -from samcli.commands._utils.experimental import is_experimental_enabled, ExperimentalFlag -from samcli.lib.utils import osutils -from samcli.lib.utils.async_utils import AsyncContext -from samcli.lib.utils.hash import dir_checksum -from samcli.lib.utils.packagetype import ZIP, IMAGE -from samcli.lib.build.dependency_hash_generator import DependencyHashGenerator +from samcli.commands._utils.experimental import ExperimentalFlag, is_experimental_enabled from samcli.lib.build.build_graph import ( + DEFAULT_DEPENDENCIES_DIR, + AbstractBuildDefinition, BuildGraph, FunctionBuildDefinition, LayerBuildDefinition, - AbstractBuildDefinition, - DEFAULT_DEPENDENCIES_DIR, ) +from samcli.lib.build.dependency_hash_generator import DependencyHashGenerator from samcli.lib.build.exceptions import MissingBuildMethodException from samcli.lib.build.utils import warn_on_invalid_architecture - -from samcli.lib.utils.architecture import X86_64, ARM64 +from samcli.lib.utils import osutils +from samcli.lib.utils.architecture import X86_64 +from samcli.lib.utils.async_utils import AsyncContext +from samcli.lib.utils.hash import dir_checksum +from samcli.lib.utils.packagetype import IMAGE, ZIP LOG = logging.getLogger(__name__) diff --git a/samcli/lib/build/bundler.py b/samcli/lib/build/bundler.py index 797171391f..4b9ea3dbd7 100644 --- a/samcli/lib/build/bundler.py +++ b/samcli/lib/build/bundler.py @@ -4,10 +4,9 @@ import logging from copy import deepcopy -from pathlib import Path, PosixPath +from pathlib import Path from typing import Dict, Optional -from samcli.commands.local.lib.exceptions import InvalidHandlerPathError from samcli.lib.providers.provider import Stack from samcli.lib.providers.sam_function_provider import SamFunctionProvider diff --git a/samcli/lib/build/dependency_hash_generator.py b/samcli/lib/build/dependency_hash_generator.py index 635618f91d..fb95f2117d 100644 --- a/samcli/lib/build/dependency_hash_generator.py +++ b/samcli/lib/build/dependency_hash_generator.py @@ -1,7 +1,6 @@ """Utility Class for Getting Function or Layer Manifest Dependency Hashes""" import pathlib - from typing import Any, Optional from samcli.lib.build.workflow_config import get_workflow_config diff --git a/samcli/lib/build/utils.py b/samcli/lib/build/utils.py index 45ef2c4672..f0e399e524 100644 --- a/samcli/lib/build/utils.py +++ b/samcli/lib/build/utils.py @@ -3,12 +3,12 @@ """ import logging -from typing import Union, Dict, Optional +from typing import Dict, Optional, Union from samcli.commands.local.lib.exceptions import OverridesNotWellDefinedError -from samcli.lib.providers.provider import Function, LayerVersion from samcli.lib.build.build_graph import LayerBuildDefinition -from samcli.lib.utils.architecture import X86_64, ARM64 +from samcli.lib.providers.provider import Function, LayerVersion +from samcli.lib.utils.architecture import ARM64, X86_64 LOG = logging.getLogger(__name__) diff --git a/samcli/lib/build/workflow_config.py b/samcli/lib/build/workflow_config.py index d28c7fea97..d48adbac7c 100644 --- a/samcli/lib/build/workflow_config.py +++ b/samcli/lib/build/workflow_config.py @@ -2,22 +2,22 @@ Contains Builder Workflow Configs for different Runtimes """ -import os import logging -from typing import Dict, List, Optional, Tuple, Union, cast +import os +from typing import Dict, List, Optional, Union, cast from samcli.lib.build.workflows import ( CONFIG, - PYTHON_PIP_CONFIG, - NODEJS_NPM_CONFIG, - RUBY_BUNDLER_CONFIG, + DOTNET_CLIPACKAGE_CONFIG, + GO_MOD_CONFIG, JAVA_GRADLE_CONFIG, JAVA_KOTLIN_GRADLE_CONFIG, JAVA_MAVEN_CONFIG, - DOTNET_CLIPACKAGE_CONFIG, - GO_MOD_CONFIG, - PROVIDED_MAKE_CONFIG, + NODEJS_NPM_CONFIG, NODEJS_NPM_ESBUILD_CONFIG, + PROVIDED_MAKE_CONFIG, + PYTHON_PIP_CONFIG, + RUBY_BUNDLER_CONFIG, RUST_CARGO_LAMBDA_CONFIG, ) from samcli.lib.telemetry.event import EventTracker diff --git a/samcli/lib/deploy/deployer.py b/samcli/lib/deploy/deployer.py index effe608001..c1786f3c99 100644 --- a/samcli/lib/deploy/deployer.py +++ b/samcli/lib/deploy/deployer.py @@ -421,8 +421,14 @@ def describe_stack_events( for new_event in new_events: row_color = self.deploy_color.get_stack_events_status_color(status=new_event["ResourceStatus"]) pprint_columns( + # Print the detailed status beside the status if it is present + # E.g. CREATE_IN_PROGRESS - CONFIGURATION_COMPLETE columns=[ - new_event["ResourceStatus"], + ( + (new_event["ResourceStatus"] + " - " + new_event["ResourceDetailedStatus"]) + if "ResourceDetailedStatus" in new_event + else new_event["ResourceStatus"] + ), new_event["ResourceType"], new_event["LogicalResourceId"], new_event.get("ResourceStatusReason", "-"), diff --git a/tests/unit/lib/deploy/test_deployer.py b/tests/unit/lib/deploy/test_deployer.py index ae505ff546..d96eb08a18 100644 --- a/tests/unit/lib/deploy/test_deployer.py +++ b/tests/unit/lib/deploy/test_deployer.py @@ -1419,3 +1419,64 @@ def test_rollback_wait_timeout(self, time_mock, log_mock): self.deployer._rollback_wait("test") self.assertEqual(log_mock.call_count, 1) + + @patch("samcli.lib.deploy.deployer.pprint_columns") + def test_show_stabilizing_status(self, patched_pprint_columns): + start_timestamp = datetime(2022, 1, 1, 16, 42, 0, 0, timezone.utc) + + self.deployer._client.get_paginator = MagicMock( + return_value=MockPaginator( + # describe_stack_events is in reverse chronological order + [ + { + "StackEvents": [ + { + "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack-name/...", + "EventId": "1", + "StackName": "my-stack-name", + "LogicalResourceId": "my-stack-name", + "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack-name/...", + "ResourceType": "AWS::CloudFormation::Stack", + "Timestamp": start_timestamp + timedelta(seconds=3), + "ResourceStatus": "CREATE_COMPLETE", + }, + { + "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack-name/...", + "EventId": "2", + "StackName": "my-stack-name", + "LogicalResourceId": "mybucket", + "PhysicalResourceId": "arn:aws:cloudformation:region:accountId:stack/test/uuid", + "ResourceType": "AWS::S3::Bucket", + "Timestamp": start_timestamp + timedelta(seconds=2), + "ResourceStatus": "CREATE_IN_PROGRESS", + "ResourceDetailedStatus": "CONFIGURATION_COMPLETE", + }, + { + "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack-name/...", + "EventId": "3", + "StackName": "my-stack-name", + "LogicalResourceId": "mybucket", + "PhysicalResourceId": "arn:aws:cloudformation:region:accountId:stack/test/uuid", + "ResourceType": "AWS::S3::Bucket", + "Timestamp": start_timestamp + timedelta(seconds=1), + "ResourceStatus": "CREATE_IN_PROGRESS", + }, + ] + }, + ] + ) + ) + self.deployer.describe_stack_events("test", utc_to_timestamp(start_timestamp)) + self.assertEqual(patched_pprint_columns.call_count, 3) + self.assertListSubset( + ["CREATE_IN_PROGRESS", "AWS::S3::Bucket", "mybucket"], + patched_pprint_columns.call_args_list[0][1]["columns"], + ) + self.assertListSubset( + ["CREATE_IN_PROGRESS - CONFIGURATION_COMPLETE", "AWS::S3::Bucket", "mybucket"], + patched_pprint_columns.call_args_list[1][1]["columns"], + ) + self.assertListSubset( + ["CREATE_COMPLETE", "AWS::CloudFormation::Stack", "my-stack-name"], + patched_pprint_columns.call_args_list[2][1]["columns"], + )