Skip to content

Conversation

@aws-toolkit-automation
Copy link
Collaborator

Automatic merge failed

  • Resolve conflicts and push to this PR branch.
  • Do not squash-merge this PR. Use the "Create a merge commit" option to do a regular merge.

Command line hint

To perform the merge from the command line, you could do something like the following (where "origin" is the name of the remote in your local git repo):

git stash
git fetch --all
git checkout origin/feature/cwltail
git merge origin/master
git commit
git push origin HEAD:refs/heads/autoMerge/feature/cwltail

roger-zhangg and others added 30 commits September 10, 2024 15:45
## Problem
install checker is not iterating through list of possible locations.
Wrong status message
Docker installer check will always fail ->
- Fails on windows becasue docker need to restart to be valid
- Fails on Mac for the installer will exit once the installer GUI popup.

## Solution
fix install checker
remove checking on docker install
## Problem
1: fix template.yaml exist prompt not exiting correctly
2: fix project name in Appbuilder
3: Open readme by defualt when init project

## Solution
## Problem
when doing the local invoke icon, the “invoke and debug configuration”
page is open, but payload doesn’t have anything preselected. Probably
“inline” should be preselected

## Solution
pass check parameter to the input element
## Problem
when doing the local invoke icon, the “invoke and debug configuration”
page is open, but payload doesn’t have anything preselected. Probably
“inline” should be preselected

## Solution
pass check parameter to the input element
…1704)

## Problem

Add metrics for OpenTemplate and OpenHandler

## Solution
## Problem
Remote invoke webview header is undefined

## Solution
Update remote invoke webview header to should name of function instead
of undefined
… in the Config (#1709)

## Problem
I wanted to add the region to my samconfig, and I mistakenly didn’t add
quotes to the region name. That caused that when I refreshed the app
builder, I got an error message saying “Unable to load Resource tree for
this App. Update IaC template”. Which is not correct, since the problem
was in my samconfig and not on the IaC template

## Solution
fix how the app builder handles exception
## Problem
In the remote invoke webview the resource arn was getting overlaped with
the region. 

## Solution
Have corrected the formatting so that if there's a long arn it could be seen by scrolling and does not overflow to the next line
## Problem

add build unit tests

## Solution
## Problem

Support template parameters

## Solution
…me` (#1699)

## Problem
The list of remote test events were not getting displayed because the
function was asking for stackName, which was not getting passed. Changed
the dependency from `stackName` to `functionArn` to make the API call to
get the list of remote test event.

## Solution
…invoke (#1712)

## Problem
This PR addresses the handling of parameters required for invoking
remote test events. To invoke a remote test-events it needs either:
1. `FunctionArn`, or
2. `StackName` and `LogicalId`.

Different entry points provide different sets of parameters:
1. From the "Application Builder" explorer, both `StackName` and
`LogicalId` are available.
2. From the "AWS" explorer, `FunctionArn` is available.

Since both entry points utilize the same function, we need to ensure
that all three parameters (StackName, LogicalId, and FunctionArn) are
passed to the function to accommodate both entry points effectively.

## Solution
This PR adds all three properties to pass to the main function and all
other respective places that leads to the main function.
## Problem
Added unit tests for searching CloudWatch logs attached to a Lambda
function

## Solution
…#1720)

## Problem
String updates needed from doc writer.

I updated some instances of "Application Composer" to "Infrastructure
Composer" where it was in the AppBuilder section but didn't touch it in
other places as I am not sure if Toolkit has a plan to update it exactly
when the name switch happens.

## Solution
## Problem

"invoke local" option is hidden in the menu called “edit sam debug
configuration” which is kinda unintuitive

## Solution

Change was 'Edit SAM Debug Configuration' to 'Local Invoke and Debug
Configuration'
…sed on template.yaml (#1727)

## Problem

When running deploy command, SAM Deploy will always try to locate the
template.yaml file in {WorkspaceURI/template.yaml}. But it should be
{ProjectRoot/template.yaml} since customer may have a work space set up
to have multiple project in the same work space

The build and deploy action should be able to find the correct root
folder path based on template file.

## Solution
1. create a helper function that search within the workspace for root
folder(s) path that contain template.yaml
2. update the `workspaceFolderPrompter()` with options from all root
folder(s) in the workspace
3. For "Deploy" command was invoked on a template.yaml file entry point,
set `projectRoot` to the location of the selected template; remove user
prompt for workspace folder
… Invoke (#1731)

## Problem
Improve the naming ux for function name in remote invoke

## Solution
…rrect local invoke string (#1737)

## Problem
Update Local Invoke Webview name to correct local invoke string

## Solution
## Problem
The PR make changes to the button's color and the class used to define
the button properties. Earlier the class and its properties were defined
by us but now we use vs-code's predefined properties for primary and
secondary buttons.

## Solution
The new UX for Remote Invoke webview looks as shown in the images below:
<img width="796" alt="Screenshot 2024-09-18 at 1 40 05 PM"
src="https://github.com/user-attachments/assets/14e08804-cbee-4e02-93ef-c29594d6843a">
<img width="802" alt="Screenshot 2024-09-18 at 1 40 14 PM"
src="https://github.com/user-attachments/assets/c9370372-9ffa-48e2-bb2c-bae9eead2ccf">
<img width="827" alt="Screenshot 2024-09-18 at 1 40 23 PM"
src="https://github.com/user-attachments/assets/372c4c83-8886-427a-974e-60a6f2c4ea88">
## Problem
The PR make changes to the button's color and the class used to define
the button properties. Earlier the class and its properties were defined
by us but now we use vs-code's predefined properties for primary and
secondary buttons.

## Solution
The new UX for Local Invoke webview looks as shown in the images below:
<img width="874" alt="Screenshot 2024-09-18 at 1 28 43 PM"
src="https://github.com/user-attachments/assets/c6314164-ab46-47af-b7cc-0044ed427939">
<img width="875" alt="Screenshot 2024-09-18 at 1 28 59 PM"
src="https://github.com/user-attachments/assets/8cb12d89-9937-4aa3-bada-10a4b51be726">
<img width="872" alt="Screenshot 2024-09-18 at 1 29 11 PM"
src="https://github.com/user-attachments/assets/17566c20-aa35-4d06-9e7d-93ba0fcde9f3">
## Problem
(drag and drop pattern for sqs→lambda - any runtime) Sidebar failed to
parse my template got below
```
errornotificationsAlerts.ts:40 Error: Element with id file:///Volumes/workplace/visualbuilderbugbash/template.yaml/MyQueue2 is already registered    at i.db (vscode-file://vscode-app/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:156:48720)    at vscode-file://vscode-app/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:156:47553    at Array.map (<anonymous>)    at i.Y (vscode-file://vscode-app/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:156:47535)    at async i.getChildren (vscode-file://vscode-app/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:156:43694)
```

## Solution
For Events, only show Api and HttpApi as resource
Do not register the event again if the event is already registered as a
resource
…al configuration section (#1732)

New local invoke webView for the General configuration section
…ontent (#1729)

## Problem
Local invoke - When specifying a file, the textarea is still editable but it should be read-only. 

## Solution
The intention is that the file is modified elsewhere because the editing experience is more rich. This also helps avoid accidential event modification if customers think the payload is stored in their file, but currently we're just copying the contents into the textarea.
## Problem
To Address a long waited Justin's comment

aws/aws-toolkit-vscode-staging#1665 (comment)
> Code for appBuilder doesn't belong in shared, it belongs in
packages/core/src/awsService/appBuilder/.
> Please rename .../applicationBuilder/ to .../appBuilder/ in any case.

## Solution
Moving our code from `packages/core/src/shared/applicationBuilder` to
`packages/core/src/awsService/appBuilder`
Porting our activation code from
`packages/core/src/awsexplorer/activation.ts` to
`packages/core/src/test/awsService/appBuilder/activation.ts`

# Remaining Changes
There is an upcoming change which will remove the outside dependency for
the following 4 classes in AppBuilder. And other service class like
Cloudformation/AppComposer/Cloudwatch will only reference to the classes
defined in the Shared.
```
../appBuilder/explorer/nodes/deployedNode
'../awsService/appBuilder/explorer/nodes/deployedNode'
'../awsService/appBuilder/explorer/nodes/resourceNode'
'../../awsService/appBuilder/explorer/samProject'
```
aws-toolkit-automation and others added 25 commits October 31, 2024 19:36
Allow users to View and Apply diff when they explictily send code to
Amazon Q using - Fix, Refactor, Optimize and Send To Prompt.

Notes:
- Releasing it all customers
- The View and Apply diff is only retained for first response after Fix,
Refactor, Optimize and Send To Prompt, and NOT for followup chats.
- `featureConfig` is the setup for A/B experiments and`Ignored` by
`tslint` because,
- currently View Diff and Apply Diff are the only feature that uses
these.
- If the changes are reverted the next time any team wants to use it,
they will have to rewire the A/B experiments setup again.
## Problem

QCT wants to support converting embedded SQL in Java apps.

## Solution

Allow users to start a transformation for SQL conversions.

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Co-authored-by: David Hasani <[email protected]>
### Goal:
We want notifications to do things when they are clicked on in the
[panel](https://taskei.amazon.dev/tasks/IDE-14932) or are received by
the IDE. These actions will must be able to be specified by the
notifications [JSON schema
](https://quip-amazon.com/nmB0AxFXuK3i/In-IDE-Notifications#temp:C:EMZ18c352ef42a546ebbe0f9e7c4).
We can update the JSON schema to handle certain actions if necessary.

1. Once received by the IDE, notifications should display a toast
notification. This toast notification should automatically be displayed
only once.
- We can track this in global state (see NotificationsController)
- This toast may shown a truncated form of the full notification text
(description in the schema). This truncation can be automatic or
provided by a new schema key, e.g. descriptionPreview.
- There should be an option to instead display this as a blocking modal,
for extreme circumstances only.
- This toast notification will not include any buttons, 
2. Clicking on the notification in the side panel will do 1 of 3 things:
- Open a url link
- Open a new text document with contents of description
- Open a blocking modal with contents of description and buttons
- The modal can display buttons, e.g. 'update and reload', 'open
external link', 'open in new text window', that perform different
functions respectively

### Results:

> Pop up toast notification on receiving a new notification
![Screenshot 2024-10-28 at 1 20
07 PM](https://github.com/user-attachments/assets/5960d7ee-2b90-47e6-b3b4-a5c8fa995064)

> Blocking pop up modal with options to restart and reload
![Screenshot 2024-10-28 at 1 17
47 PM](https://github.com/user-attachments/assets/a6e9f836-b350-4798-8596-69e3adccd0f0)

> Open URL link
![Screenshot 2024-10-28 at 1 18
32 PM](https://github.com/user-attachments/assets/e01be924-6b39-47c8-b194-1c64e740447d)

> Side view pop up read-only txt document
![Screenshot 2024-10-28 at 1 18
52 PM](https://github.com/user-attachments/assets/a540d01b-eae8-497e-a795-a03f5b096d06)
---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
This is a PR to upgrade LSP to 0.1.24, this LSP contains new APIs for
unit test generation.

## Solution


---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
…fig.toml #5913

## Problem
When customer choose use flag information from `samconfig.toml` for sync
and deploy operations, we assume that all the needed parameters will be
available in the `samconfig.toml`. Only `--config-file <samconfig file
path>` is passed to SAM CLI.

We skip many prompters in such scenario reduce clicking. Yet, we also
need to skip prompter for `ecrRepoUri` and `syncFlag` in sync wizard.

## Solution
Add condition to skip these prompter when flag information from
`samconfig.toml` is used.
## Problem
Explicitly specifying template path in sam deploy command to point to
the build artifact folder makes SAM CLI create/update `samconfig.toml`
in the build artifact folder rather than updating the `samconfig.toml`
file in project root folder.

## Solution
Remove the `--template-path` from deploy flag. SAM will determine the
template in the project folder and write to correct samconfig file
… sends in chat (#5898)

## Problem
- The examples text shows "How can Amazon Q help me?" but when you click
on it it shows "What can Amazon Q help me with?" in chat. This is
confusing to users

## Solution
- Align both the example help text and the prompt message in chat as
"How can Amazon Q help me?"

## Alternative solution
- Align them with "What can Amazon Q help me with?" instead
## Problem
We have no documentation showing what latencies we are measuring for
amazon q chat

## Solution
Add documentation
…5924)

## Problem

Recently noticed an issue where language upgrade transformations fail
when our `manifest.json` includes this new key which was added for SQL
conversions (unreleased feature).

## Solution

Use a default of `undefined` for `requestedConversions`, so that it does
not appear in the `manifest.json`, and only add it to the
`manifest.json` when the user is doing a SQL conversion, as this key is
only used for SQL conversions.

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Co-authored-by: David Hasani <[email protected]>
…-dev-server (#5923)

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
There's nothing in this file

## Solution
Remove it
## Problem
When resources are provisioned and controlled through a SAM template,
customers should never modify resources directly as this such action
would create drift in the CFN template.

## Solution
Removed action to delete a Lambda or S3 bucket in the AppBuilder section
…#5878)

## Problem
contributors often use `JSON.stringify` to get a printable form of an
object in log messages, but this is hard for humans to read.

## Solution
Implement a custom eslint rule that checks for instances of
`JSON.stringify` inside of a logging statement. The implementation
involves a few heuristics for catching edge cases that are explained in
the comments.

In addition to implementing the lint rule, existing cases are migrated
to use `%O` string substitution.

Within the lint message, we mention the depth limit. There is a
workaround this depth limit by manually converting it to a string first
with `util.format`:
https://stackoverflow.com/questions/10729276/how-can-i-get-the-full-object-in-node-jss-console-log-rather-than-object,
but seems rather involved, and uncommon enough to leave out of
suggestion message.

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
Follow up to: #5833

A static threshold is useful, but if the threshold fails, we want to be
able to see what the new duplicated code is.

## Solution
Run `jscpd` on the current branch, and if it is above the set threshold,
we fail (same as before).

Now, we also filter the resulting report to contain only clones from the
files changed with respect to the base branch. Then, if the filtered
report is non-empty, i.e. one of the changed files has a clone, fail and
display the clones in CI.

Adding this extra step allows us to know when we are adding a clone that
was not otherwise in the codebase. It also allows us to see this clone
in CI, before the PR is merged, giving the developer a chance to remove
it.

As an example, see commit
(a8e4860)
where a copy-pasted function is added, and notice that CI fails and
displays only the section of the report relevant to this clone. Then,
once we remove this work in the following commit
(53d3973),
the check passes.

Included in this PR, is that it runs only on `pull_request` and no
longer on `push`.
## Notes
- In developing this, it became apparent that `jscpd` is not perfect and
was not able to detect the clone added in
(e7357c0).
Will need to dig deeper into their algorithm (based on
https://en.wikipedia.org/wiki/Rabin%E2%80%93Karp_algorithm) and
implementation (https://github.com/kucherenko/jscpdto) to understand why
this is missed, and if it presents a larger problem.
- Also, if a clone already exists in a file that is changed in the PR,
this check will fail. In this case, the options are to ignore the check,
mark the case as an exception, or fix the clone. To encourage developers
to not repeatedly ignore the check, we still employ a static threshold
via #5833.
- If the branch hasn't been rebased up to date, it can pick up clones
from unrelated changes.

## Future Work
- We want to lower the threshold as much as possible by removing
duplicates and marking exceptions when necessary.
- More experience using this tool will help us find a `minLines`
argument that provides the desired sensitivity. This argument allows us
to ignore clones under `minLines` in length. Right now it is 3, which is
likely too granular, but better to start there and loosen as needed.
- Right now the CI output of the clones is very verbose. Digging through
this could be time consuming, especially when many clones are added.
Could be worth filtering it to provide a more ergonomic experience.
## Problem
The current pattern will not catch the script files because they are
nested beyond one directory deep.

## Solution
change it to `**/script/**`.
## Problem
When multiple IDE instances are opened at the same time, the `@workspace
` indexing can increase CPU usage to a point that system fan needs to
engage. IDE can be slow if it is older devices like intel i5 or i7 Mac
OS.

## Solution

When multiple IDE instances are opened at the same time, the
`@workspace` indexing can increase CPU usage to a point that system fan
needs to engage. IDE can be slow if it is older devices like intel i5 or
i7 Mac OS. This PR is to improve indexing auto start-stop strategy,
detect CPU usage more frequently and pause indexing more aggressively
whenever system total CPU usage goes up. In the mean time, further
reduce CPU usage for old Intel i5, i7 devices, make sure one IDE
instance at most utilize one physical core and all instance combined
cannot exceed 1 for any extended period of time more than a few seconds,
unless user explicit allows more CPU usage in settings. Other mechanisms
are implemented to stop indexing if system available memory is small.
…5931)

Create an abstract class that can be used by all connectors.

---

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
- Gated behind dev setting (`aws.dev.notifications`)
- Setup the notifications panel and begin polling in each of the
extensions.
- Currently the code collects a bunch of information about the state of
auth for telemetry (auth_userState). Refactor this code in each
extension so that we can re-use that information for the notification
rule engine.
- Change emitting auth_userState to node only for amazonq, since
notifications is node-only. Decided to punt this work for web because
spending effort to make it web-compatible may be in vain if the design
of web metrics is different.

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem

Auto scan and security issue components are not enabled for some
languages available in code scan service.


## Solution

Add support for new languages for code scan.


---


License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
@jpinkney-aws jpinkney-aws disabled auto-merge November 6, 2024 19:51
@jpinkney-aws jpinkney-aws merged commit 66b2f46 into feature/cwltail Nov 6, 2024
24 of 25 checks passed
@jpinkney-aws jpinkney-aws deleted the autoMerge/feature/cwltail branch November 6, 2024 19:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.