{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":12092925,"defaultBranch":"develop","name":"aws-cli","ownerLogin":"kyleknap","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2013-08-13T21:03:11.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4605355?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1717085770.0","currentOid":""},"activityList":{"items":[{"before":"5168f567f4d388e201d90af37fac60d35995de4c","after":null,"ref":"refs/heads/v2-ssm-session-profile","pushedAt":"2024-05-30T16:16:10.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"}},{"before":"e06385619f35af144e6a7db35f43d42283992b27","after":null,"ref":"refs/heads/ssm-session-profile","pushedAt":"2024-05-30T16:14:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"}},{"before":null,"after":"5168f567f4d388e201d90af37fac60d35995de4c","ref":"refs/heads/v2-ssm-session-profile","pushedAt":"2024-05-29T23:20:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Update test cases to use AWSCLIEntryPoint\n\nFor v1, it only has the notion of a CLIDriver. For v2, there is\nan entry point abstraction that needs to be recreated as well\nas the driver to apply credential/config file changes.","shortMessageHtmlLink":"Update test cases to use AWSCLIEntryPoint"}},{"before":null,"after":"e06385619f35af144e6a7db35f43d42283992b27","ref":"refs/heads/ssm-session-profile","pushedAt":"2024-05-29T22:50:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Add changelog entry","shortMessageHtmlLink":"Add changelog entry"}},{"before":"d0fb0a0986e3671b39a39407a7318bef90edac83","after":null,"ref":"refs/heads/fix-ec2-output-test","pushedAt":"2024-03-11T23:05:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"}},{"before":null,"after":"d0fb0a0986e3671b39a39407a7318bef90edac83","ref":"refs/heads/fix-ec2-output-test","pushedAt":"2024-03-11T22:29:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Make EC2 help output assertion a regex\n\nThis future proofs the test assertion in case \"Amazon EC2\" is\never broken between two lines, similar to the rest of the test\ncases.","shortMessageHtmlLink":"Make EC2 help output assertion a regex"}},{"before":"13dbcfd9c4bbabd317ae0eeca6e603e919bf56eb","after":null,"ref":"refs/heads/update-v2","pushedAt":"2024-02-02T16:31:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"}},{"before":"5ccd7fb0cd0cc49399f6ec138df4b03eed94f2ac","after":null,"ref":"refs/heads/query-argument","pushedAt":"2024-02-02T00:08:06.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"}},{"before":null,"after":"13dbcfd9c4bbabd317ae0eeca6e603e919bf56eb","ref":"refs/heads/update-v2","pushedAt":"2024-02-01T23:52:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Add changelog entries from latest v1 releases\n\nPulled in changes from 1.32.32 to 1.32.33","shortMessageHtmlLink":"Add changelog entries from latest v1 releases"}},{"before":"ae97409a962656474f352d6726793d2a7aac0adf","after":"5ccd7fb0cd0cc49399f6ec138df4b03eed94f2ac","ref":"refs/heads/query-argument","pushedAt":"2024-02-01T22:00:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Update QueryOutFileArgument permission logic\n\nThis allows the permission mode to be set prior to writing any\ncontent for new created files.","shortMessageHtmlLink":"Update QueryOutFileArgument permission logic"}},{"before":"ae62eab7ba2945c3bfae346730855b95f5a4c250","after":"ae97409a962656474f352d6726793d2a7aac0adf","ref":"refs/heads/query-argument","pushedAt":"2024-02-01T21:58:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Update QueryOutFileArgument permission logic\n\nThis allows the permission mode to be set prior to writing any\ncontent for new created files.","shortMessageHtmlLink":"Update QueryOutFileArgument permission logic"}},{"before":null,"after":"ae62eab7ba2945c3bfae346730855b95f5a4c250","ref":"refs/heads/query-argument","pushedAt":"2024-02-01T21:56:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Update QueryOutFileArgument permission logic\n\nInstead of setting the file permissions after the file is written,\nthe permissions are set as part of opening the file to ensure the\nfile permissions is stable for the invocation of the command.","shortMessageHtmlLink":"Update QueryOutFileArgument permission logic"}},{"before":"c7ee0c445111d5a14e0cf854b5c530ff2875e89e","after":null,"ref":"refs/heads/update-v2","pushedAt":"2024-01-31T17:29:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"}},{"before":"4ab43a6c47306d4d7c6ce64898d824272c5a6c9f","after":"c7ee0c445111d5a14e0cf854b5c530ff2875e89e","ref":"refs/heads/update-v2","pushedAt":"2024-01-30T23:50:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Make changes specific to v2 for dependency tests\n\nNotable changes between v1 and v2 are:\n\n* The difference in dependency closures\n* The difference in where the new test requirement is specified\n* Remove running the test on Python3.12 since the codebase does\n not support it yet\n* Avoid using the MetaPathFinder provided by importlib.metadata\n when finding distributions to avoid compatibility issues with\n the MetaPathFinder v2 injects","shortMessageHtmlLink":"Make changes specific to v2 for dependency tests"}},{"before":"3ba5e17d7a1918e343b0bfcca29eba8a3bd6aa9e","after":"4ab43a6c47306d4d7c6ce64898d824272c5a6c9f","ref":"refs/heads/update-v2","pushedAt":"2024-01-30T23:31:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Make changes specific to v2 for dependency tests\n\nNotable changes between v1 and v2 are:\n\n* The difference in dependency closures\n* The difference in where the new test requirement is specified\n* Remove running the test on Python3.12 since the codebase does\n not support it yet\n* Avoid using the MetaPathFinder provided by importlib.metadata\n when finding distributions to avoid compatibility issues with\n the MetaPathFinder v2 injects","shortMessageHtmlLink":"Make changes specific to v2 for dependency tests"}},{"before":null,"after":"3ba5e17d7a1918e343b0bfcca29eba8a3bd6aa9e","ref":"refs/heads/update-v2","pushedAt":"2024-01-30T23:28:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Add changelog entries from latest v1 releases\n\nPulled in changes from 1.32.29 to 1.32.31","shortMessageHtmlLink":"Add changelog entries from latest v1 releases"}},{"before":"555acb89376d46afac5773990cad20f8f91aa6b0","after":null,"ref":"refs/heads/test-runtime-deps","pushedAt":"2024-01-30T18:35:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"}},{"before":"f72ff0bbf878197313e2772abfb8ef96840b3070","after":"555acb89376d46afac5773990cad20f8f91aa6b0","ref":"refs/heads/test-runtime-deps","pushedAt":"2024-01-30T18:21:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Introduce dependency test suite\n\nThe plan is to build out this test suite to test against the AWS\nCLI's dependencies to help facilitate dependency upgrades.\n\nTo start, this test suite contains the following new test cases\nto better monitor the overall dependency closure of the awscli\npackage:\n\n* Assert expected packages in runtime closure. This will alert\n us if a dependency introduces a new transitive depenency\n to the AWS CLI closure.\n\n* Assert expected unbounded dependencies in runtime closure.\n Specifically these are dependencies that do not have a version\n ceiling. This will alert us if a new unbounded dependency is\n introduced into the AWS CLI runtime dependency closure.\n\nSee additional implementation notes below:\n\n* These tests were broken into a separate test suite (i.e. instead\n of adding them to the unit and functional test suite) to allow\n more granularity when running them. Specifically, it is useful for:\n\n 1. Avoiding the main unit and functional CI test suite from failing\n if a dependency changes from underneath of us (e.g. a new build\n dependency is added that we cannot control).\n\n 2. For individuals that package the awscli, they generally will not\n want to run this test suite as it is fairly specific to how pip\n installs dependencies.\n\n* To determine the runtime dependency closure, the Package and DependencyClosure\n utilities traverse the dist-info METADATA files of the packages installed in\n the current site packages to build the runtime graph. This approach was chosen\n because:\n\n 1. Since pip already installed the package, this logic avoids having to\n reconstruct the logic of how pip decides to resolve dependencies to figure\n out how to traverse the runtime graph. Any custom logic may deviate from\n how pip behaves which is what most users will be using to install the awscli\n as a Python package\n 2. It's faster. The runtime closure test cases do not require downloading or\n installing any additional packages.","shortMessageHtmlLink":"Introduce dependency test suite"}},{"before":"0b4524c0c72024bd80df018e2079f22d8a5183bd","after":"f72ff0bbf878197313e2772abfb8ef96840b3070","ref":"refs/heads/test-runtime-deps","pushedAt":"2024-01-30T18:16:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Introduce dependency test suite\n\nThe plan is to build out this test suite to test against the AWS\nCLI's dependencies to help facilitate dependency upgrades.\n\nTo start, this test suite contains the following new test cases\nto better monitor the overall dependency closure of the awscli\npackage:\n\n* Assert expected packages in runtime closure. This will alert\n us if a dependency introduces a new transitive depenency\n to the AWS CLI closure.\n\n* Assert expected unbounded dependencies in runtime closure.\n Specifically these are dependencies that do not have a version\n ceiling. This will alert us if a new unbounded dependency is\n introduced into the AWS CLI runtime dependency closure.\n\nSee additional implementation notes below:\n\n* These tests were broken into a separate test suite (i.e. instead\n of adding them to the unit and functional test suite) to allow\n more granularity when running them. Specifically, it is useful for:\n\n 1. Avoiding the main unit and functional CI test suite from failing\n if a dependency changes from underneath of us (e.g. a new build\n dependency is added that we cannot control).\n\n 2. For individuals that package the awscli, they generally will not\n want to run this test suite as it is fairly specific to how pip\n installs dependencies.\n\n* To determine the runtime dependency closure, the Package and DependencyClosure\n utilities traverse the dist-info METADATA files of the packages installed in\n the current site packages to build the runtime graph. This approach was chosen\n because:\n\n 1. Since pip already installed the package, this logic avoids having to\n reconstruct the logic of how pip decides to resolve dependencies to figure\n out how to traverse the runtime graph. Any custom logic may deviate from\n how pip behaves which is what most users will be using to install the awscli\n as a Python package\n 2. It's faster. The runtime closure test cases do not require downloading or\n installing any additional packages.","shortMessageHtmlLink":"Introduce dependency test suite"}},{"before":"bcf9b137ddbf8956cb69c9fc18585ea8879772ea","after":"54e21a46b6f6c4a0cb234112394b7fe591304c38","ref":"refs/heads/v2-test-runtime-deps","pushedAt":"2024-01-30T06:49:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Look at all sitepackages","shortMessageHtmlLink":"Look at all sitepackages"}},{"before":"9dec2ae3634aab8e1d2e985101421e9538b04c1c","after":"bcf9b137ddbf8956cb69c9fc18585ea8879772ea","ref":"refs/heads/v2-test-runtime-deps","pushedAt":"2024-01-30T06:32:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Debugging","shortMessageHtmlLink":"Debugging"}},{"before":"b2fbe9bba677dfae3b784f65f8925e3322513173","after":"9dec2ae3634aab8e1d2e985101421e9538b04c1c","ref":"refs/heads/v2-test-runtime-deps","pushedAt":"2024-01-30T06:21:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Fix MetaPathFinder issue","shortMessageHtmlLink":"Fix MetaPathFinder issue"}},{"before":"84833e07c7c99af02265d38083890d8e3376173e","after":"0b4524c0c72024bd80df018e2079f22d8a5183bd","ref":"refs/heads/test-runtime-deps","pushedAt":"2024-01-30T05:04:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Introduce dependency test suite\n\nThe plan is to build out this test suite to test against the AWS\nCLI's dependencies to help facilitate dependency upgrades.\n\nTo start, this test suite contains the following new test cases\nto better monitor the overall dependency closure of the awscli\npackage:\n\n* Assert expected packages in runtime closure. This will alert\n us if a dependency introduces a new transitive depenency\n to the AWS CLI closure.\n\n* Assert expected unbounded dependencies in runtime closure.\n Specifically these are dependencies that do not have a version\n ceiling. This will alert us if a new unbounded dependency is\n introduced into the AWS CLI runtime dependency closure.\n\nSee additional implementation notes below:\n\n* These tests were broken into a separate test suite (i.e. instead\n of adding them to the unit and functional test suite) to allow\n more granularity when running them. Specifically, it is useful for:\n\n 1. Avoiding the main unit and functional CI test suite from failing\n if a dependency changes from underneath of us (e.g. a new build\n dependency is added that we cannot control).\n\n 2. For individuals that package the awscli, they generally will not\n want to run this test suite as it is fairly specific to how pip\n installs dependencies.\n\n* To determine the runtime dependency closure, the Package and DependencyClosure\n utilities traverse the dist-info METADATA files of the packages installed in\n the current site packages to build the runtime graph. This approach was chosen\n because:\n\n 1. Since pip already installed the package, this logic avoids having to\n reconstruct the logic of how pip decides to resolve dependencies to figure\n out how to traverse the runtime graph. Any custom logic may deviate from\n how pip behaves which is what most users will be using to install the awscli\n as a Python package\n 2. It's faster. The runtime closure test cases do not require downloading or\n installing any additional packages.","shortMessageHtmlLink":"Introduce dependency test suite"}},{"before":"c8d8bb9124291dddf1ad2adfea78d81c71fcd594","after":"b2fbe9bba677dfae3b784f65f8925e3322513173","ref":"refs/heads/v2-test-runtime-deps","pushedAt":"2024-01-30T05:00:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Fix some bugs","shortMessageHtmlLink":"Fix some bugs"}},{"before":"6df3f9e23e2bd2a5625ecf7a6b6c79f21dc7244c","after":"c8d8bb9124291dddf1ad2adfea78d81c71fcd594","ref":"refs/heads/v2-test-runtime-deps","pushedAt":"2024-01-30T04:42:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Add v2 specific changes","shortMessageHtmlLink":"Add v2 specific changes"}},{"before":"216ea884b7d301cfefa73c79c7e37a1854b8947e","after":"6df3f9e23e2bd2a5625ecf7a6b6c79f21dc7244c","ref":"refs/heads/v2-test-runtime-deps","pushedAt":"2024-01-30T04:28:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Add v2 specific changes","shortMessageHtmlLink":"Add v2 specific changes"}},{"before":null,"after":"216ea884b7d301cfefa73c79c7e37a1854b8947e","ref":"refs/heads/v2-test-runtime-deps","pushedAt":"2024-01-30T04:26:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Introduce dependency test suite\n\nThe plan is to build out this test suite to test against the AWS\nCLI's dependencies to help facilitate dependency upgrades.\n\nTo start, this test suite contains the following new test cases\nto better monitor the overall dependency closure of the awscli\npackage:\n\n* Assert expected packages in runtime closure. This will alert\n us if a dependency introduces a new transitive depenency\n to the AWS CLI closure.\n\n* Assert expected unbounded dependencies in runtime closure.\n Specifically these are dependencies that do not have a version\n ceiling. This will alert us if a new unbounded dependency is\n introduced into the AWS CLI runtime dependency closure.\n\nSee additional implementation notes below:\n\n* These tests were broken into a separate test suite (i.e. instead\n of adding them to the unit and functional test suite) to allow\n more granularity when running them. Specifically, it is useful for:\n\n 1. Avoiding the main unit and functional CI test suite from failing\n if a dependency changes from underneath of us (e.g. a new build\n dependency is added that we cannot control).\n\n 2. For individuals that package the awscli, they generally will not\n want to run this test suite as it is fairly specific to how pip\n installs dependencies.\n\n* To determine the runtime dependency closure, the Package and DependencyClosure\n utilities traverse the dist-info METADATA files of the packages installed in\n the current site packages to build the runtime graph. This approach was chosen\n because:\n\n 1. Since pip already installed the package, this logic avoids having to\n reconstruct the logic of how pip decides to resolve dependencies to figure\n out how to traverse the runtime graph. Any custom logic may deviate from\n how pip behaves which is what most users will be using to install the awscli\n as a Python package\n 2. It's faster. The runtime closure test cases do not require downloading or\n installing any additional packages.","shortMessageHtmlLink":"Introduce dependency test suite"}},{"before":"3703ada017a4459559f9f385e8d7f8d201f6a529","after":"84833e07c7c99af02265d38083890d8e3376173e","ref":"refs/heads/test-runtime-deps","pushedAt":"2024-01-30T03:39:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Introduce dependency test suite\n\nThe plan is to build out this test suite to test against the AWS\nCLI's dependencies to help facilitate dependency upgrades.\n\nTo start, this test suite contains the following new test cases\nto better monitor the overall dependency closure of the awscli\npackage:\n\n* Assert expected packages in runtime closure. This will alert\n us if a dependency introduces a new transitive depenency\n to the AWS CLI closure.\n\n* Assert expected unbounded dependencies in runtime closure.\n Specifically these are dependencies that do not have a version\n ceiling. This will alert us if a new unbounded dependency is\n introduced into the AWS CLI runtime dependency closure.\n\nSee additional implementation notes below:\n\n* These tests were broken into a separate test suite (i.e. instead\n of adding them to the unit and functional test suite) to allow\n more granularity when running them. Specifically, it is useful for:\n\n 1. Avoiding the main unit and functional CI test suite from failing\n if a dependency changes from underneath of us (e.g. a new build\n dependency is added that we cannot control).\n\n 2. For individuals that package the awscli, they generally will not\n want to run this test suite as it is fairly specific to how pip\n installs dependencies.\n\n* To determine the runtime dependency closure, the Package and DependencyClosure\n utilities traverse the dist-info METADATA files of the packages installed in\n the current site packages to build the runtime graph. This approach was chosen\n because:\n\n 1. Since pip already installed the package, this logic avoids having to\n reconstruct the logic of how pip decides to resolve dependencies to figure\n out how to traverse the runtime graph. Any custom logic may deviate from\n how pip behaves which is what most users will be using to install the awscli\n as a Python package\n 2. It's faster. The runtime closure test cases do not require downloading or\n installing any additional packages.","shortMessageHtmlLink":"Introduce dependency test suite"}},{"before":null,"after":"3703ada017a4459559f9f385e8d7f8d201f6a529","ref":"refs/heads/test-runtime-deps","pushedAt":"2024-01-30T01:36:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Update tests to be runtime deps","shortMessageHtmlLink":"Update tests to be runtime deps"}},{"before":"c0ec804aec731b45c87f87b7227af99d132fe6d8","after":"18cd651f2650026296fa3b0f4cd47e04be938789","ref":"refs/heads/test-dep-closure","pushedAt":"2024-01-29T05:38:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyleknap","name":"Kyle Knapp","path":"/kyleknap","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4605355?s=80&v=4"},"commit":{"message":"Introduce dependency test suite\n\nThe plan is to build out this test suite to test against the AWS\nCLI's dependencies to help facilitate dependency upgrades.\n\nTo start, this test suite contains the following new test cases\nto better monitor the overall dependency closure of the awscli\npackage:\n\n* Assert expected packages in runtime closure. This will alert\n us if a dependency introduces a new transitive depenency\n to the AWS CLI closure.\n\n* Assert expected unbounded dependencies in runtime closure.\n Specifically these are dependencies that do not have a version\n ceiling. This will alert us if a new unbounded dependency is\n introduced into the AWS CLI runtime dependency closure.\n\n* Assert expected packages used in building the awscli package\n and any of its runtime dependencies. Specifically, this\n targets the use case of a user installing the awscli\n (and all of its dependencies) from sdist as it will capture\n which build packages are pulled into the isolated virtual\n environment when building the package.\n\n* Assert expected unbounded dependencies in building the awscli\n package and any of its runtime dependencies. This helps monitor\n out of all of the build packages used, which ones may have no\n version ceiling when installed into an isolated virutal environment\n\nSee additional implementation notes below:\n\n* These tests were broken into a separate test suite (i.e. instead\n of adding them to the unit and functional test suite) to allow\n more granularity when running them. Specifically, it is useful for:\n\n 1. Avoiding the main unit and functional CI test suite from failing\n if a dependency changes from underneath of us (e.g. a new build\n dependency is added that we cannot control).\n\n 2. For individuals that package the awscli, they generally will not\n want to run this test suite as it is fairly specific to how pip\n installs dependencies.\n\n 3. The tests currently run between 3-5 minutes, which would significantly\n slow down the unit/functional test runs. Having it in a seperate directory\n allows you to only run the dependency test suite if you are making a change\n in dependencies.\n\n* To determine the runtime dependency closure, the Package and DependencyClosure\n utilities traverse the dist-info METADATA files of the packages installed in\n the current site packages to build the runtime graph. This approach was chosen\n because:\n\n 1. Since pip already installed the package, this logic avoids having to\n reconstruct the logic of how pip decides to resolve dependencies to figure\n out how to traverse the runtime graph. Any custom logic may deviate from\n how pip behaves which is what most users will be using to install the awscli\n as a Python package\n 2. It's faster. The runtime closure test cases do not require downloading or\n installing any additional packages.\n\n* To determine the build dependency closure of each package in the awscli runtime\n closure, the Package and DependencyClosure utilities leverage the \"build\" package\n to invoke PEP517 hooks to collect which packages are needed to build both the sdist\n and wheel. Relying on PEP517 hooks is really the only standard that can be relied on\n to derive the build dependencies as they can be dynamically generated as part of\n invoking a build backend. The \"build\" package was chosen to invoke the PEP517 hooks\n because:\n\n 1. It has helpful higher level utilities to capture the results from the hooks if\n provided a virtualenv and project path. This would have been a significant amount\n of scaffolding to produce our own PEP517 hook invoker utilities.\n 2. It has compatibility logic on how to handle projects that do not include a\n pyproject.toml and automatically can invoke the correct build backend (e.g.\n falls back to the legacy setuptools backend when needed) when a build backend\n is not declared.","shortMessageHtmlLink":"Introduce dependency test suite"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWDaE8AA","startCursor":null,"endCursor":null}},"title":"Activity ยท kyleknap/aws-cli"}