-
Notifications
You must be signed in to change notification settings - Fork 825
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: feature flag for Lazy Loading and Custom Selection Set support #11566
Conversation
Codecov Report
@@ Coverage Diff @@
## dev #11566 +/- ##
=======================================
Coverage 50.07% 50.07%
=======================================
Files 702 702
Lines 33926 33926
Branches 6963 6963
=======================================
+ Hits 16987 16989 +2
+ Misses 15453 15451 -2
Partials 1486 1486
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
54720b3
to
1cf8e18
Compare
Is this intended to be for iOS only, or used for all native platforms? |
Hi @alharris-at, this was originally specific to iOS, and after further discussion with @phani-srikar , we renamed it from |
As long we leave the flag defaulting to false, I'm okay with that, but the risk it introduces is that the flag will be defaulting to true for new projects when we enable for ios, then when we add codegen functionality for android it'll be a breaking change for customers with old projects using android (since they're not opting in, their types will just break unless they also update the runtime lib, or their callsite code, or whatever the impact of breaking here is). |
@alharris-at, that sounds good. I added a note over on the Android PR (aws-amplify/amplify-android#2171) that this feature flag can be used for gating the codegen changes. I believe a shared flag is the right way to go, which will reduce polluting the number of feature flags available. We will enable to true once the feature exists on all platforms (that requires using the feature flag). Added note to the PR description:
|
…aws-amplify#11566) * chore: feature flag for iOS LazyReference and ModelPath support * update FF naming
* chore: Persist cfn exceptions in usage metrics * Add a tab between different cfn error messages * refactor filtering the stacks with error * build(deps): bump json5 from 1.0.1 to 1.0.2 (#11697) Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](json5/json5@v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ci: fix cleanup script throttling (#11716) * ci: update cleanup script to reduce throttling * chore: add extract api file * ci: fix condition * chore: cleanup * chore: add back logs * chore: move cleanup to start to avoid deleting apps while running * chore: update cleanup script * chore: revert build change * chore: fix md file * chore: cleanup * chore: address pr feedback * chore: comments * chore: refactor * chore: fix lint issues * chore: feature flag for Lazy Loading and Custom Selection Set support (#11566) * chore: feature flag for iOS LazyReference and ModelPath support * update FF naming * chore: add debug command to all e2e tests * fix: status command with --debug flag * feat: revamp help command (#11667) * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command (resolving merge conflicts) * feat: revamp help command (remove non-null assertions) * feat: revamp help command (remove non-null assertions) * feat: revamp help command (revisions) * feat: revamp help command (revisions) * feat: revamp help command (revisions) * feat: revamp help command (update to use array find) * feat: revamp help command (switch to single quotes) * feat: revamp help command (switch to single quotes) * feat: revamp help command (put imports on same line) * feat: revamp help command (extract api) * feat: revamp help command (prettier on help-helpers) * feat: revamp help command (fix tag line) * feat: revamp help command (changing test names) * feat: revamp help command (refactoring preserveHelpInformation) * fix(global-prefix): remove global-prefix package (#11408) * fix: update prepush hook to clean and rebuild before running verify extract api (#11753) * chore: add codeql scanning (#11518) * chore: add codeql scanning * fix: added quality scan to codeql * fix: make prompter multi-select indicator more distinct (#11742) * Convert back to async method * Add some method comments * fix type in the comments Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: awsluja <110861985+awsluja@users.noreply.github.com> Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: Pavel Lazar <lazar.pavel@gmail.com> Co-authored-by: Zachary Goldberg <117126550+goldbez@users.noreply.github.com> Co-authored-by: MorCohenAres <85824494+MorCohenAres@users.noreply.github.com> Co-authored-by: Spencer Stolworthy <sdstolworthy@gmail.com> Co-authored-by: Edward Foyle <foyleef@amazon.com>
* chore: migrate custom category from inquirer to prompter library * chore: Replace inquirer with amplify-prompts in amplify-category-analytics package * fix: custom category prompter tests * refactor: clean up dependencies in package.json, update messaging in pinpoing-walktrhough, update e2e tests for kinesis and pinpoint prompts * chore: bump codegen version * test: update snapshot after codegen version change * chore: bump api category dependencies to @aws-amplify/amplify-category-api@4.1.5 * fix: cfn ambda outputs when forcePush flag is used * fix: add to migration test list * fix: address comments * fix: removes git clone windows test * chore: removes redundant import * fix: revert windows test * fix: extract api call * fix: set NoEcho flag on OAuth creds CFN param * chore(release): Publish latest [ci skip] - amplify-app@4.3.7 - @aws-amplify/amplify-appsync-simulator@2.9.1 - amplify-category-analytics@4.3.1 - @aws-amplify/amplify-category-auth@2.14.1 - @aws-amplify/amplify-category-custom@2.6.1 - amplify-category-function@4.2.3 - amplify-category-geo@2.10.2 - amplify-category-hosting@3.4.7 - amplify-category-interactions@4.2.1 - amplify-category-notifications@2.22.1 - amplify-category-predictions@4.2.3 - @aws-amplify/amplify-category-storage@3.6.3 - amplify-category-xr@3.3.7 - amplify-cli-core@3.5.1 - @aws-amplify/cli-extensibility-helper@2.4.7 - @aws-amplify/cli@10.6.2 - @aws-amplify/cli-internal@10.6.2 - amplify-console-hosting@2.3.7 - @aws-amplify/amplify-console-integration-tests@2.6.2 - amplify-container-hosting@2.5.8 - amplify-dotnet-function-template-provider@2.4.1 - amplify-dynamodb-simulator@2.5.3 - @aws-amplify/amplify-e2e-core@4.6.1 - amplify-e2e-tests@3.16.1 - @aws-amplify/amplify-environment-parameters@1.3.1 - amplify-frontend-ios@3.5.7 - amplify-frontend-javascript@3.7.3 - amplify-go-function-runtime-provider@2.3.7 - amplify-graphql-migration-tests@2.3.6 - amplify-java-function-runtime-provider@2.3.7 - @aws-amplify/amplify-migration-tests@5.3.1 - amplify-nodejs-function-runtime-provider@2.3.7 - amplify-nodejs-function-template-provider@2.6.2 - @aws-amplify/amplify-opensearch-simulator@1.1.2 - amplify-provider-awscloudformation@6.10.1 - amplify-python-function-runtime-provider@2.4.7 - amplify-util-mock@4.7.2 - @aws-amplify/amplify-util-uibuilder@1.6.5 * ci: e2e multi-core optimizations (#11685) * ci: migrated to new test strategy * chore: add other tests and migration too * chore: cleanup * chore: cleanup * chore: cleanup unused e2e tests * chore: remove generated file * chore: remove parallelization blocker * chore: force parallel runs * chore: cleanup test list * chore: disable retries and cleanup exclusions * chore: bump test count to fill gaps * chore: move random id earlier in project name * chore: update yarn version * chore: fix typo * chore: try to fix delete issues * chore: fix teardown on delete error * ci: create custom file system mutex * chore: cleanup logs * ci: increase randomness of initial lock creation * chore: move migration tests to small isolated vms * chore: adjust concurrency * chore: update naming * ci: update reporter to better handle concurrent tests * ci: add use parent account exceptions * chore: cleanup naming, fix windows artifacts * chore: use data to optimize test scheduling * chore: cleanup * chore: cleanup * chore: fix call flow * chore: workaround duplicate spinner bugs * ci: split api_2 test * chore: increase push timeout * ci: add method to run solo tests * ci: configure retries compatible with worker pools * ci: workaround concurrent polling limits * chore: fix bug with solo tests * chore: move import & geo tests to run solo * chore: add artifact scripts * chore: trigger workflow results * ci: fix artifact path * chore: cleanup * chore: add timer spy * ci: update test lists * chore: cleanup * ci: fix retries * ci: move delays to createProjectDir * ci: use same script for e2e as linux on windows * chore: split storage-1 test * ci: fix config * ci: add bash env * ci: reduce timeout on push * ci: update test lists * ci: update test lists * ci: lower timeout and enable concurrent migration testing * ci: update test list * ci: restructure migration test setups * ci: cleanup to use file names instead of old job names * chore: refactor * ci: fix dependencies * ci: attempt to fix retry on windows * chore: revert retry changes * chore: undo changes to addCircleCiTags * chore: address PR feedback * chore: undo changes to spinners * chore: cleanup unused files * chore: lint & formatting * chore: lint, remove unused import * chore: undo changes to initialize-env.ts * chore: removed overly complicated and confusing logic in pinpoint walkthrough * ci: windows smoke test list (#11797) * ci: migrated to new test strategy * chore: add other tests and migration too * chore: cleanup * chore: cleanup * chore: cleanup unused e2e tests * chore: remove generated file * chore: remove parallelization blocker * chore: force parallel runs * chore: cleanup test list * chore: disable retries and cleanup exclusions * chore: bump test count to fill gaps * chore: move random id earlier in project name * chore: update yarn version * chore: fix typo * chore: try to fix delete issues * chore: fix teardown on delete error * ci: create custom file system mutex * chore: cleanup logs * ci: increase randomness of initial lock creation * chore: move migration tests to small isolated vms * chore: adjust concurrency * chore: update naming * ci: update reporter to better handle concurrent tests * ci: add use parent account exceptions * chore: cleanup naming, fix windows artifacts * chore: use data to optimize test scheduling * chore: cleanup * chore: cleanup * chore: fix call flow * chore: workaround duplicate spinner bugs * ci: split api_2 test * chore: increase push timeout * ci: add method to run solo tests * ci: configure retries compatible with worker pools * ci: workaround concurrent polling limits * chore: fix bug with solo tests * chore: move import & geo tests to run solo * chore: add artifact scripts * chore: trigger workflow results * ci: fix artifact path * chore: cleanup * chore: add timer spy * ci: update test lists * chore: cleanup * ci: fix retries * ci: move delays to createProjectDir * ci: use same script for e2e as linux on windows * chore: split storage-1 test * ci: fix config * ci: add bash env * ci: reduce timeout on push * ci: update test lists * ci: update test lists * ci: lower timeout and enable concurrent migration testing * ci: update test list * ci: restructure migration test setups * ci: cleanup to use file names instead of old job names * chore: refactor * ci: fix dependencies * ci: attempt to fix retry on windows * chore: revert retry changes * chore: undo changes to addCircleCiTags * chore: address PR feedback * chore: undo changes to spinners * chore: cleanup unused files * chore: lint & formatting * chore: lint, remove unused import * chore: undo changes to initialize-env.ts * ci: windows smoke test list for non-dev branches * chore: remove verify-api pre-push hook (#11799) * fix: remove production env variable from amplify script execution * fix: do not overload NODE_ENV env parameter for usage data filtering * fix: do not overload NODE_ENV env parameter for usage data filtering * fix: do not overload NODE_ENV env parameter for usage data filtering * fix: test timeouts on simulator tests (#11804) * ci: fix staleness filters (#11801) * ci: fix staleness filters * ci: only delete stale apps & stacks * chore: refactor * chore: migrate interactions category from inquirer to prompter library * fix: default values for interactions prompter * chore: addressed PR feedback * chore: addressed PR feedback * chore: Persist downstream exceptions in usage metrics (#11711) * chore: Persist downstream exceptions in usage metrics * fix variable name case * chore: Populate cfn exceptions messages in AmplifyFault (#11764) * chore: Persist cfn exceptions in usage metrics * Add a tab between different cfn error messages * refactor filtering the stacks with error * build(deps): bump json5 from 1.0.1 to 1.0.2 (#11697) Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](json5/json5@v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ci: fix cleanup script throttling (#11716) * ci: update cleanup script to reduce throttling * chore: add extract api file * ci: fix condition * chore: cleanup * chore: add back logs * chore: move cleanup to start to avoid deleting apps while running * chore: update cleanup script * chore: revert build change * chore: fix md file * chore: cleanup * chore: address pr feedback * chore: comments * chore: refactor * chore: fix lint issues * chore: feature flag for Lazy Loading and Custom Selection Set support (#11566) * chore: feature flag for iOS LazyReference and ModelPath support * update FF naming * chore: add debug command to all e2e tests * fix: status command with --debug flag * feat: revamp help command (#11667) * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command (resolving merge conflicts) * feat: revamp help command (remove non-null assertions) * feat: revamp help command (remove non-null assertions) * feat: revamp help command (revisions) * feat: revamp help command (revisions) * feat: revamp help command (revisions) * feat: revamp help command (update to use array find) * feat: revamp help command (switch to single quotes) * feat: revamp help command (switch to single quotes) * feat: revamp help command (put imports on same line) * feat: revamp help command (extract api) * feat: revamp help command (prettier on help-helpers) * feat: revamp help command (fix tag line) * feat: revamp help command (changing test names) * feat: revamp help command (refactoring preserveHelpInformation) * fix(global-prefix): remove global-prefix package (#11408) * fix: update prepush hook to clean and rebuild before running verify extract api (#11753) * chore: add codeql scanning (#11518) * chore: add codeql scanning * fix: added quality scan to codeql * fix: make prompter multi-select indicator more distinct (#11742) * Convert back to async method * Add some method comments * fix type in the comments Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: awsluja <110861985+awsluja@users.noreply.github.com> Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: Pavel Lazar <lazar.pavel@gmail.com> Co-authored-by: Zachary Goldberg <117126550+goldbez@users.noreply.github.com> Co-authored-by: MorCohenAres <85824494+MorCohenAres@users.noreply.github.com> Co-authored-by: Spencer Stolworthy <sdstolworthy@gmail.com> Co-authored-by: Edward Foyle <foyleef@amazon.com> * chore: addressed PR feedback * chore: script to allow simple collection of coverage from all projects (#11798) * chore: add coverage collection script for local unit tests runs * fix: remove unused import * fix: updated dev dependencies * fix: added file level doc, filtered out unwanted coverage on e2e, lib, and test files * fix: more descriptive filename for the script * chore: addressed PR feedback * fix: prompt string to match e2e (#11816) Co-authored-by: Akshay Upadhyay <akz@amazon.com> * chore: correctly filter failed cfn events for displaying error messages (#11815) * chore: do not filter AWS::CloudFormation::Stack type failure events if they have valid error message * Update packages/amplify-provider-awscloudformation/src/aws-utils/aws-cfn.js Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pavel Lazar <lazar.pavel@gmail.com> Co-authored-by: kuhlmanp <119457106+kuhlmanp@users.noreply.github.com> Co-authored-by: phani-srikar <phanisrikar93ume@gmail.com> Co-authored-by: Al Harris <alharris@amazon.com> Co-authored-by: Akshay Upadhyay <akz@amazon.com> Co-authored-by: Edward Foyle <foyleef@amazon.com> Co-authored-by: aws-amplify-bot <aws@amazon.com> Co-authored-by: Pavel Lazar <85319655+lazpavel@users.noreply.github.com> Co-authored-by: Danielle Adams <damsnmd@amazon.com> Co-authored-by: awsluja <110861985+awsluja@users.noreply.github.com> Co-authored-by: Spencer Stolworthy <sdstolworthy@gmail.com> Co-authored-by: Amplifiyer <51211245+Amplifiyer@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: Zachary Goldberg <117126550+goldbez@users.noreply.github.com> Co-authored-by: MorCohenAres <85824494+MorCohenAres@users.noreply.github.com> Co-authored-by: Spencer Stolworthy <sstol@amazon.com> Co-authored-by: akshbhu <39866697+akshbhu@users.noreply.github.com>
* chore: migrate custom category from inquirer to prompter library * chore: Replace inquirer with amplify-prompts in amplify-category-analytics package * fix: custom category prompter tests * refactor: clean up dependencies in package.json, update messaging in pinpoing-walktrhough, update e2e tests for kinesis and pinpoint prompts * chore: bump codegen version * test: update snapshot after codegen version change * chore: bump api category dependencies to @aws-amplify/amplify-category-api@4.1.5 * fix: cfn ambda outputs when forcePush flag is used * fix: add to migration test list * fix: address comments * fix: removes git clone windows test * chore: removes redundant import * fix: revert windows test * fix: extract api call * fix: set NoEcho flag on OAuth creds CFN param * chore(release): Publish latest [ci skip] - amplify-app@4.3.7 - @aws-amplify/amplify-appsync-simulator@2.9.1 - amplify-category-analytics@4.3.1 - @aws-amplify/amplify-category-auth@2.14.1 - @aws-amplify/amplify-category-custom@2.6.1 - amplify-category-function@4.2.3 - amplify-category-geo@2.10.2 - amplify-category-hosting@3.4.7 - amplify-category-interactions@4.2.1 - amplify-category-notifications@2.22.1 - amplify-category-predictions@4.2.3 - @aws-amplify/amplify-category-storage@3.6.3 - amplify-category-xr@3.3.7 - amplify-cli-core@3.5.1 - @aws-amplify/cli-extensibility-helper@2.4.7 - @aws-amplify/cli@10.6.2 - @aws-amplify/cli-internal@10.6.2 - amplify-console-hosting@2.3.7 - @aws-amplify/amplify-console-integration-tests@2.6.2 - amplify-container-hosting@2.5.8 - amplify-dotnet-function-template-provider@2.4.1 - amplify-dynamodb-simulator@2.5.3 - @aws-amplify/amplify-e2e-core@4.6.1 - amplify-e2e-tests@3.16.1 - @aws-amplify/amplify-environment-parameters@1.3.1 - amplify-frontend-ios@3.5.7 - amplify-frontend-javascript@3.7.3 - amplify-go-function-runtime-provider@2.3.7 - amplify-graphql-migration-tests@2.3.6 - amplify-java-function-runtime-provider@2.3.7 - @aws-amplify/amplify-migration-tests@5.3.1 - amplify-nodejs-function-runtime-provider@2.3.7 - amplify-nodejs-function-template-provider@2.6.2 - @aws-amplify/amplify-opensearch-simulator@1.1.2 - amplify-provider-awscloudformation@6.10.1 - amplify-python-function-runtime-provider@2.4.7 - amplify-util-mock@4.7.2 - @aws-amplify/amplify-util-uibuilder@1.6.5 * ci: e2e multi-core optimizations (#11685) * ci: migrated to new test strategy * chore: add other tests and migration too * chore: cleanup * chore: cleanup * chore: cleanup unused e2e tests * chore: remove generated file * chore: remove parallelization blocker * chore: force parallel runs * chore: cleanup test list * chore: disable retries and cleanup exclusions * chore: bump test count to fill gaps * chore: move random id earlier in project name * chore: update yarn version * chore: fix typo * chore: try to fix delete issues * chore: fix teardown on delete error * ci: create custom file system mutex * chore: cleanup logs * ci: increase randomness of initial lock creation * chore: move migration tests to small isolated vms * chore: adjust concurrency * chore: update naming * ci: update reporter to better handle concurrent tests * ci: add use parent account exceptions * chore: cleanup naming, fix windows artifacts * chore: use data to optimize test scheduling * chore: cleanup * chore: cleanup * chore: fix call flow * chore: workaround duplicate spinner bugs * ci: split api_2 test * chore: increase push timeout * ci: add method to run solo tests * ci: configure retries compatible with worker pools * ci: workaround concurrent polling limits * chore: fix bug with solo tests * chore: move import & geo tests to run solo * chore: add artifact scripts * chore: trigger workflow results * ci: fix artifact path * chore: cleanup * chore: add timer spy * ci: update test lists * chore: cleanup * ci: fix retries * ci: move delays to createProjectDir * ci: use same script for e2e as linux on windows * chore: split storage-1 test * ci: fix config * ci: add bash env * ci: reduce timeout on push * ci: update test lists * ci: update test lists * ci: lower timeout and enable concurrent migration testing * ci: update test list * ci: restructure migration test setups * ci: cleanup to use file names instead of old job names * chore: refactor * ci: fix dependencies * ci: attempt to fix retry on windows * chore: revert retry changes * chore: undo changes to addCircleCiTags * chore: address PR feedback * chore: undo changes to spinners * chore: cleanup unused files * chore: lint & formatting * chore: lint, remove unused import * chore: undo changes to initialize-env.ts * chore: removed overly complicated and confusing logic in pinpoint walkthrough * ci: windows smoke test list (#11797) * ci: migrated to new test strategy * chore: add other tests and migration too * chore: cleanup * chore: cleanup * chore: cleanup unused e2e tests * chore: remove generated file * chore: remove parallelization blocker * chore: force parallel runs * chore: cleanup test list * chore: disable retries and cleanup exclusions * chore: bump test count to fill gaps * chore: move random id earlier in project name * chore: update yarn version * chore: fix typo * chore: try to fix delete issues * chore: fix teardown on delete error * ci: create custom file system mutex * chore: cleanup logs * ci: increase randomness of initial lock creation * chore: move migration tests to small isolated vms * chore: adjust concurrency * chore: update naming * ci: update reporter to better handle concurrent tests * ci: add use parent account exceptions * chore: cleanup naming, fix windows artifacts * chore: use data to optimize test scheduling * chore: cleanup * chore: cleanup * chore: fix call flow * chore: workaround duplicate spinner bugs * ci: split api_2 test * chore: increase push timeout * ci: add method to run solo tests * ci: configure retries compatible with worker pools * ci: workaround concurrent polling limits * chore: fix bug with solo tests * chore: move import & geo tests to run solo * chore: add artifact scripts * chore: trigger workflow results * ci: fix artifact path * chore: cleanup * chore: add timer spy * ci: update test lists * chore: cleanup * ci: fix retries * ci: move delays to createProjectDir * ci: use same script for e2e as linux on windows * chore: split storage-1 test * ci: fix config * ci: add bash env * ci: reduce timeout on push * ci: update test lists * ci: update test lists * ci: lower timeout and enable concurrent migration testing * ci: update test list * ci: restructure migration test setups * ci: cleanup to use file names instead of old job names * chore: refactor * ci: fix dependencies * ci: attempt to fix retry on windows * chore: revert retry changes * chore: undo changes to addCircleCiTags * chore: address PR feedback * chore: undo changes to spinners * chore: cleanup unused files * chore: lint & formatting * chore: lint, remove unused import * chore: undo changes to initialize-env.ts * ci: windows smoke test list for non-dev branches * chore: remove verify-api pre-push hook (#11799) * fix: remove production env variable from amplify script execution * fix: do not overload NODE_ENV env parameter for usage data filtering * fix: do not overload NODE_ENV env parameter for usage data filtering * fix: do not overload NODE_ENV env parameter for usage data filtering * fix: test timeouts on simulator tests (#11804) * ci: fix staleness filters (#11801) * ci: fix staleness filters * ci: only delete stale apps & stacks * chore: refactor * chore: migrate interactions category from inquirer to prompter library * fix: default values for interactions prompter * chore: addressed PR feedback * chore: addressed PR feedback * chore: Persist downstream exceptions in usage metrics (#11711) * chore: Persist downstream exceptions in usage metrics * fix variable name case * chore: Populate cfn exceptions messages in AmplifyFault (#11764) * chore: Persist cfn exceptions in usage metrics * Add a tab between different cfn error messages * refactor filtering the stacks with error * build(deps): bump json5 from 1.0.1 to 1.0.2 (#11697) Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](json5/json5@v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ci: fix cleanup script throttling (#11716) * ci: update cleanup script to reduce throttling * chore: add extract api file * ci: fix condition * chore: cleanup * chore: add back logs * chore: move cleanup to start to avoid deleting apps while running * chore: update cleanup script * chore: revert build change * chore: fix md file * chore: cleanup * chore: address pr feedback * chore: comments * chore: refactor * chore: fix lint issues * chore: feature flag for Lazy Loading and Custom Selection Set support (#11566) * chore: feature flag for iOS LazyReference and ModelPath support * update FF naming * chore: add debug command to all e2e tests * fix: status command with --debug flag * feat: revamp help command (#11667) * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command * feat: revamp help command (resolving merge conflicts) * feat: revamp help command (remove non-null assertions) * feat: revamp help command (remove non-null assertions) * feat: revamp help command (revisions) * feat: revamp help command (revisions) * feat: revamp help command (revisions) * feat: revamp help command (update to use array find) * feat: revamp help command (switch to single quotes) * feat: revamp help command (switch to single quotes) * feat: revamp help command (put imports on same line) * feat: revamp help command (extract api) * feat: revamp help command (prettier on help-helpers) * feat: revamp help command (fix tag line) * feat: revamp help command (changing test names) * feat: revamp help command (refactoring preserveHelpInformation) * fix(global-prefix): remove global-prefix package (#11408) * fix: update prepush hook to clean and rebuild before running verify extract api (#11753) * chore: add codeql scanning (#11518) * chore: add codeql scanning * fix: added quality scan to codeql * fix: make prompter multi-select indicator more distinct (#11742) * Convert back to async method * Add some method comments * fix type in the comments Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: awsluja <110861985+awsluja@users.noreply.github.com> Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: Pavel Lazar <lazar.pavel@gmail.com> Co-authored-by: Zachary Goldberg <117126550+goldbez@users.noreply.github.com> Co-authored-by: MorCohenAres <85824494+MorCohenAres@users.noreply.github.com> Co-authored-by: Spencer Stolworthy <sdstolworthy@gmail.com> Co-authored-by: Edward Foyle <foyleef@amazon.com> * chore: addressed PR feedback * chore: script to allow simple collection of coverage from all projects (#11798) * chore: add coverage collection script for local unit tests runs * fix: remove unused import * fix: updated dev dependencies * fix: added file level doc, filtered out unwanted coverage on e2e, lib, and test files * fix: more descriptive filename for the script * chore: addressed PR feedback * fix: prompt string to match e2e (#11816) Co-authored-by: Akshay Upadhyay <akz@amazon.com> * chore: correctly filter failed cfn events for displaying error messages (#11815) * chore: do not filter AWS::CloudFormation::Stack type failure events if they have valid error message * Update packages/amplify-provider-awscloudformation/src/aws-utils/aws-cfn.js Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pavel Lazar <lazar.pavel@gmail.com> Co-authored-by: kuhlmanp <119457106+kuhlmanp@users.noreply.github.com> Co-authored-by: phani-srikar <phanisrikar93ume@gmail.com> Co-authored-by: Al Harris <alharris@amazon.com> Co-authored-by: Akshay Upadhyay <akz@amazon.com> Co-authored-by: Edward Foyle <foyleef@amazon.com> Co-authored-by: aws-amplify-bot <aws@amazon.com> Co-authored-by: Pavel Lazar <85319655+lazpavel@users.noreply.github.com> Co-authored-by: Danielle Adams <damsnmd@amazon.com> Co-authored-by: awsluja <110861985+awsluja@users.noreply.github.com> Co-authored-by: Spencer Stolworthy <sdstolworthy@gmail.com> Co-authored-by: Amplifiyer <51211245+Amplifiyer@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Michael Law <1365977+lawmicha@users.noreply.github.com> Co-authored-by: Zachary Goldberg <117126550+goldbez@users.noreply.github.com> Co-authored-by: MorCohenAres <85824494+MorCohenAres@users.noreply.github.com> Co-authored-by: Spencer Stolworthy <sstol@amazon.com> Co-authored-by: akshbhu <39866697+akshbhu@users.noreply.github.com>
Table of contents
Description of changes
This PR adds a new feature flag used by codegen to generate iOS models containing LazyReference usage and ModelPath extension. Related
amplify-codegen
PR: aws-amplify/amplify-codegen#504This feature flag is needed to allow developers a controlled and sequenced upgrade of the Amplify CLI and Amplify Swift library. The latest Amplify Swift 2.x.x library introduces the definition of the new types generated by the codegen process, namely
LazyReference
andModelPath
.This feature flag can also be reused if Android requires a feature flag for the same feature. See Android implementation details and manual codegenerated model changes here aws-amplify/amplify-android#2171
Existing CLI project / Amplify Swift Library 2.x.x
A developer with an existing Amplify CLI project to upgrade the CLI to take on the latest features, fixes, security updates, and allowing them to perform schema upgrades, without taking on this feature yet. They can, for example, add a new model, remove a model, changes model fields, etc using the latest CLI/codegen version without having to install the latest Amplify Swift library and without having to make app code changes due related to the feature, because the feature flag does not exist in the
cli.json
and the library is backwards compatible with previous codegenerated swift models/schemas. This allows the developer a sequenced upgrade by first reviewing the migration guide (TBD link), adding and setting the feature flag totrue
, installing the latest Amplify Swift library, and making the code changes to migrate the code to use the new features. Without this feature flag, developers have to immediately install the latest Amplify Swift library or roll back to a previous codegen version (DX and process unknown to me, whether this is possible at all).Existing CLI project / Amplify Swift Library 1.x.x
The feature flag is even more important in this use case since it will be a much larger API breaking change to go from Amplify Swift Library 1.x.x to 2.x.x as all APIs have been replaced with the latest Swift structured concurrency Async APIs. Existing developers can perform the sequenced upgrade by
generateModelsForLazyLoadAndCustomSelectionSet
to thecli.json
and set it totrue
.amplify codegen models
to generate the latest typesNew CLI project / Amplify Swift Library 2.x.x
This is the "just works" DX where developers create a new CLI project, where the feature flag will be
true
by default for new projects, and they install the Amplify Swift library's latest version of 2.x.x. The Amplify documentation provides guidance and tutorials of the features available in the latest codegen and library.New CLI project / Amplify Swift Library 1.x.x
In some cases, some developers may decide to use the older Amplify Swift Library if there are some features not yet available (such as Predictions, or a particular not-yet-supported auth flow). These developers will have to actively toggle the feature flag to false to generate the swift models and schema files that work with the older Amplify Swift Library.
Release sequence
NOTE: Since this feature flag is shared across frontend platforms, the feature flag can only be set to
true
for default new projects once all platforms that require this feature flag have been released with the feature.JS lazy loading feature and alternative considerations
JS recently released lazy loading in JS 5.x.x (https://aws.amazon.com/blogs/mobile/new-lazy-loading-nested-query-predicates-for-aws-amplify-datastore/) without a feature flag in the CLI/codegen. This is possible because the latest JS codegen works with the previous JS library (4.x.x). This is not possible for iOS due to its codegen process slightly differs from JS. JS's codegen process generates the types at buildtime and constructs the models based on the JSON at runtime. iOS generates the model types directly and so the latest iOS codegen cannot work with previous Amplify library version, because those type definitions (LazyReference/ModelPath) simply does not exist.
Checklist
yarn test
passesBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.