Giter Club home page Giter Club logo

app-studio-toolkit's Introduction

Continuous Integration Commitizen friendly REUSE status

app-studio-toolkit

Description

With the app-studio-toolkit extension, you can benefit from a rich tools for executing common platform tasks. This extension allows developers to execute common actions as "Launch Code-Snippet", "Run VS Code command", "Open File", "Execute handler".

How to obtain support

To get more help, support, and information please open a github issue.

Contributing

Contributing information can be found in the CONTRIBUTING.md file.

app-studio-toolkit's People

Contributors

ajinkyapatil8190 avatar alex-gilin avatar anafious avatar bd82 avatar dependabot-preview[bot] avatar dependabot[bot] avatar estherperelman avatar idantr avatar idoprz avatar ira-gordin-sap avatar litalav avatar netamolcho avatar rimasirich avatar sebastianwolf-sap avatar sergeykuperman avatar slavik-lvovsky avatar threewind avatar tomer-epstein avatar veredcon avatar vevush avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

app-studio-toolkit's Issues

Context Menus based on "Project-API" data

Current Status

Runnable demo available in this PR.

πŸ›‘ Blockers for GA πŸ›‘

  • Project Type library not available on npmjs.com.

🐌 (Semi) Blockers For Development 🐒

  • Transform this repo into a proper mono-repo
    • Difficult to develop due to having multiple samples and other sub-packages hacked together in pseudo mono-repo.
  • Project Type library does not properly expose programmatic API & type signatures.
    • In particulare all the possible tags must be documented as they can be used in VSCode conditional in operator
      - "when": "resourcePath in bas_project_types:ui5 && resourceFilename == manifest.json"
  • incorrect assumption: Workspace Root !== Project Root

❓ Topics to investigate ❓

  • Handling workspace API changes.

πŸ—οΈ Dev Items for GA πŸ—οΈ

  • POC Quality --> Productive Quality.
  • Handling workspace API changes.
  • Document the possible tags (preferably re-export project-api own types).
  • Documented VSCode sample using this new project-API tags contexts (based on POC demo).
  • Testing
    • How to test this?
    • Is this scenario applicable for E2E VSCode tests?

Re-structuring of types package.

Problem

The @sap-devx/[email protected] has multiple issues:

  1. The types are copied from the VSCode ext compiled sources instead of managed directly in source control.
  2. TypeScript Enums are used which are a legacy bad practice.
  3. The any type is used liberally.
  4. Classes for ActionTypes are exported with empty constructors.
    • This means adding new "mandatory" props in those classes would not cause compilation "alerts" to consumers.
  5. ActionType prop in IAction is allowed to be undefined
  6. ServiceCenter related types in SnippetActionParams should be reviewed.

Missing explicit dependency definition to the toolkit extension?

There is a documentation page linked from the extension details page in VS Code, once installed:

"Remotely connect to SAP Business Application Studio dev spaces directly from a local Visual Studio Code desktop application. See Access SAP Business Application Studio from VS Code."

The "Prerequisites" section on this page indirectly mentions the SAP Business Application Studio toolkit extension: "To ensure the best functionality, make sure you are always working (locally) on the latest officially released version of VS Code and that you regularly update the SAP Business Application Studio toolkit extension to the latest version." but there is no link to it on the marketplace, which means users may miss this.

In addition, the "Dependencies" tab for the extension does not list the toolkit extension, just the "Remote - SSH" extension:

image

All this adds up to a slightly confusing experience, in that after installing this "Remote Access for SAP Business Application Studio" extension, nothing works, there is not even the SAP Business Application Studio view icon as described in the Getting Started section.

External terminal access via SSH

Hi,

Thanks for making this possible! I'm thrilled by this.
Any plans of making it possible to use an external terminal to SSH to the BAS Container?

I'm using Warp terminal myself and prefer to use this terminal for my development.

how to run an Adaptation Project in VSCode with the BAS Toolkit

Hello,

I would like to use Adaptation projects with the toolkit in VSCode but It doesn't work, see image below

Untitled

The destination is working with A Fiori application, and the Adaptation projects in the BAS itself as well.

I can't see information about it, is it a missing feature or a detail that I have missed?

Denis Galand

Extension doesn't work in Linux/WSL

Hi!

I try to use this extension. So far my observation is - it's not working from WSL/Linux. It's only working from Windows host OS.

There are no logs in the output showing the issue.

Could you please check that?

Thank you!

Unable to load schema from 'https://sap.github.io/ui5-tooling/schema/ui5.yaml.json'

Hi,

I am trying to setup BAS Desktop Client Extension for VScode 1.89.0.
After connection to Environnement and desired UI5 Project I am receiving Error Message for all .yaml files:

Unable to load schema from 'https://sap.github.io/ui5-tooling/schema/ui5.yaml.json': Request vscode/content failed unexpectedly without providing any details. YAML(768)

This Error occured somehow on other Topics as well, see redhat-developer/vscode-yaml#694

No VPN, no Proxy is used. Accessing the json via Browser is no problem. Did a certification Test with Extension, no error occured either.

Despite being actively working from VSCODE, DevSpace shuts due to innactivity

Hello,

I've been using this extension for a while, and it's great. However, there is one issue that is really annoying: Unless you are actively performing any actions in the dev space via web browser, the dev space stops due to innactivity, despite being actively working on the DevSpace via Vscode.

It's even happened to me that I'm coding from VsCode and suddenly I lose connection. When I check my dev spaces, I see that it stopped due to innactivity. I have to start it and connect again.

As a workaround I'm constantly switching to the web version an performe some actions so it detects activity.

I hope this can be looked at.

Regards.

Deps mis-alignment: only perform check when the document is actually saved

we don't want to trigger checks when the document is un-saved because regardless of the status of the document in memory the quick-fix action works on the real data on disk.

Also this may reduce the number of times we perform the validation by filtering out editing events and may allow us to reduce the debounce wait and provide a more fluid experience to the end user.

packge.json dep upgrade tool

MVP

  • define schema / types for the metadata provided in basContributes
  • Decide if to develop inside APP-Studio-Toolkit or in a new extension.
  • Implement basic automatic upgrade flow with notification
    • exclude node_modules packages.
  • expose setting to dis-able the upgrade flow
    • should it be enabled or disabled by default?

Open Questions / Issues

  • to->from version numbers as semVer versions.
  • grouping of notifications, is this possible?
  • end of update notification, can this be done?
  • VSCode and problems view for files not opened in the editor.
  • Inspect the behavior of upgrade scenario with the limitation of the misalignment tools with package-lock files
  • Distinction between general misalignment and upgrade scenario misalignment.

Bonus

  • behavior on metadata conflicts.
  • filter applying updates depending on the project type detected.

Can't create a synonym in BAS on VSC

Hi Team, i have an issue can you help me, when i try to create a synonym in BAS on VSC can't get the information of tables on container:

image

Regards,

Fabian.

Node Versions mis-alignment

V1.0.0 release:

  • Logic: de-bounce on user edit actions
  • Bug: avoid showing syntax error message in position 1/1 for invalid json
  • Refactor: remove "non supported files" edge case flow
  • Refactor: pass folder path containing pkg.json instead of full path containing pkg.json
  • Logging: implement logging
  • Config: evaluate exposing additional user configs (e.g some debounce timers, GC timers)
  • Beta: evaluate optional opt in-beta flow even if not 100% ready
    - simple vsix delivery may suffix for now...
  • Release: basic tools docker + feature toggle.

Future Optional:

  • logic: replace npm ls logic with our own implementation and avoid spawning external processes for validation flow.
  • tests: Evaluate VSCode Test framework for Flow/E2E tests
  • Logic: stop performing new npm ls operations while npm install is running
  • Tests: (Flow Tests) --> probably remove and defer for when we have a proper infrastructure

Cannot activate the 'SAP Business Application Studio toolkit' extension because it depends on the 'Remote - SSH: Editing Configuration Files' extension, which is not loaded

When I use VSCode under WSL (Windows Subsystem for Linux), I get this error whenever I start VS Code. I also can't use the Fiori Application Generator, it just doesn't start. Guided development works normally. I don't get this error if I open VSCode under Windows, only when logged in to the local WSL environment.

Cannot activate the 'SAP Business Application Studio toolkit' extension because it depends on the 'Remote - SSH: Editing Configuration Files' extension, which is not loaded. Would you like to reload the window to load the extension?

image

I checked and the extension is enabled globally

image

Inconsistent dev space descriptions

In the extension, when the dev spaces are listed, the descriptions / types are not consistent with what's shown in the SAP Business Application Studio.

As an example, these two "Full Stack Cloud Application" dev spaces:

Screenshot 2024-01-28 at 11 43 01

are listed as "SAP Cloud Business Application" dev spaces:

Screenshot 2024-01-28 at 11 42 50

Ability to give an alias name to landscape url in settings

As a consultant, I work for several customers who have their own specific landscape urls and I would like to be able to give each landscape url a personal meaningful alias name to quickly distinguish the one I want to connect to in the Business Application Studio Desktop view.

Thanks.

Could not establish connection error when trying to open dev space in new window

Freshly installed saposs.app-studio-remote-access extension:

Published 2023-07-19, 09:22:34
Last released 2023-10-01, 17:07:39
Last updated 2023-12-05, 15:38:39
Identifier saposs.app-studio-remote-access

on the latest version of VS Code on this macOS platform:

Version: 1.84.2 (Universal)
Commit: 1a5daa3a0231a0fbba4f14db7ec463cf99d7768e
Date: 2023-11-09T10:52:33.687Z
Electron: 25.9.2
ElectronBuildId: 24603566
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: 11.4.183.29-electron.0
OS: Darwin arm64 23.1.0

Authenticated, and I can see the dev space ("prep3") that I want to try to connect to:

image

I use the "Open in new window" icon, and in the new window, I get an error dialog box with "Could not establish connection to "xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78". Using the "Retry" option just brings the same error message.

If I hit "More Actions..." I can get to the log behind the dialog box, which includes this info (it's in the OUTPUT tab for a "Remote - SSH" connection):

[15:51:06.374] Opening exec server for ssh-remote+xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78
[15:51:06.379] Initizing new exec server for ssh-remote+xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78
[15:51:06.386] Acquiring local install lock: /var/folders/61/c6jlmp4x12qf4hzj7flhkx1r0000gn/T/vscode-remote-ssh-7bfb94ff-install.lock
[15:51:06.388] Looking for existing server data file at /Users/I347491/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-7bfb94ff-1a5daa3a0231a0fbba4f14db7ec463cf99d7768e-0.107.1-es/data.json
[15:51:06.388] Using commit id "1a5daa3a0231a0fbba4f14db7ec463cf99d7768e" and quality "stable" for server
[15:51:06.389] Install and start server if needed
[15:51:06.395] askpass server listening on /var/folders/61/c6jlmp4x12qf4hzj7flhkx1r0000gn/T/vscode-ssh-askpass-0383cf58d266a3173b33feaeee6228f371f0d0d7.sock
[15:51:06.395] Spawning local server with {"serverId":2,"ipcHandlePath":"/var/folders/61/c6jlmp4x12qf4hzj7flhkx1r0000gn/T/vscode-ssh-askpass-f5cf5b3a3c85e96d504853cf0641841c98590bbe.sock","sshCommand":"ssh","sshArgs":["-v","-T","-D","62178","-o","ConnectTimeout=15","xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78","bash"],"serverDataFolderName":".vscode-server","dataFilePath":"/Users/I347491/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-7bfb94ff-1a5daa3a0231a0fbba4f14db7ec463cf99d7768e-0.107.1-es/data.json"}
[15:51:06.395] Local server env: {"SSH_AUTH_SOCK":"/private/tmp/com.apple.launchd.ZNtMUzRhvg/Listeners","SHELL":"/bin/zsh","DISPLAY":"1","ELECTRON_RUN_AS_NODE":"1","SSH_ASKPASS":"/Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/local-server/askpass.sh","VSCODE_SSH_ASKPASS_NODE":"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)","VSCODE_SSH_ASKPASS_EXTRA_ARGS":"--ms-enable-electron-run-as-node","VSCODE_SSH_ASKPASS_MAIN":"/Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/askpass-main.js","VSCODE_SSH_ASKPASS_HANDLE":"/var/folders/61/c6jlmp4x12qf4hzj7flhkx1r0000gn/T/vscode-ssh-askpass-0383cf58d266a3173b33feaeee6228f371f0d0d7.sock"}
[15:51:06.433] Spawned 35144
[15:51:06.501] > local-server-2> Running ssh connection command: "-v -T -D 62178 -o ConnectTimeout=15 xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78 bash"
[15:51:06.502] > local-server-2> Spawned ssh, pid=35147
[15:51:06.505] stderr> OpenSSH_9.4p1, LibreSSL 3.3.6
[15:51:06.508] stderr> /Users/I347491/.ssh/config line 20: Bad port '8022Host'.
[15:51:06.508] stderr> /Users/I347491/.ssh/config: terminating, 1 bad configuration options
[15:51:06.509] > local-server-2> ssh child died, shutting down
[15:51:06.514] Local server exit: 0
[15:51:06.514] Received install output: local-server-2> Running ssh connection command: "-v -T -D 62178 -o ConnectTimeout=15 xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78 bash"
local-server-2> Spawned ssh, pid=35147
OpenSSH_9.4p1, LibreSSL 3.3.6
/Users/I347491/.ssh/config line 20: Bad port '8022Host'.
/Users/I347491/.ssh/config: terminating, 1 bad configuration options
local-server-2> ssh child died, shutting down

[15:51:06.514] Failed to parse remote port from server output
[15:51:06.515] Exec server for ssh-remote+xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78 failed: Error
[15:51:06.515] Error opening exec server for ssh-remote+xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78: Error

So I notice this line:

[15:51:06.508] stderr> /Users/I347491/.ssh/config line 20: Bad port '8022Host'.

and sure enough, an entry has been appended to my ~/.ssh/config file, but the append process has not started on a new line:

Host pixel
     Port 8022Host xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78
  HostName 127.0.0.1
  Port 33618
  IdentityFile /Users/I347491/.ssh/workspaces-ws-2jc78.us10.trial.applicationstudio.cloud.sap.key
  User user
  NoHostAuthenticationForLocalhost yes
Host xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78
  HostName 127.0.0.1
  Port 32352
  IdentityFile /Users/I347491/.ssh/workspaces-ws-2jc78.us10.trial.applicationstudio.cloud.sap.key
  User user
  NoHostAuthenticationForLocalhost yes

In other words, this already existed at the end of the ~/.ssh/config file:

Host pixel
     Port 8022

and it looks like there was no newline added before the append.

So I fix that, so it now looks like this:

Host pixel
     Port 8022

Host 6d72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78
  HostName 127.0.0.1
  Port 33618
  ...

and try again. Still no joy, but at least a different error:

[16:01:13.807] > local-server-1> Running ssh connection command: "-v -T -D 62394 -o ConnectTimeout=15 xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78 bash"
[16:01:13.808] > local-server-1> Spawned ssh, pid=35642
[16:01:13.811] stderr> OpenSSH_9.4p1, LibreSSL 3.3.6
[16:01:13.811] stderr> ssh: connect to host 127.0.0.1 port 32352: Connection refused
[16:01:13.812] > local-server-1> ssh child died, shutting down
[16:01:13.814] Local server exit: 0
[16:01:13.814] Received install output: local-server-1> Running ssh connection command: "-v -T -D 62394 -o ConnectTimeout=15 xx72697etrial.us10cf.trial.applicationstudio.cloud.sap.ws-2jc78 bash"
local-server-1> Spawned ssh, pid=35642
OpenSSH_9.4p1, LibreSSL 3.3.6
ssh: connect to host 127.0.0.1 port 32352: Connection refused
local-server-1> ssh child died, shutting down

[16:01:13.814] Failed to parse remote port from server output
[16:01:13.816] Resolver error: Error: 
	at g.Create (/Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/extension.js:2:642703)
	at t.handleInstallOutput (/Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/extension.js:2:640069)
	at e (/Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/extension.js:2:700300)
	at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
	at async /Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/extension.js:2:722169
	at async t.withShowDetailsEvent (/Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/extension.js:2:725828)
	at async /Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/extension.js:2:697005
	at async C (/Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/extension.js:2:695056)
	at async t.resolveWithLocalServer (/Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/extension.js:2:696545)
	at async I (/Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/extension.js:2:719392)
	at async t.resolve (/Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/extension.js:2:723199)
	at async /Users/I347491/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.1/out/extension.js:2:907003
[16:01:13.817] ------

Please help! Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.