Skip to content

Commit

Permalink
feat: JSON schema support for samconfig files (#5621)
Browse files Browse the repository at this point in the history
* chore: Update feature branch (#5464)

* chore: use amazon ecr credential helper in windows appveyor (#5446)

* chore: bump version to 1.90.0 (#5448)

* fix: Handler path mapping for layer-wrapped esbuild functions (#5450)

* fix: Layer wrapping esbuild function handlers

* Remove unused import

* Use nodejs18 in tests

* fix: fix macos reproducable task and gh actions (#5455)

* feat(sync): support build-image option (#5441)

* feat(sync): support build-image option

* chore: adding build image option on help option

* fix: Avoid Certain Depedendency Version (#5460)

* Avoid broken click version

* Pin boto3 and jsonschema

* Update reproducible reqs

* Ignore deprecation warnings in pytest

* Pin jsonschema

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>
Co-authored-by: Daniel Mil <84205762+mildaniel@users.noreply.github.com>
Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>
Co-authored-by: Elvis Henrique Pereira <elvishp2006@gmail.com>

* feat: Retrieve SAM CLI command parameters (#5445)

* Retrieve SAM CLI command parameters

* Implement requested changes

* Formatting

* Implement requested changes

* Include comment about module name parsing

* Address comments and update makefile

* Address final comments

* Fix linting issues

---------

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* feat: Parse parameters into JSON schema objects (#5468)

* Parse parameters into JSON schema objects

* Add JSON indent

* Add case checking

* Make param type variable

---------

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* feat: Implement JSON schema generation logic (#5484)

* Implement schema generation logic

* Abstract schema attributes into dataclasses

* Linting

* Update docstrings

* Formatting

---------

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* chore: Update JSON schema feature branch (#5524)

* chore: use amazon ecr credential helper in windows appveyor (#5446)

* chore: bump version to 1.90.0 (#5448)

* fix: Handler path mapping for layer-wrapped esbuild functions (#5450)

* fix: Layer wrapping esbuild function handlers

* Remove unused import

* Use nodejs18 in tests

* fix: fix macos reproducable task and gh actions (#5455)

* feat(sync): support build-image option (#5441)

* feat(sync): support build-image option

* chore: adding build image option on help option

* fix: Avoid Certain Depedendency Version (#5460)

* Avoid broken click version

* Pin boto3 and jsonschema

* Update reproducible reqs

* Ignore deprecation warnings in pytest

* Pin jsonschema

* Fix broken e2e test (#5459)

* add pip check after all pip install in pyinstaller scripts (#5463)

* add pip check after all pip install in pyinstaller scripts

* update pyinstaller build scripts to explicitly print executed commands

* chore: fix typo in help text of `pipeline bootstrap` (#5467)

* chore: update aws-sam-translator to 1.71.0 (#5462)

Co-authored-by: GitHub Action <action@github.com>

* chore(deps): bump cryptography from 41.0.0 to 41.0.1 in /requirements (#5473)

Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.0 to 41.0.1.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/41.0.0...41.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: E2E test can't find esbuild binary (#5476)

* fix(invoke): Write in UTF-8 string instead of bytes (#5427)

* Revert "Revert "fix(invoke): Write in UTF-8 string instead of bytes. (#5232)" (#5401)"

This reverts commit 7b7c54c59ad15ad90fd558d640daefa5142115d7.

* Add typing and fix issues found in the reverted commit

* Update of comments

* handle pr feedback

---------

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>

* feat: Add remote invoke implementation for step functions (#5458)

* Added remote invoke implementation for step functions

* Added type hints and changed datetime conversion

* Add unit tests

* Updated logic for supported services

* Removed step functions from supported services

* Updated method doc string

* Address comments

* Add a unit test for checking supported executors

* Remove Any typing and replace with specific type

* fix: use images.build rather than low level build API to catch errors (#5399)

* fix: use container.build rather than low level build API to catch errors

* use specific exception type rather than catching all

* fix unit tests

* add unit tests

* add integration tests

* fix messaging

* Swap params

* Relax document version check for authorizers (#5477)

* fix: use StringIO instead of BytesIO with StreamWriter (#5485)

* fix: use stringio in ECRUploader

* add typing for inner stream instance

* chore: Update dependabot config (#5491)

* feat: Support YAML file formats for config files (#5469)

* feat: Abstract SamConfig (#5208)

* Abstract SamConfig and decouple TOML logic

* Fix documentation and comments

* Generalize exception for FileManager

* Remove FileManager logic to its own file

* Fix bug in setting a default FileManager

* Implement requested changes
This includes additional logging messages, as well as explicitly requiring file extensions

* Include supported extensions in log call

* Implement requested changes

* Update docstrings

* Refactor changes to preserve TOML comments

* Allow file document to update properly

* Remove duplicate data
Since TOMLDocument wraps a Python dictionary anyway, we don't need the separate information

* Add put comment for FileManager

* Implement requested changes

* Format files according to standard

* Implement helper method for dict-like to TOMLDocument

---------

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* feat: Add YAML config file option (#5253)

* Abstract SamConfig and decouple TOML logic

* Fix documentation and comments

* Generalize exception for FileManager

* Remove FileManager logic to its own file

* Fix bug in setting a default FileManager

* Implement requested changes
This includes additional logging messages, as well as explicitly requiring file extensions

* Include supported extensions in log call

* Implement requested changes

* Update docstrings

* Refactor changes to preserve TOML comments

* Allow file document to update properly

* Remove duplicate data
Since TOMLDocument wraps a Python dictionary anyway, we don't need the separate information

* Add put comment for FileManager

* Implement requested changes

* Format files according to standard

* Implement helper method for dict-like to TOMLDocument

* Implement YamlFileManager

* Redefine YAML locally in class

* Update YAML-cast method

* Format correctly

---------

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* feat: Add JSON config file option (#5264)

* Add JsonFileManager

* Implement requested changes

* Remove unused line in test

---------

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* chore: Refactor TomlProvider to ConfigProvider (#5273)

Also, update docstrings to be in NumPy/SciPy format

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* feat: Add hierarchy for samconfig filetypes (#5297)

* Add hierarchy for samconfig default filetypes

* Formatting and fixing tests

* Implement requested changes

* Fix logic to properly allow default name

* Fix linting issue

* Fix failing Windows test

* Update default config name in guided config

---------

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* feat: Track config file extension (#5315)

* Add tracker for config file extensions

* Repair broken integration tests

* Clean up metric sort logic

* Implement requested changes

* Add Event unit tests

* Fix formatting

---------

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* feat: Add and fix samconfig integration tests (#5371)

* Add samconfig integration tests

* Add config checks to guided deploy integration tests

* Fix failing integration test on Windows

* *Actually* fix failing Windows integration test

* Implement requested changes

* Fix logging imports

* Implement requested changes

* Fix bug comparing ParameterSource enum

---------

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* feat: Fix message when no config file is found (#5394)

* Fix message when no config file found

* Formatting

---------

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* chore: Rebase config project to develop (#5406)

* fix: fix the hardcoded number of stages printed in logs. (#5210)

* feat: Linking Authorizers to Lambda functions using the invocation URI (#5196)

* Link authorizer to lambda function invoke URI

* Updated doc string

* Updated exception messages back

* Added check for one element in reference list

* Updated empty ref list check to not block

* Updated log message

* Fix long line lint error

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* chore(deps-dev): bump parameterized from 0.8.1 to 0.9.0 in /requirements (#5214)

Bumps [parameterized](https://github.com/wolever/parameterized) from 0.8.1 to 0.9.0.
- [Changelog](https://github.com/wolever/parameterized/blob/master/CHANGELOG.txt)
- [Commits](https://github.com/wolever/parameterized/compare/v0.8.1...v0.9.0)

---
updated-dependencies:
- dependency-name: parameterized
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump filelock from 3.10.7 to 3.12.0 in /requirements (#5213)

Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.10.7 to 3.12.0.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.10.7...3.12.0)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump attrs from 22.2.0 to 23.1.0 in /requirements (#5212)

Bumps [attrs](https://github.com/python-attrs/attrs) from 22.2.0 to 23.1.0.
- [Release notes](https://github.com/python-attrs/attrs/releases)
- [Changelog](https://github.com/python-attrs/attrs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/python-attrs/attrs/compare/22.2.0...23.1.0)

---
updated-dependencies:
- dependency-name: attrs
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: update SAM CLI with latest App Templates commit hash (#5211)

* feat: updating app templates repo hash with (a34f563f067e13df3eb350d36461b99397b6cda6)

* dummy change to trigger checks

* revert dummy commit

---------

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* fix: fix failing Terraform integration test cases (#5218)

* fix: fix the failing terraform integration test cases

* fix: fix the resource address while accessing the module config resources

* fix: fix checking the experimental log integration test cases

* chore: bump version to 1.85.0 (#5226)

* chore: use the SAR Application created in testing accounts (#5221)

* chore: update aws_lambda_builders to 1.32.0 (#5215)

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* feat: Added linking Gateway Method to Lambda Authorizer (#5228)

* Added linking method to authorizer

* Fixed docstring spelling mistake

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* feat: Return early during linking if no destination resources are found (#5220)

* Returns during linking if no destination resources are found

* Updated comment to correctly reflect state

* Cleaned extra word

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* chore: Strengthen wording on "no Auth" during deploy (#5231)

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Sriram Madapusi Vasudevan <3770774+sriram-mv@users.noreply.github.com>

* feat: Link Lambda Authorizer to Rest API (#5219)

* Link RestApiId property for Lambda Authorizers

* Updated docstring

* Format files

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* feat: updating app templates repo hash with (9ee7db342025a42023882960b23ebfcde1d87422) (#5242)

Co-authored-by: GitHub Action <action@github.com>

* fix: handle edge cases with function sync flow in sam sync command (#5222)

* fix: handle special cases for function sync flow

* update with unit tests

* add integration tests

* set ADL to false

* fix update file methods

* address comments

* address comments to instantiate FunctionBuildInfo in the beginning

* chore: Upgrade Mac installer to Py3.11 (#5223)

* chore: Upgrade Mac installer to Py3.11

* Remove python in mac installer build process

* Update hardcoded python version in build-mac.sh

---------

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>

* feat: updating app templates repo hash with (66f4a230d1c939a0c3f7b5647710c694c3a486f7) (#5245)

Co-authored-by: GitHub Action <action@github.com>

* Revert "chore: Upgrade Mac installer to Py3.11 (#5223)" (#5252)

This reverts commit 5954042d0bced7fea329c06930f021915ed9b746.

* fix: add 3.11 to classifiers and upgrade Docker (#5225)

* fix: add 3.11 to classifiers

- update dependencies, need to nail down the versions.

* Pin dev dependencies and handle excluding folders for mypy

* Remove unneeded type: ignores

* Fix name-match mypy errors

* Fix empty-body error from mypy

* Fix mypy errors by ignoring and get pytest to run/pass

* Force mypy to not fail hopefully

* Remove unneeded assignment

* Update pinned requirements file

---------

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Jacob Fuss <32497805+jfuss@users.noreply.github.com>

* fix: fix build and deploy SAR integration test cases (#5244)

* fix: fix build SAR integration test cases

* add comments to the UpdatableSARTemplate class usage.

* fix black check

* chore(deps): bump markupsafe from 2.1.2 to 2.1.3 in /requirements (#5257)

Bumps [markupsafe](https://github.com/pallets/markupsafe) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/pallets/markupsafe/releases)
- [Changelog](https://github.com/pallets/markupsafe/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/markupsafe/compare/2.1.2...2.1.3)

---
updated-dependencies:
- dependency-name: markupsafe
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump pydantic from 1.10.7 to 1.10.8 in /requirements (#5258)

Bumps [pydantic](https://github.com/pydantic/pydantic) from 1.10.7 to 1.10.8.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/v1.10.8/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v1.10.7...v1.10.8)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: Add click command for cloud invoke command (#5238)

* Add custom click option for cloud invoke called parameter

* Added more error handling to executors and updated output-format enum to use auto

* Add new CLI command for cloud invoke

* Update samcli/commands/remote_invoke/invoke/cli.py

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* Update samcli/commands/remote_invoke/invoke/cli.py

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* Update samcli/commands/remote_invoke/cloud.py

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* Update samcli/cli/types.py

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* Address feedback

* Moved all command options to be handled by click configuration

* Updated validation function doc-string

* Updated debug logs in types.py

* Changed remote_invoke dir to cloud and updated log level for validation

* Address feedback

---------

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* chore(deps-dev): bump boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray] (#5256)

Bumps [boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray]](https://github.com/youtype/mypy_boto3_builder) from 1.26.131 to 1.26.146.
- [Release notes](https://github.com/youtype/mypy_boto3_builder/releases)
- [Commits](https://github.com/youtype/mypy_boto3_builder/commits)

---
updated-dependencies:
- dependency-name: boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray]
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* pin pytest-metadata to avoid its breaking change (#5261)

* chore: update aws_lambda_builders to 1.33.0 (#5262)

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Daniel Mil <84205762+mildaniel@users.noreply.github.com>

* chore: Add python3.11 to canaries (#5263)

* chore: Add python3.11 to canaries

* Remove python3.9

* Artifact export for GraphQLApi (#5250)

* Artifact export for GraphQLApi

* format

* docstrings

* fix unit tests

* fix mypy issues

* improve search method signature

* chore: bump version to 1.86.0 (#5266)

* fix: add constant str for enums to support deepcopy operation (#5265)

* fix: add constant str for enums to support deepcopy operation

* add unit tests

* formatting

* update automated updates gha to force restart of status checks (#5269)

* integration tests for graphql resource package (#5271)

* Revert "fix: add 3.11 to classifiers and upgrade Docker (#5225)"

This reverts commit b51d6617340853d891469ff7a4dcc5bb88175389.

* chore: bump version to 1.86.1

* chore: Upgrade Docker-py/ Support Py3.11 for running tests (#5279)

* fix: add 3.11 to classifiers and upgrade Docker (#5225)

* fix: add 3.11 to classifiers

- update dependencies, need to nail down the versions.

* Pin dev dependencies and handle excluding folders for mypy

* Remove unneeded type: ignores

* Fix name-match mypy errors

* Fix empty-body error from mypy

* Fix mypy errors by ignoring and get pytest to run/pass

* Force mypy to not fail hopefully

* Remove unneeded assignment

* Update pinned requirements file

---------

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Jacob Fuss <32497805+jfuss@users.noreply.github.com>

* chore: Force version on docker and allow unit test to run when docker not running

In order for the docker.from_env() not to fail when docker is not installed/running,
we force the min version on client creation. This was the default behavior in 4.X of
docker-py but not longer in the latest version.

---------

Co-authored-by: Sriram Madapusi Vasudevan <3770774+sriram-mv@users.noreply.github.com>
Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>

* test: GHA to Execute Test without Docker Running (#5290)

* test: Test without Docker running

* Add build test

* Run install

* Remove success condition

* Add continue on error

* Add continue on error

* Separate tests

* Fix test name

* Require new test

* Address comments

* Attempt to parameterize for windows

* Attempt to parameterize for windows

* Attempt to parameterize for windows

* Set samdev in environment

* Move skip to top of test class

* fix: remove ruby3.2 from preview runtimes (#5296)

* fix: remove ruby3.2 from preview runtimes

* update {} with set()

* Fix: Force docker version to match 4.2's default version (#5305)

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>

* chore: cleanup appveyor definitions for not running jobs which is already run with GHA & add docker info/version commands (#5306)

* chore: remove redundant tests and setup from appveyor definitions

* add/update docker info and docker version commands

* add 3.11 and macos to GHAs

* add some explanations to Windows section

* fix: Fix failing tests on Python3.11 (#5317)

* chore(deps): bump cryptography from 39.0.2 to 41.0.0 in /requirements (#5251)

* chore(deps): bump cryptography from 39.0.2 to 41.0.0 in /requirements

Bumps [cryptography](https://github.com/pyca/cryptography) from 39.0.2 to 41.0.0.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/39.0.2...41.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump pyopenssl version to support newer cryptography lib

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lucas <12496191+lucashuy@users.noreply.github.com>
Co-authored-by: Jacob Fuss <32497805+jfuss@users.noreply.github.com>
Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* add sleep between close and reopen (#5320)

* GraphQLApi support for `sam deploy` (#5294)

* GraphQLApi support for `sam deploy`

* unit tests and format fixes

* fix: Update Arn parsing logic and fix some edge cases/bug fixes for remote invoke (#5295)

* Fix some edge cases and bug fixes for remote invoke and update Arn parsing logic

* Address feedback

* Add unit test for s3 with no region/accoint_id provided

* Renamed command to sam remote invoke

* chore: update aws_lambda_builders to 1.34.0 (#5343)

* chore: update aws_lambda_builders to 1.34.0

* Update base.txt

---------

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* test: test building npm and Typescript projects using external manifest file. (#5283)

* test: test building npm and Typescript projects using external manifest file.

* fix mypy issues

* remove node 12.x, and add the new node versions

* run make format

* chore(deps-dev): bump ruff from 0.0.261 to 0.0.272 in /requirements (#5337)

Bumps [ruff](https://github.com/charliermarsh/ruff) from 0.0.261 to 0.0.272.
- [Release notes](https://github.com/charliermarsh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/BREAKING_CHANGES.md)
- [Commits](https://github.com/charliermarsh/ruff/compare/v0.0.261...v0.0.272)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump pytest-cov from 4.0.0 to 4.1.0 in /requirements (#5335)

Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 4.0.0 to 4.1.0.
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: pytest-cov
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add lambda streaming support for remote invoke (#5307)

* feat: support response streaming with remote invoke

* add invoker and mappers

* Update output formatting of stream response

* add unit tests

* fix formatting

* Add docs

* address comments

* formatting

* move is_function_invoke_mode_response_stream into lambda invoke executors and add/update string constants

* chore: bump version to 1.87.0

* Revert app templates gha (#5356)

* Revert "add sleep between close and reopen (#5320)"

This reverts commit 5be690c88d580cfeee7731f549c75ed7543f47c5.

* Revert "update automated updates gha to force restart of status checks (#5269)"

This reverts commit deb212bc21eda2be0290e9a30f296aa74331e6c3.

* refactor: make remote invoke reactive to display results as soon as they are available (#5359)

* refactor: make remote invoke reactive to display results as soon as they are available

* addressed the comments

* refactor init_clients in sam delete (#5360)

* refactor init_clients in sam delete

* remove unused line

* use client_provider

* fix broken tests

* Update samcli/commands/delete/delete_context.py

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* add telemetry

* fix format

---------

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* chore: update aws-sam-translator to 1.69.0 (#5370)

Co-authored-by: GitHub Action <action@github.com>

* feat: sam remote invoke help text and UX fixes (#5366)

* Improve remote invoke help text and fix some UX bugs

* Updated help text for parameter option

* Updated test class name

* Updated test method name

* Updated help text for output-format and event-file

* Address feedback

* Updated help text for parameter option

* Changed --output-format name to output and the values to text/json

* Handle empty event for lambda and read from stdin when - is passed for event-file

* chore: temporary pin python version to 3.7.16 (#5384)

* chore: temporary pin python version to 3.7.16

* fix github action syntax error

* Updated cfn-lint to support ruby3.2 in validate (#5375)

* Remove unneeded test cases (#5374)

* Remove unneeded test cases

* Removing the two integ test cases as there is already coverage in unit test for cases that no region is specified

* feat: updating app templates repo hash with (67f28fd83477e0e15b394f995afb33b2053b4074) (#5362)

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* test: Integration tests for remote invoke on regular lambda functions (#5382)

* Created base integ glass for remote invoke tests

* Add integration tests for invoking lambda functions

* make black

* Moved tearDownClass to base class

* Removed tearDown class from inherited classes and updated lambda fn timeout

* Remove the check to skip appveyor tests on master branch

* feat: Make remote invoke command available (#5381)

* Enabled remote invoke command and updated docs link

* Created base integ glass for remote invoke tests

* Added end2end integ tests for remote invoke

* make black

* Moved tearDownClass to base class

* Remove the check to skip appveyor tests on master branch

* test: Remote invoke integration tests for response stream configured lambda functions  (#5383)

* Created base integ glass for remote invoke tests

* Add integration tests for invoking response streaming lambda fns

* make black

* Moved tearDownClass to base class

* Moved tearDownClass method to base class and removed architectures from template file

* Remove the check to skip appveyor tests on master branch

* chore: bump version to 1.88.0 (#5393)

* chore: fix issues with appveyor ubuntu setup #5395

* chore: remove deprecated runtime dotnetcore3.1 (#5091)

* chore: remove deprecated runtime dotnetcore3.1

* apply pr comments

* fix(invoke): Write in UTF-8 string instead of bytes. (#5232)

* fix(invoke): Write in UTF-8 string instead of bytes.

It appears that we were using sys.stdout.buffer to support python2
and python3 at the same time. Switching to just write to sys.stdout
allows us to write a utf-8 encoding string. When using sys.stdout.buffer,
we can only write bytes and I couldn't get the correct UTF8 encoded
string to print correctly.

* Fix ruff errors

* Update log_streamer.py to remove encoding

* More updates to make everything work better in general

* Fix with ruff again

* Explictingly write to stream for building images

* More patching writes

* More patching

* Fix long line

* Use mock over io.string

* More fixing of tests

* Assert mock instead of data directly

* More small edits in test

* Verify through calls instead of value

* run make black

* Fix when we flush to match pervious behavior and output

* add integration tests

* run make black

---------

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* Revert "fix(invoke): Write in UTF-8 string instead of bytes. (#5232)" (#5401)

This reverts commit 97104eac05c47aec1c7db62cb98cd050c7656d3d.

* Add sanity check script and use it in pyinstaller GHA (#5400)

* Add sanity check script and use it in pyinstaller GHA

* set pipefail in sanity-check.sh

* Make CI_OVERRIDE a global env var in the GHA workflow

* setup go in GHA

* disable telemetry

* Update script to check binary existence and to fix an issue in go build

* Resolve changes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>
Co-authored-by: Lucas <12496191+lucashuy@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Jacob Fuss <32497805+jfuss@users.noreply.github.com>
Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Sriram Madapusi Vasudevan <3770774+sriram-mv@users.noreply.github.com>
Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>
Co-authored-by: Wing Fung Lau <4760060+hawflau@users.noreply.github.com>
Co-authored-by: hnnasit <84355507+hnnasit@users.noreply.github.com>
Co-authored-by: Daniel Mil <84205762+mildaniel@users.noreply.github.com>
Co-authored-by: Slava Senchenko <sencslav@amazon.com>
Co-authored-by: Leonardo Gama <leogama@amazon.com>

* Disable JSON file extension support (#5426)

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* feat: Repair and refine tests (#5431)

* Fix failing integration test

* Add FileManager check for array param

---------

Co-authored-by: Leonardo Gama <leogama@amazon.com>

* chore: Update feat/config-files branch with changes from develop (#5466)

* fix: fix the hardcoded number of stages printed in logs. (#5210)

* feat: Linking Authorizers to Lambda functions using the invocation URI (#5196)

* Link authorizer to lambda function invoke URI

* Updated doc string

* Updated exception messages back

* Added check for one element in reference list

* Updated empty ref list check to not block

* Updated log message

* Fix long line lint error

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* chore(deps-dev): bump parameterized from 0.8.1 to 0.9.0 in /requirements (#5214)

Bumps [parameterized](https://github.com/wolever/parameterized) from 0.8.1 to 0.9.0.
- [Changelog](https://github.com/wolever/parameterized/blob/master/CHANGELOG.txt)
- [Commits](https://github.com/wolever/parameterized/compare/v0.8.1...v0.9.0)

---
updated-dependencies:
- dependency-name: parameterized
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump filelock from 3.10.7 to 3.12.0 in /requirements (#5213)

Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.10.7 to 3.12.0.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.10.7...3.12.0)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump attrs from 22.2.0 to 23.1.0 in /requirements (#5212)

Bumps [attrs](https://github.com/python-attrs/attrs) from 22.2.0 to 23.1.0.
- [Release notes](https://github.com/python-attrs/attrs/releases)
- [Changelog](https://github.com/python-attrs/attrs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/python-attrs/attrs/compare/22.2.0...23.1.0)

---
updated-dependencies:
- dependency-name: attrs
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: update SAM CLI with latest App Templates commit hash (#5211)

* feat: updating app templates repo hash with (a34f563f067e13df3eb350d36461b99397b6cda6)

* dummy change to trigger checks

* revert dummy commit

---------

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* fix: fix failing Terraform integration test cases (#5218)

* fix: fix the failing terraform integration test cases

* fix: fix the resource address while accessing the module config resources

* fix: fix checking the experimental log integration test cases

* chore: bump version to 1.85.0 (#5226)

* chore: use the SAR Application created in testing accounts (#5221)

* chore: update aws_lambda_builders to 1.32.0 (#5215)

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* feat: Added linking Gateway Method to Lambda Authorizer (#5228)

* Added linking method to authorizer

* Fixed docstring spelling mistake

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* feat: Return early during linking if no destination resources are found (#5220)

* Returns during linking if no destination resources are found

* Updated comment to correctly reflect state

* Cleaned extra word

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* chore: Strengthen wording on "no Auth" during deploy (#5231)

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Sriram Madapusi Vasudevan <3770774+sriram-mv@users.noreply.github.com>

* feat: Link Lambda Authorizer to Rest API (#5219)

* Link RestApiId property for Lambda Authorizers

* Updated docstring

* Format files

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* feat: updating app templates repo hash with (9ee7db342025a42023882960b23ebfcde1d87422) (#5242)

Co-authored-by: GitHub Action <action@github.com>

* fix: handle edge cases with function sync flow in sam sync command (#5222)

* fix: handle special cases for function sync flow

* update with unit tests

* add integration tests

* set ADL to false

* fix update file methods

* address comments

* address comments to instantiate FunctionBuildInfo in the beginning

* chore: Upgrade Mac installer to Py3.11 (#5223)

* chore: Upgrade Mac installer to Py3.11

* Remove python in mac installer build process

* Update hardcoded python version in build-mac.sh

---------

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>

* feat: updating app templates repo hash with (66f4a230d1c939a0c3f7b5647710c694c3a486f7) (#5245)

Co-authored-by: GitHub Action <action@github.com>

* Revert "chore: Upgrade Mac installer to Py3.11 (#5223)" (#5252)

This reverts commit 5954042d0bced7fea329c06930f021915ed9b746.

* fix: add 3.11 to classifiers and upgrade Docker (#5225)

* fix: add 3.11 to classifiers

- update dependencies, need to nail down the versions.

* Pin dev dependencies and handle excluding folders for mypy

* Remove unneeded type: ignores

* Fix name-match mypy errors

* Fix empty-body error from mypy

* Fix mypy errors by ignoring and get pytest to run/pass

* Force mypy to not fail hopefully

* Remove unneeded assignment

* Update pinned requirements file

---------

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Jacob Fuss <32497805+jfuss@users.noreply.github.com>

* fix: fix build and deploy SAR integration test cases (#5244)

* fix: fix build SAR integration test cases

* add comments to the UpdatableSARTemplate class usage.

* fix black check

* chore(deps): bump markupsafe from 2.1.2 to 2.1.3 in /requirements (#5257)

Bumps [markupsafe](https://github.com/pallets/markupsafe) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/pallets/markupsafe/releases)
- [Changelog](https://github.com/pallets/markupsafe/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/markupsafe/compare/2.1.2...2.1.3)

---
updated-dependencies:
- dependency-name: markupsafe
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump pydantic from 1.10.7 to 1.10.8 in /requirements (#5258)

Bumps [pydantic](https://github.com/pydantic/pydantic) from 1.10.7 to 1.10.8.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/v1.10.8/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v1.10.7...v1.10.8)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: Add click command for cloud invoke command (#5238)

* Add custom click option for cloud invoke called parameter

* Added more error handling to executors and updated output-format enum to use auto

* Add new CLI command for cloud invoke

* Update samcli/commands/remote_invoke/invoke/cli.py

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* Update samcli/commands/remote_invoke/invoke/cli.py

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* Update samcli/commands/remote_invoke/cloud.py

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* Update samcli/cli/types.py

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* Address feedback

* Moved all command options to be handled by click configuration

* Updated validation function doc-string

* Updated debug logs in types.py

* Changed remote_invoke dir to cloud and updated log level for validation

* Address feedback

---------

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* chore(deps-dev): bump boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray] (#5256)

Bumps [boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray]](https://github.com/youtype/mypy_boto3_builder) from 1.26.131 to 1.26.146.
- [Release notes](https://github.com/youtype/mypy_boto3_builder/releases)
- [Commits](https://github.com/youtype/mypy_boto3_builder/commits)

---
updated-dependencies:
- dependency-name: boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray]
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* pin pytest-metadata to avoid its breaking change (#5261)

* chore: update aws_lambda_builders to 1.33.0 (#5262)

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Daniel Mil <84205762+mildaniel@users.noreply.github.com>

* chore: Add python3.11 to canaries (#5263)

* chore: Add python3.11 to canaries

* Remove python3.9

* Artifact export for GraphQLApi (#5250)

* Artifact export for GraphQLApi

* format

* docstrings

* fix unit tests

* fix mypy issues

* improve search method signature

* chore: bump version to 1.86.0 (#5266)

* fix: add constant str for enums to support deepcopy operation (#5265)

* fix: add constant str for enums to support deepcopy operation

* add unit tests

* formatting

* update automated updates gha to force restart of status checks (#5269)

* integration tests for graphql resource package (#5271)

* Revert "fix: add 3.11 to classifiers and upgrade Docker (#5225)"

This reverts commit b51d6617340853d891469ff7a4dcc5bb88175389.

* chore: bump version to 1.86.1

* chore: Upgrade Docker-py/ Support Py3.11 for running tests (#5279)

* fix: add 3.11 to classifiers and upgrade Docker (#5225)

* fix: add 3.11 to classifiers

- update dependencies, need to nail down the versions.

* Pin dev dependencies and handle excluding folders for mypy

* Remove unneeded type: ignores

* Fix name-match mypy errors

* Fix empty-body error from mypy

* Fix mypy errors by ignoring and get pytest to run/pass

* Force mypy to not fail hopefully

* Remove unneeded assignment

* Update pinned requirements file

---------

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Jacob Fuss <32497805+jfuss@users.noreply.github.com>

* chore: Force version on docker and allow unit test to run when docker not running

In order for the docker.from_env() not to fail when docker is not installed/running,
we force the min version on client creation. This was the default behavior in 4.X of
docker-py but not longer in the latest version.

---------

Co-authored-by: Sriram Madapusi Vasudevan <3770774+sriram-mv@users.noreply.github.com>
Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>

* test: GHA to Execute Test without Docker Running (#5290)

* test: Test without Docker running

* Add build test

* Run install

* Remove success condition

* Add continue on error

* Add continue on error

* Separate tests

* Fix test name

* Require new test

* Address comments

* Attempt to parameterize for windows

* Attempt to parameterize for windows

* Attempt to parameterize for windows

* Set samdev in environment

* Move skip to top of test class

* fix: remove ruby3.2 from preview runtimes (#5296)

* fix: remove ruby3.2 from preview runtimes

* update {} with set()

* Fix: Force docker version to match 4.2's default version (#5305)

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>

* chore: cleanup appveyor definitions for not running jobs which is already run with GHA & add docker info/version commands (#5306)

* chore: remove redundant tests and setup from appveyor definitions

* add/update docker info and docker version commands

* add 3.11 and macos to GHAs

* add some explanations to Windows section

* fix: Fix failing tests on Python3.11 (#5317)

* chore(deps): bump cryptography from 39.0.2 to 41.0.0 in /requirements (#5251)

* chore(deps): bump cryptography from 39.0.2 to 41.0.0 in /requirements

Bumps [cryptography](https://github.com/pyca/cryptography) from 39.0.2 to 41.0.0.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/39.0.2...41.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump pyopenssl version to support newer cryptography lib

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lucas <12496191+lucashuy@users.noreply.github.com>
Co-authored-by: Jacob Fuss <32497805+jfuss@users.noreply.github.com>
Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* add sleep between close and reopen (#5320)

* GraphQLApi support for `sam deploy` (#5294)

* GraphQLApi support for `sam deploy`

* unit tests and format fixes

* fix: Update Arn parsing logic and fix some edge cases/bug fixes for remote invoke (#5295)

* Fix some edge cases and bug fixes for remote invoke and update Arn parsing logic

* Address feedback

* Add unit test for s3 with no region/accoint_id provided

* Renamed command to sam remote invoke

* chore: update aws_lambda_builders to 1.34.0 (#5343)

* chore: update aws_lambda_builders to 1.34.0

* Update base.txt

---------

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* test: test building npm and Typescript projects using external manifest file. (#5283)

* test: test building npm and Typescript projects using external manifest file.

* fix mypy issues

* remove node 12.x, and add the new node versions

* run make format

* chore(deps-dev): bump ruff from 0.0.261 to 0.0.272 in /requirements (#5337)

Bumps [ruff](https://github.com/charliermarsh/ruff) from 0.0.261 to 0.0.272.
- [Release notes](https://github.com/charliermarsh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/BREAKING_CHANGES.md)
- [Commits](https://github.com/charliermarsh/ruff/compare/v0.0.261...v0.0.272)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump pytest-cov from 4.0.0 to 4.1.0 in /requirements (#5335)

Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 4.0.0 to 4.1.0.
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: pytest-cov
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add lambda streaming support for remote invoke (#5307)

* feat: support response streaming with remote invoke

* add invoker and mappers

* Update output formatting of stream response

* add unit tests

* fix formatting

* Add docs

* address comments

* formatting

* move is_function_invoke_mode_response_stream into lambda invoke executors and add/update string constants

* chore: bump version to 1.87.0

* Revert app templates gha (#5356)

* Revert "add sleep between close and reopen (#5320)"

This reverts commit 5be690c88d580cfeee7731f549c75ed7543f47c5.

* Revert "update automated updates gha to force restart of status checks (#5269)"

This reverts commit deb212bc21eda2be0290e9a30f296aa74331e6c3.

* refactor: make remote invoke reactive to display results as soon as they are available (#5359)

* refactor: make remote invoke reactive to display results as soon as they are available

* addressed the comments

* refactor init_clients in sam delete (#5360)

* refactor init_clients in sam delete

* remove unused line

* use client_provider

* fix broken tests

* Update samcli/commands/delete/delete_context.py

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* add telemetry

* fix format

---------

Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* chore: update aws-sam-translator to 1.69.0 (#5370)

Co-authored-by: GitHub Action <action@github.com>

* feat: sam remote invoke help text and UX fixes (#5366)

* Improve remote invoke help text and fix some UX bugs

* Updated help text for parameter option

* Updated test class name

* Updated test method name

* Updated help text for output-format and event-file

* Address feedback

* Updated help text for parameter option

* Changed --output-format name to output and the values to text/json

* Handle empty event for lambda and read from stdin when - is passed for event-file

* chore: temporary pin python version to 3.7.16 (#5384)

* chore: temporary pin python version to 3.7.16

* fix github action syntax error

* Updated cfn-lint to support ruby3.2 in validate (#5375)

* Remove unneeded test cases (#5374)

* Remove unneeded test cases

* Removing the two integ test cases as there is already coverage in unit test for cases that no region is specified

* feat: updating app templates repo hash with (67f28fd83477e0e15b394f995afb33b2053b4074) (#5362)

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* test: Integration tests for remote invoke on regular lambda functions (#5382)

* Created base integ glass for remote invoke tests

* Add integration tests for invoking lambda functions

* make black

* Moved tearDownClass to base class

* Removed tearDown class from inherited classes and updated lambda fn timeout

* Remove the check to skip appveyor tests on master branch

* feat: Make remote invoke command available (#5381)

* Enabled remote invoke command and updated docs link

* Created base integ glass for remote invoke tests

* Added end2end integ tests for remote invoke

* make black

* Moved tearDownClass to base class

* Remove the check to skip appveyor tests on master branch

* test: Remote invoke integration tests for response stream configured lambda functions  (#5383)

* Created base integ glass for remote invoke tests

* Add integration tests for invoking response streaming lambda fns

* make black

* Moved tearDownClass to base class

* Moved tearDownClass method to base class and removed architectures from template file

* Remove the check to skip appveyor tests on master branch

* chore: bump version to 1.88.0 (#5393)

* chore: fix issues with appveyor ubuntu setup #5395

* chore: remove deprecated runtime dotnetcore3.1 (#5091)

* chore: remove deprecated runtime dotnetcore3.1

* apply pr comments

* fix(invoke): Write in UTF-8 string instead of bytes. (#5232)

* fix(invoke): Write in UTF-8 string instead of bytes.

It appears that we were using sys.stdout.buffer to support python2
and python3 at the same time. Switching to just write to sys.stdout
allows us to write a utf-8 encoding string. When using sys.stdout.buffer,
we can only write bytes and I couldn't get the correct UTF8 encoded
string to print correctly.

* Fix ruff errors

* Update log_streamer.py to remove encoding

* More updates to make everything work better in general

* Fix with ruff again

* Explictingly write to stream for building images

* More patching writes

* More patching

* Fix long line

* Use mock over io.string

* More fixing of tests

* Assert mock instead of data directly

* More small edits in test

* Verify through calls instead of value

* run make black

* Fix when we flush to match pervious behavior and output

* add integration tests

* run make black

---------

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Mehmet Nuri Deveci <5735811+mndeveci@users.noreply.github.com>

* Revert "fix(invoke): Write in UTF-8 string instead of bytes. (#5232)" (#5401)

This reverts commit 97104eac05c47aec1c7db62cb98cd050c7656d3d.

* Add sanity check script and use it in pyinstaller GHA (#5400)

* Add sanity check script and use it in pyinstaller GHA

* set pipefail in sanity-check.sh

* Make CI_OVERRIDE a global env var in the GHA workflow

* setup go in GHA

* disable telemetry

* Update script to check binary existence and to fix an issue in go build

* chore: update aws-sam-translator to 1.70.0 (#5402)

Co-authored-by: GitHub Action <action@github.com>

* Version bump to 1.89.0 (#5420)

* chore(docs): updated readme with additional resources (#5349)

* chore: updated gitignore to ignore tmp scratch directory
used by dotnet tests

* chore: update readme to include additional workshop resources and missing Powertools links.
Fixed formatting

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* chore(deps): bump actions/setup-go from 3 to 4 (#5418)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 4.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sriram Madapusi Vasudevan <3770774+sriram-mv@users.noreply.github.com>

* chore(deps-dev): bump filelock from 3.12.0 to 3.12.2 in /requirements (#5378)

Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.12.0 to 3.12.2.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.12.0...3.12.2)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: updating app templates repo hash with (bb905c379830c3d8edbc196bda731076549028e3) (#5398)

Co-authored-by: GitHub Action <action@github.com>

* fix: add a table for package help text. (#5298)

* fix: add a table for package help text.

* Update samcli/commands/package/core/command.py

Co-authored-by: Daniel Mil <84205762+mildaniel@users.noreply.github.com>

* tests: fix strings in package help text

* fix: PR comments

* fix: PR comments.

---------

Co-authored-by: Daniel Mil <84205762+mildaniel@users.noreply.github.com>

* fix: Handle BROKEN_PIPE_ERROR (#5386)

* Handle pywintypes pipe exception

* Moved exception checking to check for winerror

* Use decorator and added unit tests

* Added failure test case

* make format

* Added more context/comments

* fix: remove circular dependency by moving parse_s3 method to its own util file (#5430)

* fix: remove circular dependency by moving parse_s3 method to its own util file

* add missing unit tests file

* chore(deps): bump sympy from 1.10.1 to 1.12 in /requirements (#5338)

Bumps [sympy](https://github.com/sympy/sympy) from 1.10.1 to 1.12.
- [Release notes](https://github.com/sympy/sympy/releases)
- [Commits](https://github.com/sympy/sympy/compare/sympy-1.10.1...sympy-1.12)

---
updated-dependencies:
- dependency-name: sympy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hnnasit <84355507+hnnasit@users.noreply.github.com>

* chore(deps): bump websocket-client from 1.5.1 to 1.6.1 in /requirements (#5417)

Bumps [websocket-client](https://github.com/websocket-client/websocket-client) from 1.5.1 to 1.6.1.
- [Release notes](https://github.com/websocket-client/websocket-client/releases)
- [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog)
- [Commits](https://github.com/websocket-client/websocket-client/compare/v1.5.1...v1.6.1)

---
updated-dependencies:
- dependency-name: websocket-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump ruamel-yaml from 0.17.21 to 0.17.32 in /requirements (#5376)

* chore(deps): bump ruamel-yaml from 0.17.21 to 0.17.32 in /requirements

Bumps [ruamel-yaml](https://sourceforge.net/p/ruamel-yaml/code/ci/default/tree) from 0.17.21 to 0.17.32.

---
updated-dependencies:
- dependency-name: ruamel-yaml
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Pin ruamel-yaml-clib version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hnnasit <84355507+hnnasit@users.noreply.github.com>
Co-authored-by: Haresh Nasit <hnnasit@amazon.com>

* Updated package formatter to import package options instead of deploy (#5433)

Co-authored-by: Sriram Madapusi Vasudevan <3770774+sriram-mv@users.noreply.github.com>

* chore(deps): bump importlib-metadata in /requirements (#5437)

Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 6.1.0 to 6.7.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v6.1.0...v6.7.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: `sam logs` help text (#5397)

* feat: `sam logs` help text

* fix: make ruff happy

* fix: address comments

* feat: enable terraform support for local start-api command (#5389)

* feat: Enable hook-name and skip-prepare-infra flagf for sam local start-api (#5217)

* Enable hook-name flag for sam local start-api

* Format files

* test: Terraform local start-api integration tests base (#5240)

* feat: update SAM CLI with latest App Templates commit hash (#5211)

* feat: updating app templates repo hash with (a34f563f067e13df3eb350d36461b99397b6cda6)

* dummy change to trigger checks

* revert dummy commit

---------

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* Enable hook-name flag for sam local start-api

* Format files

* fix: fix failing Terraform integration test cases (#5218)

* fix: fix the failing terraform integration test cases

* fix: fix the resource address while accessing the module config resources

* fix: fix checking the experimental log integration test cases

* chore: bump version to 1.85.0 (#5226)

* chore: use the SAR Application created in testing accounts (#5221)

* chore: update aws_lambda_builders to 1.32.0 (#5215)

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* feat: Added linking Gateway Method to Lambda Authorizer (#5228)

* Added linking method to authorizer

* Fixed docstring spelling mistake

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* feat: Return early during linking if no destination resources are found (#5220)

* Returns during linking if no destination resources are found

* Updated comment to correctly reflect state

* Cleaned extra word

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* chore: Strengthen wording on "no Auth" during deploy (#5231)

Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Sriram Madapusi Vasudevan <3770774+sriram-mv@users.noreply.github.com>

* feat: Link Lambda Authorizer to Rest API (#5219)

* Link RestApiId property for Lambda Authorizers

* Updated docstring

* Format files

---------

Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>

* Terraform start-api integration tests

* Add test files

* Uncomment skip

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Mohamed Elasmar <71043312+moelasmar@users.noreply.github.com>
Co-authored-by: Lucas <12496191+lucashuy@users.noreply.github.com>
Co-authored-by: Jacob Fuss <32497805+jfuss@users.noreply.github.com>
Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Sriram Madapusi Vasudevan <3770774+sriram-mv@users.noreply.github.com>

* feat: Added OpenApi body integration testing and updated property builder (#5291)

* Added OpenApi body integration testing and updated property builder

* Added more test cases

* Changed tearDown to tearDownClass

* Updated JSON body parser to handle parsing errors and added unit tests

* Removed V1 references

* feat: Terraform Authorizer resource testing (#5270)

* Added authorizer project

* Added project files

* Removed extra print

* Add request based authorizer testing

* test: Test the unsupported limitations for local start api (#5309)

* test: Test the unsupported limitations for local start api

* fix lint issues

* apply pr comments

* fix: Bug Bash UX Issues (#5387)

* Fix bug bash UX issues

* Fix beta warning printing extra characters

* Fix authorizer logging

---------

Co-authored-by: Daniel Mil <84205762+mildaniel@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Lucas <12496191+lucashuy@users.noreply.github.com>
Co-authored-by: Jacob Fuss <32497805+jfuss@users.noreply.github.com>
Co-authored-by: Jacob Fuss <jfuss@users.noreply.github.com>
Co-authored-by: Sriram Madapusi Vasudevan <3770774+sriram-mv@users.noreply.github.com>

* Updated warning message about missing function in template (#5347)

Co-authored-by: Wing Fung Lau <4760060+hawflau@users.noreply.github.com>

* chore(deps-dev): bump types-pywin32 in /requirements (#5436)

Bumps [types-pywin32](https://github.com/python/typeshed) from 306.0.0.0 to 306.0.0.2.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-pywin32
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users…
  • Loading branch information
1 parent e79955e commit 17b25eb
Show file tree
Hide file tree
Showing 72 changed files with 3,444 additions and 43 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,15 @@ jobs:
runs-on: ubuntu-latest
needs:
- make-pr
- validate-schema
- integration-tests
- smoke-and-functional-tests
- docker-disabled
steps:
- name: report-failure
if : |
needs.make-pr.result != 'success' ||
needs.validate-schema.result != 'success' ||
needs.integration-tests.result != 'success' ||
needs.smoke-and-functional-tests.result != 'success' ||
needs.docker-disabled.result != 'success'
Expand Down Expand Up @@ -64,6 +66,27 @@ jobs:
- run: make init
- run: make pr

validate-schema:
name: Validate JSON schema
if: github.repository_owner == 'aws'
permissions:
pull-requests: write
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
name: Install Python 3.11
with:
python-version: 3.11
- run: make init
- run: |
diff <( cat schema/samcli.json ) <( python schema/make_schema.py; cat schema/samcli.json ) && exit 0 # exit if schema is unchanged
echo "The generated schema differs from that in the PR. Please run 'make schema'."
exit 1
name: Generate and compare the schema
shell: bash
integration-tests:
name: Integration Tests / ${{ matrix.os }} / ${{ matrix.python }} / ${{ matrix.tests_folder }}
if: github.repository_owner == 'aws'
Expand Down
19 changes: 12 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,19 @@
# environment variable.
SAM_CLI_TELEMETRY ?= 0

.PHONY: schema

init:
SAM_CLI_DEV=1 pip install -e '.[dev]'

test:
# Run unit tests
# Fail if coverage falls below 95%
pytest --cov samcli --cov-report term-missing --cov-fail-under 94 tests/unit
pytest --cov samcli --cov schema --cov-report term-missing --cov-fail-under 94 tests/unit

test-cov-report:
# Run unit tests with html coverage report
pytest --cov samcli --cov-report html --cov-fail-under 94 tests/unit
pytest --cov samcli --cov schema --cov-report html --cov-fail-under 94 tests/unit

integ-test:
# Integration tests don't need code coverage
Expand All @@ -34,24 +36,27 @@ smoke-test:

lint:
# Linter performs static analysis to catch latent bugs
ruff samcli
ruff samcli schema
# mypy performs type check
mypy --exclude /testdata/ --exclude /init/templates/ --no-incremental setup.py samcli tests
mypy --exclude /testdata/ --exclude /init/templates/ --no-incremental setup.py samcli tests schema

# Command to run everytime you make changes to verify everything works
dev: lint test

black:
black setup.py samcli tests
black setup.py samcli tests schema

black-check:
black --check setup.py samcli tests
black --check setup.py samcli tests schema

format: black
ruff samcli --fix

schema:
python schema/make_schema.py

# Verifications to run before sending a pull request
pr: init dev black-check
pr: init dev schema black-check

# (jfuss) We updated to have two requirement files, one for mac and one for linux. This
# is meant to be a short term fix when upgrading the Linux installer to be python3.11 from
Expand Down
18 changes: 7 additions & 11 deletions samcli/cli/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,7 @@ class CfnParameterOverridesType(click.ParamType):

ordered_pattern_match = [_pattern_1, _pattern_2]

# NOTE(TheSriram): name needs to be added to click.ParamType requires it.
name = ""
name = "string,list"

def convert(self, value, param, ctx):
result = {}
Expand Down Expand Up @@ -140,8 +139,7 @@ class CfnMetadataType(click.ParamType):

_pattern = r"(?:{key}={value})".format(key=PARAM_AND_METADATA_KEY_REGEX, value=VALUE_REGEX_COMMA_DELIM)

# NOTE(TheSriram): name needs to be added to click.ParamType requires it.
name = ""
name = "string"

def convert(self, value, param, ctx):
result = {}
Expand Down Expand Up @@ -196,8 +194,7 @@ def __init__(self, multiple_values_per_key=False):

_pattern = r"{tag}={tag}".format(tag=_generate_match_regex(match_pattern=TAG_REGEX, delim=" "))

# NOTE(TheSriram): name needs to be added to click.ParamType requires it.
name = ""
name = "list"

def convert(self, value, param, ctx):
result = {}
Expand Down Expand Up @@ -301,8 +298,7 @@ class SigningProfilesOptionType(click.ParamType):

pattern = r"(?:(?: )([A-Za-z0-9\"]+)=(\"(?:\\.|[^\"\\]+)*\"|(?:\\.|[^ \"\\]+)+))"

# Note: this is required, otherwise it is failing when running help
name = ""
name = "string"

def convert(self, value, param, ctx):
"""
Expand Down Expand Up @@ -393,7 +389,7 @@ def transform(self, *args, **kwargs):

# Transformation callback function checks if the received option value is a valid ECR url.
transformer = Transformer(converter=click.STRING, transformation=is_ecr_url)
name = ""
name = "string"

def convert(self, value, param, ctx):
"""
Expand All @@ -410,7 +406,7 @@ class ImageRepositoriesType(click.ParamType):
Custom Parameter Type for Multi valued Image Repositories option.
"""

name = ""
name = "list"
KEY_VALUE_PAIR_LENGTH = 2

def convert(self, value, param, ctx):
Expand All @@ -431,7 +427,7 @@ class RemoteInvokeBotoApiParameterType(click.ParamType):
Custom Parameter Type for Multi valued Boto API parameter option of remote invoke command.
"""

name = ""
name = "list"
MIN_KEY_VALUE_PAIR_LENGTH = 2

def convert(self, value, param, ctx):
Expand Down
9 changes: 1 addition & 8 deletions samcli/commands/_utils/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -367,13 +367,6 @@ def common_observability_click_options():
help="Fetch events up to this time. Time can be relative values like '5mins ago', 'tomorrow' or "
"formatted timestamp like '2018-01-01 10:10:10'",
),
click.option(
"--tail",
"-t",
is_flag=True,
help="Tail events. This will ignore the end time argument and continue to fetch events as they "
"become available. If option --tail without a --name will pull from all possible resources",
),
click.option(
"--output",
help="""
Expand Down Expand Up @@ -827,7 +820,7 @@ def _space_separated_list_func_type(value):
raise ValueError()


_space_separated_list_func_type.__name__ = "LIST"
_space_separated_list_func_type.__name__ = "list,string"


def generate_next_command_recommendation(command_tuples: List[Tuple[str, str]]) -> str:
Expand Down
2 changes: 1 addition & 1 deletion samcli/commands/build/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
multiple=True, # Can pass in multiple env vars
required=False,
help="Environment variables to be passed into build containers"
"Resource format (FuncName.VarName=Value) or Global format (VarName=Value)."
"\nResource format (FuncName.VarName=Value) or Global format (VarName=Value)."
"\n\n Example: --container-env-var Func1.VAR1=value1 --container-env-var VAR2=value2",
cls=ContainerOptions,
)
Expand Down
1 change: 1 addition & 0 deletions samcli/commands/init/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ def wrapped(*args, **kwargs):

@click.command(
"init",
help=HELP_TEXT,
short_help=HELP_TEXT,
context_settings={"max_content_width": 120},
cls=InitCommand,
Expand Down
2 changes: 1 addition & 1 deletion samcli/commands/local/cli_common/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ def warm_containers_common_options(f):
click.option(
"--debug-function",
help="Optional. Specifies the Lambda Function logicalId to apply debug options to when"
" --warm-containers is specified. This parameter applies to --debug-port, --debugger-path,"
" --warm-containers is specified. This parameter applies to --debug-port, --debugger-path,"
" and --debug-args.",
type=click.STRING,
multiple=False,
Expand Down
8 changes: 8 additions & 0 deletions samcli/commands/logs/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,14 @@
"supported by AWS CloudWatch Logs. See the AWS CloudWatch Logs documentation for the syntax "
"https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html",
)
@click.option(
"--tail",
"-t",
is_flag=True,
help="Tail events. This will ignore the end time argument and continue to fetch events as they "
"become available. If option --tail is provided without a --name, one will be pulled from all "
"possible resources",
)
@click.option(
"--include-traces",
"-i",
Expand Down
13 changes: 10 additions & 3 deletions samcli/commands/traces/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@
multiple=True,
help="Fetch specific trace by providing its id",
)
@click.option(
"--tail",
"-t",
is_flag=True,
help="Tail events. This will ignore the end time argument and continue to fetch events as they "
"become available.",
)
@common_observability_options
@cli_framework_options
@aws_creds_options
Expand All @@ -46,20 +53,20 @@
def cli(
ctx,
trace_id,
tail,
start_time,
end_time,
tail,
output,
config_file,
config_env,
):
"""
`sam traces` command entry point
"""
do_cli(trace_id, start_time, end_time, tail, output, ctx.region)
do_cli(trace_id, tail, start_time, end_time, output, ctx.region)


def do_cli(trace_ids, start_time, end_time, tailing, output, region):
def do_cli(trace_ids, tailing, start_time, end_time, output, region):
"""
Implementation of the ``cli`` method
"""
Expand Down
6 changes: 3 additions & 3 deletions samcli/lib/config/samconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def get_all(self, cmd_names, section, env=DEFAULT_ENV):
self.document = self._read()

config_content = self.document.get(env, {})
params = config_content.get(self._to_key(cmd_names), {}).get(section, {})
params = config_content.get(self.to_key(cmd_names), {}).get(section, {})
if DEFAULT_GLOBAL_CMDNAME in config_content:
global_params = config_content.get(DEFAULT_GLOBAL_CMDNAME, {}).get(section, {})
global_params.update(params.copy())
Expand Down Expand Up @@ -116,7 +116,7 @@ def put(self, cmd_names, section, key, value, env=DEFAULT_ENV):
# Empty document prepare the initial structure.
# self.document is a nested dict, we need to check each layer and add new tables, otherwise duplicated key
# in parent layer will override the whole child layer
cmd_name_key = self._to_key(cmd_names)
cmd_name_key = self.to_key(cmd_names)
env_content = self.document.get(env, {})
cmd_content = env_content.get(cmd_name_key, {})
param_content = cmd_content.get(section, {})
Expand Down Expand Up @@ -284,6 +284,6 @@ def _version_sanity_check(version: Any) -> None:
raise SamConfigVersionException(f"'{VERSION_KEY}' key is not present or is in unrecognized format. ")

@staticmethod
def _to_key(cmd_names: Iterable[str]) -> str:
def to_key(cmd_names: Iterable[str]) -> str:
# construct a parsed name that is of the format: a_b_c_d
return "_".join([cmd.replace("-", "_").replace(" ", "_") for cmd in cmd_names])
18 changes: 10 additions & 8 deletions samcli/local/common/runtime_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,15 @@ def get_local_lambda_images_location(mapping, runtime):
return os.path.join(_lambda_images_templates, runtime, dir_name + "-lambda-image")


SUPPORTED_DEP_MANAGERS: List[str] = list(
set(
{
c.get("dependency_manager") # type: ignore
for c in list(itertools.chain(*(RUNTIME_DEP_TEMPLATE_MAPPING.values())))
if c.get("dependency_manager")
}
SUPPORTED_DEP_MANAGERS: List[str] = sorted(
list(
set(
{
c.get("dependency_manager") # type: ignore
for c in list(itertools.chain(*(RUNTIME_DEP_TEMPLATE_MAPPING.values())))
if c.get("dependency_manager")
}
)
)
)

Expand Down Expand Up @@ -145,7 +147,7 @@ def get_local_lambda_images_location(mapping, runtime):
"ruby2.7": "amazon/ruby2.7-base",
}

LAMBDA_IMAGES_RUNTIMES: List = list(set(LAMBDA_IMAGES_RUNTIMES_MAP.values()))
LAMBDA_IMAGES_RUNTIMES: List = sorted(list(set(LAMBDA_IMAGES_RUNTIMES_MAP.values())))

# Schemas Code lang is a MINIMUM supported version
# - this is why later Lambda runtimes can be mapped to earlier Schemas Code Languages
Expand Down
Empty file added schema/__init__.py
Empty file.
5 changes: 5 additions & 0 deletions schema/exceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
"""Exceptions related to schema generation."""


class SchemaGenerationException(Exception):
pass
Loading

0 comments on commit 17b25eb

Please sign in to comment.