Giter Club home page Giter Club logo

che-theia's Introduction


Build Status Test Coverage mattermost Open questions Open bugs

Che-Theia

What is Che-theia ?

Eclipse Che provides a default web IDE for the workspaces which is based on the Theia project. It’s a subtle different version than a plain Theia(https://github.com/eclipse-theia/theia) as there are functionalities that have been added based on the nature of the Eclipse Che workspaces. We are calling this version of Eclipse Theia for Che: Che-Theia.

So, Che-Theia is the default Che editor provided with developer workspaces created in Eclipse Che 7(Github).

Che-Theia contains additional extensions and plugins which have been added based on the nature of Eclipse Che workspaces and to provide the best IDE experience of Theia within Che.

  • A VSCode-like IDE experience. Che-Theia is based on the Monaco editor and includes features like the command palette.
  • VSCode extension compatibility. Che-Theia supports VSCode extensions. In Che-theia, these extensions could come with a side-car containers with all the dependencies required by the extension. No need to install the JDK or Maven when you install our VSCode Java plugin.
  • Nice views to interact with your user containers or production runtime containers. (Terminal access, execute Che-commands in specific containers, etc...)

Che-Theia capabilities

In Che-Theia, you’ll find the following capabilities:

Plug-in Description
Che Extended Tasks Handles the Che commands and provides the ability to start those into a specific container of the workspace.
Che Extended Terminal Allows to provide terminal for any of the containers of the workspace.
Che Factory Handles the Eclipse Che Factories [TODO: LINK]
Che Container Provides a container view that shows all the containers that are running in the workspace and allows to interact with them.
Che Dashboard Allows to integrate the IDE with Che Dashboard and facilitate the navigation.
Che Welcome Page Display a welcome page with handy links when opening the IDE.
Che Ports Allows to detect when services are running inside of the workspace and expose them.
Che APIs Extends the IDE APIs, to allow interacting with the Che specific components (workspaces, preferences, etc.).

Project structure

Che-theia editor is a container image which contains the Che-theia IDE web application.

The che-plugin of this editor is defined in the plugin registry https://github.com/eclipse/che-plugin-registry/blob/master/v3/plugins/eclipse/che-theia/next/meta.yaml

dockerfiles/theia folder contains the container image sources of eclipse/che-theia:

  • Using a Docker multistage build and dockerfiles/theia-dev as builder.
  • Cloning Theia
  • Using che-theia init command to decorate Theia with Che-theia plugins and extensions. All plugins and extensions are defined in che-theia-init-sources.yml
  • Using yarn to build theia + che-theia extensions + che-theia plugins
  • Assembling everything and using che-theia production to make the che-theia webapp.
  • Copying the che-theia webapp into the runtime container and creating the Che-theia image.

Contributing

Contribute to Che-theia

Contributing to che-theia section is cover in CONTRIBUTING.md

Build container images

Building images is required only if you make some changes on Dockerfiles inside dockerfiles folder. If it is about testing che-theia extensions or plugins, please refer to CONTRIBUTING.md.

To build che-theia docker images, please follow dockerfiles/theia/README.md instructions.

License

Join the community

The Eclipse Che community is globally reachable through public chat rooms, mailing list and weekly calls. See https://www.eclipse.org/che/docs/che-7/overview/introduction-to-eclipse-che/#_joining_the_community

Report issues

Issues are tracked on the main Eclipse Che Repository: https://github.com/eclipse/che/issues

che-theia's People

Contributors

akurinnoy avatar andrienkoaleksandr avatar apupier avatar arajkumar avatar azatsarynnyy avatar benoitf avatar che-bot avatar davidfestal avatar dependabot[bot] avatar dmytro-ndp avatar ericwill avatar evidolob avatar ibuziuk avatar metlos avatar mkuznyetsov avatar mmorhun avatar monaka avatar nickboldt avatar olexii4 avatar romannikitenko avatar sleshchenko avatar sparkoo avatar sunix avatar svor avatar tolusha avatar tsmaeder avatar vinokurig avatar vitaliy-guliy avatar vparfonov avatar vzhukovs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

che-theia's Issues

running a task/che-commands is showing error: `Request {taskname} failed with error: Information not found`

Description

When trying to run a che-command, Request {taskname} failed with error: Information not found message is display and the command is not executed

Reproduction Steps

Run this devfile:

specVersion: 0.0.1
name: sunix-devfiles
projects:
  - name: devfiles
    source:
      type: git
      location: 'https://github.com/sunix/devfiles.git'
components:
  - name: theia-editor
    type: cheEditor
    id: org.eclipse.che.editor.theia:next
  - name: exec-plugin
    type: chePlugin
    id: che-machine-exec-plugin:0.0.1
  - name: git
    type: dockerimage
    image: sunix/git-devtools
    mountSources: true
    memoryLimit: 256M
  - name: theia-endpoint-runtime
    type: dockerimage
    image: eclipse/che-theia-endpoint-runtime:nightly
    endpoints:
      - name: theia-remote-endpoint
        port: 10000
        attributes:
          protocol: ws
          public: 'true'
    memoryLimit: 512M
    mountSources: true
  - name: vscode-yaml
    type: chePlugin
    id: redhat.vscode-yaml:0.3.0
commands:
  - name: run
    actions:
      - type: exec
        component: git
        command: pwd

run the command run it is supposed to execute the command pwd but it is not and showing in a dialog box: Error launching task 'run': Request run failed with message: Information not found

and in theia ide logs:

root ERROR Request run failed with error: Information not found Error: Information not found
    at CheTask.<anonymous> (/home/theia/node_modules/@eclipse-che/theia-plugin-ext/lib/node/che-task-service.js:216:35)
    at step (/home/theia/node_modules/@eclipse-che/theia-plugin-ext/lib/node/che-task-service.js:54:23)
    at Object.next (/home/theia/node_modules/@eclipse-che/theia-plugin-ext/lib/node/che-task-service.js:35:53)
    at fulfilled (/home/theia/node_modules/@eclipse-che/theia-plugin-ext/lib/node/che-task-service.js:26:58)
    at <anonymous>
task ERROR Error launching task 'init ... che-theia': Request run failed with message: Information not found

OS and version:
Minikube - che7 started with chectl

Minor UI alignment issue with Welcome page tab icon

Description

This is a very minor issue but as you can see in the below screenshot, the Welcome page tab icon is not aligned with the text (unlike the icon for editor tab which sits flush):

image

Reproduction Steps

OS and version:

Diagnostics:

Remote plugin isn't registered in Theia

When running Che k8s plugin in a separate sidecar container, the plugin isn't registered in Theia.

Steps to reproduce

  • start minikube with the command
    minikube start --memory 8192 --cpus 4 --disk-size 50g --docker-opt userland-proxy=false
  • start nightly Che Server with the command
    chectl server:start
  • start a Che workspace with the command
    chectl workspace:start -f devfile
    where devfile has the following content:
specVersion: 0.0.1
name: che-k8s-plugin
tools:
  - name: theia-ide
    type: cheEditor
    id: org.eclipse.che.editor.theia:master
  - name: k8s-plugin
    type: chePlugin
    id: https://raw.githubusercontent.com/azatsarynnyy/che7-plugin-registry/master/ms-kubernetes-tools.vscode-kubernetes-tools:0.1.16

There're contributions from package.json are registered (views, etc.) but no commands (with Kubernetes: prefix) in the Commands Palette.

Diagnostics
theia-ide conatiner logs:

$ kubectl logs workspaceqjq1fy3kkj4pppxh.che-workspace-pod-5b9db4c7bb-8ftn6 --namespace=kube-che --container=theia-ide
...
root ERROR Uncaught Exception:  Error: connect ETIMEDOUT 10.108.50.184:8413
root ERROR Error: connect ETIMEDOUT 10.108.50.184:8413
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1191:14)
root ERROR Uncaught Exception:  TypeError: Cannot read property 'aborted' of null
root ERROR TypeError: Cannot read property 'aborted' of null
    at ClientRequest.req.on (/home/theia/node_modules/ws/lib/websocket.js:531:19)
    at emitOne (events.js:116:13)
    at ClientRequest.emit (events.js:211:7)
    at Socket.socketCloseListener (_http_client.js:377:9)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at TCP._handle.close [as _onclose] (net.js:561:12)
root INFO Notification handler 'onMessage' failed with message: WebSocket is not open: readyState 2 (CLOSING)
...

plugin conatiner logs

$ kubectl logs workspaceqjq1fy3kkj4pppxh.che-workspace-pod-5b9db4c7bb-8ftn6 --namespace=kube-che --container=pluginsidecarmewvgz -f
Plugins Endpoints are  [ 'ws://opuzjilvbz:8413' ]
Plugins Mapping Endpoints are  Map {
  'ms_kubernetes_tools_vscode_kubernetes_tools' => 'ws://opuzjilvbz:8413' }
Starting the deployer with the list of resolvers [ LocalDirectoryPluginDeployerResolver {},
  GithubPluginDeployerResolver { unpackedFolder: '/tmp/github-remote' },
  HttpPluginDeployerResolver { unpackedFolder: '/tmp/http-remote' },
  VsCodePluginDeployerResolver { unpackedFolder: '/tmp/vscode-extension-marketplace' } ]
Theia Endpoint 1/pid listening on port 8413
Found the list of default plugins ID on env: undefined
Found the list of plugins ID on env: undefined

Workspace API does not work properly

After the last code cleanup for extensions/eclipse-che-theia-plugin-ext
3f3e3cf
workspace API does not work properly.

import * as che from '@eclipse-che/plugin';
...
const workspace = await che.workspace.getCurrentWorkspace();
console.log('>>>>>>>>>>> workspace', workspace);

This code sends the request, then gets a response with status code 200, but 'const workspace' always returns undefined.

That is why the containers plugin is not working properly
screenshot from 2019-01-14 10-52-40

DeprecationWarning: Tapable.apply is deprecated.

Description

DeprecationWarning is shown in @eclipse-che/theia-assembly.
It looks this is not critical.

Reproduction Steps

Builds 08df279

Diagnostics:

Build log.

@eclipse-che/theia-assembly: $ theia build --mode production --config cdn/webpack.config.js --env.cdn=./cdn.json --env.monacopkg=@typefox/[email protected] [email protected] [email protected] && yarn run override-vs-loader
@eclipse-che/theia-assembly: (node:9972) DeprecationWarning: Tapable.apply is deprecated. Call apply on the plugin directly instead

Revisit name of docker images

Before, images were in che repository.
and it was tagged with 'theia version' and 'che version'

  • che-theia:0.3.18-6.17.2 (theia version being 0.3.18 and che version being 6.17.2)
  • che-theia:0.3.19-nightly (theia 0.3.19, nightly build of the image)

but now, che-theia images are published from che-theia repository and we need to revisit labels because nightly images are not every night (but at each commit), etc.

Here is some proposal to discuss:

  • 0.3.19-latest: latest 'stable' version
  • latest: an alias to 0.3.19-latest
  • next: using upstream of theia when building the image
  • next-nightly: every day result of upstream theia + upstream of che-theia

(theia is already using next keyword for their current upstream version)

cc @l0rd @evidolob

Welcome plug-in shouldn't open welcome page each page load

When @eclipse-che/welcome-plugin is included it opens welcome page every page load. It happens each page reload even if plenty of editors are already opened. Also focus goes to that new tab, so user have to manually close it. The same problem when a user switches to dashboard and goes back to Che Theia.

Can't build che-theia from scratch - fails on @eclipse-che/github-auth-plugin

Hello,

I'm trying to build a patched version of che-theia to diagnose an internal deployment of Che 7 that doesn't work properly on our env.

When running yarn I'm getting the following error:

yarn install v1.22.0
warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
[1/4] Resolving packages...
success Already up-to-date.
$ lerna run prepare
lerna notice cli v3.20.2
lerna info Executing command in 19 packages: "yarn run prepare"
@eclipse-che/che-theia-hosted-plugin-manager-extension: yarn run v1.22.0
@eclipse-che/theia-plugin-ext: yarn run v1.22.0
@eclipse-che/theia-terminal: yarn run v1.22.0
@eclipse-che/theia-remote: yarn run v1.22.0
@eclipse-che/theia-plugin-ext: $ yarn clean && yarn build
@eclipse-che/che-theia-hosted-plugin-manager-extension: $ yarn clean && yarn build
@eclipse-che/theia-terminal: $ yarn run clean && yarn run build
@eclipse-che/theia-remote: $ yarn clean && yarn build
@eclipse-che/theia-plugin-ext: $ rimraf lib
@eclipse-che/theia-terminal: $ rimraf lib
@eclipse-che/che-theia-hosted-plugin-manager-extension: $ rimraf lib
@eclipse-che/theia-remote: $ rimraf lib
@eclipse-che/theia-remote: $ concurrently -n "format,lint,compile" -c "red,green,blue" "yarn format" "yarn lint:fix" "yarn compile"
@eclipse-che/theia-terminal: $ concurrently -n "format,lint,compile" -c "red,green,blue" "yarn format" "yarn lint" "yarn compile"
@eclipse-che/che-theia-hosted-plugin-manager-extension: $ concurrently -n "format,lint,compile" -c "red,green,blue" "yarn format" "yarn lint" "yarn compile"
@eclipse-che/theia-plugin-ext: $ concurrently -n "format,lint,compile" -c "red,green,blue" "yarn format" "yarn lint" "yarn compile" && yarn run compileWorker
@eclipse-che/theia-remote: [lint] $ tslint -c ../../configs/tslint.json --fix --project .
@eclipse-che/che-theia-hosted-plugin-manager-extension: [format] $ tsfmt -r --useTsfmt ../../configs/tsfmt.json
@eclipse-che/theia-remote: [compile] $ tsc
@eclipse-che/che-theia-hosted-plugin-manager-extension: [lint] $ tslint -c ../../configs/tslint.json --project tsconfig.json
@eclipse-che/theia-remote: [format] $ tsfmt -r --useTsfmt ../../configs/tsfmt.json
@eclipse-che/theia-terminal: [lint] $ tslint -c ../../configs/tslint.json --project tsconfig.json
@eclipse-che/theia-terminal: [format] $ tsfmt -r --useTsfmt ../../configs/tsfmt.json
@eclipse-che/theia-terminal: [compile] $ tsc
@eclipse-che/che-theia-hosted-plugin-manager-extension: [compile] $ tsc
@eclipse-che/theia-plugin-ext: [format] $ tsfmt -r --useTsfmt ../../configs/tsfmt.json
@eclipse-che/theia-plugin-ext: [lint] $ tslint -c ../../configs/tslint.json --project tsconfig.json
@eclipse-che/theia-plugin-ext: [compile] $ tsc
@eclipse-che/che-theia-hosted-plugin-manager-extension: [format] yarn format exited with code 0
@eclipse-che/theia-terminal: [format] yarn format exited with code 0
@eclipse-che/theia-remote: [format] yarn format exited with code 0
@eclipse-che/theia-plugin-ext: [format] yarn format exited with code 0
@eclipse-che/che-theia-hosted-plugin-manager-extension: [compile] yarn compile exited with code 0
@eclipse-che/che-theia-hosted-plugin-manager-extension: [lint] yarn lint exited with code 0
@eclipse-che/che-theia-hosted-plugin-manager-extension: Done in 18.30s.
@eclipse-che/theia-generator: yarn run v1.22.0
@eclipse-che/theia-generator: warning package.json: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-generator: $ yarn run clean && yarn run build
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-remote: [lint] yarn lint:fix exited with code 0
@eclipse-che/theia-generator: warning package.json: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-terminal: [lint] yarn lint exited with code 0
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-generator: $ rimraf dist
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-terminal: [compile] yarn compile exited with code 0
@eclipse-che/theia-terminal: Done in 22.13s.
@eclipse-che/theia-generator: warning package.json: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-generator: $ yarn run compile && yarn run format-code && yarn run tslint-fix && yarn run test
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-containers-plugin: yarn run v1.22.0
@eclipse-che/theia-remote: [compile] yarn compile exited with code 0
@eclipse-che/theia-remote: Done in 23.21s.
@eclipse-che/theia-containers-plugin: warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/theia-containers-plugin: $ yarn clean && yarn build
@eclipse-che/theia-generator: warning package.json: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-generator: $ tsc && chmod +x dist/index.js
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/github-auth-plugin: yarn run v1.22.0
@eclipse-che/github-auth-plugin: warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/github-auth-plugin: $ yarn run clean && yarn run build
@eclipse-che/theia-containers-plugin: warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/theia-containers-plugin: $ rimraf lib
@eclipse-che/github-auth-plugin: warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/github-auth-plugin: $ rimraf lib
@eclipse-che/theia-plugin-ext: [lint] yarn lint exited with code 0
@eclipse-che/theia-containers-plugin: warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/theia-containers-plugin: $ concurrently -n "format,lint,compile" -c "red,green,blue" "yarn format" "yarn lint" "yarn compile" && theia-plugin pack
@eclipse-che/github-auth-plugin: warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/github-auth-plugin: $ yarn lint:fix && concurrently -n "format,lint,compile" -c "red,green,blue" "yarn format" "yarn lint" "yarn compile" && theia-plugin pack
@eclipse-che/github-auth-plugin: warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/github-auth-plugin: $ tslint -c ../../configs/tslint.json --fix --project .
@eclipse-che/theia-containers-plugin: [format] warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/theia-containers-plugin: [format] $ tsfmt -r --useTsfmt ../../configs/tsfmt.json
@eclipse-che/theia-containers-plugin: [lint] warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/theia-containers-plugin: [lint] $ tslint -c ../../configs/tslint.json --project tsconfig.json
@eclipse-che/theia-containers-plugin: [compile] warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/theia-containers-plugin: [compile] $ tsc
@eclipse-che/theia-containers-plugin: [format] yarn format exited with code 0
@eclipse-che/theia-plugin-ext: [compile] yarn compile exited with code 0
@eclipse-che/theia-plugin-ext: $ webpack-cli --config webpack.config.js
@eclipse-che/theia-plugin-ext: clean-webpack-plugin: /home/hadrien/repos/che-theia/extensions/eclipse-che-theia-plugin-ext/lib/webworker has been removed.
@eclipse-che/theia-generator: warning package.json: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-generator: $ tsfmt -r
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/github-auth-plugin: [compile] warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/github-auth-plugin: [compile] $ tsc
@eclipse-che/github-auth-plugin: [format] warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/github-auth-plugin: [format] $ tsfmt -r --useTsfmt ../../configs/tsfmt.json
@eclipse-che/theia-containers-plugin: [lint] yarn lint exited with code 0
@eclipse-che/github-auth-plugin: [lint] warning @eclipse-che/[email protected]: The engine "theiaPlugin" appears to be invalid.
@eclipse-che/github-auth-plugin: [lint] $ tslint -c ../../configs/tslint.json --project tsconfig.json
@eclipse-che/theia-containers-plugin: [compile] yarn compile exited with code 0
@eclipse-che/theia-containers-plugin: Packaging of plugin
@eclipse-che/theia-containers-plugin: 🔍 Validating...✔️ 
@eclipse-che/github-auth-plugin: [format] yarn format exited with code 0
@eclipse-che/theia-generator: warning package.json: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/theia-generator: $ tslint --fix --project .
@eclipse-che/theia-generator: warning @eclipse-che/[email protected]: Invalid bin entry for "che:theia" (in "@eclipse-che/theia-generator").
@eclipse-che/github-auth-plugin: [lint] yarn lint exited with code 0
@eclipse-che/github-auth-plugin: [compile] yarn compile exited with code 0
@eclipse-che/theia-containers-plugin: 🗂  Getting dependencies...❌️ 
@eclipse-che/theia-containers-plugin: Error: Not able to get yarn workspaces when executing yarn workspaces info --json. Found {
@eclipse-che/theia-containers-plugin:   "@eclipse-che/che-theia-hosted-plugin-manager-extension": {
@eclipse-che/theia-containers-plugin:     "location": "extensions/che-theia-hosted-plugin-manager-extension",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-about": {
@eclipse-che/theia-containers-plugin:     "location": "extensions/eclipse-che-theia-about",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/theia-plugin-ext"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-activity-tracker": {
@eclipse-che/theia-containers-plugin:     "location": "extensions/eclipse-che-theia-activity-tracker",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/theia-plugin-ext"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-dashboard-extension": {
@eclipse-che/theia-containers-plugin:     "location": "extensions/eclipse-che-theia-dashboard",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/theia-plugin-ext"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-git-provisioner": {
@eclipse-che/theia-containers-plugin:     "location": "extensions/eclipse-che-theia-git-provisioner",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/theia-plugin-ext",
@eclipse-che/theia-containers-plugin:       "@eclipse-che/theia-user-preferences-synchronizer"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-plugin-ext": {
@eclipse-che/theia-containers-plugin:     "location": "extensions/eclipse-che-theia-plugin-ext",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/plugin"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-remote": {
@eclipse-che/theia-containers-plugin:     "location": "extensions/eclipse-che-theia-plugin-remote",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/plugin": {
@eclipse-che/theia-containers-plugin:     "location": "extensions/eclipse-che-theia-plugin",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-preferences-provider-extension": {
@eclipse-che/theia-containers-plugin:     "location": "extensions/eclipse-che-theia-preferences-provider-extension",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/theia-plugin-ext"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-terminal": {
@eclipse-che/theia-containers-plugin:     "location": "extensions/eclipse-che-theia-terminal",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-user-preferences-synchronizer": {
@eclipse-che/theia-containers-plugin:     "location": "extensions/eclipse-che-theia-user-preferences",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/theia-plugin-ext"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-containers-plugin": {
@eclipse-che/theia-containers-plugin:     "location": "plugins/containers-plugin",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/plugin"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/github-auth-plugin": {
@eclipse-che/theia-containers-plugin:     "location": "plugins/github-auth-plugin",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/plugin"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/ports-plugin": {
@eclipse-che/theia-containers-plugin:     "location": "plugins/ports-plugin",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/plugin"
@eclipse-che/theia-containers-plugin:     ]
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-ssh-plugin": {
@eclipse-che/theia-containers-plugin:     "location": "plugins/ssh-plugin",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/plugin"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "task-plugin": {
@eclipse-che/theia-containers-plugin:     "location": "plugins/task-plugin",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/plugin"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/telemetry-plugin": {
@eclipse-che/theia-containers-plugin:     "location": "plugins/telemetry-plugin",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/plugin"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/welcome-plugin": {
@eclipse-che/theia-containers-plugin:     "location": "plugins/welcome-plugin",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/plugin"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/workspace-plugin": {
@eclipse-che/theia-containers-plugin:     "location": "plugins/workspace-plugin",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [
@eclipse-che/theia-containers-plugin:       "@eclipse-che/plugin"
@eclipse-che/theia-containers-plugin:     ],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   },
@eclipse-che/theia-containers-plugin:   "@eclipse-che/theia-generator": {
@eclipse-che/theia-containers-plugin:     "location": "generator",
@eclipse-che/theia-containers-plugin:     "workspaceDependencies": [],
@eclipse-che/theia-containers-plugin:     "mismatchedWorkspaceDependencies": []
@eclipse-che/theia-containers-plugin:   }
@eclipse-che/theia-containers-plugin: }
@eclipse-che/theia-containers-plugin:     at Yarn.<anonymous> (/home/hadrien/repos/che-theia/node_modules/@theia/plugin-packager/dist/yarn.js:80:27)
@eclipse-che/theia-containers-plugin:     at Generator.next (<anonymous>)
@eclipse-che/theia-containers-plugin:     at fulfilled (/home/hadrien/repos/che-theia/node_modules/@theia/plugin-packager/dist/yarn.js:13:58)
@eclipse-che/theia-containers-plugin:     at process._tickCallback (internal/process/next_tick.js:68:7)
@eclipse-che/theia-containers-plugin: error Command failed with exit code 1.
@eclipse-che/theia-containers-plugin: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
@eclipse-che/theia-containers-plugin: error Command failed with exit code 1.
@eclipse-che/theia-containers-plugin: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Is there something I'm doing wrong? My understanding was that running build.sh was sufficient once the prerequisites are installed.

Can't build Theia on Alpine Linux

Description

The master branch after merged eclipse-theia/theia#5055 won't be built on Alpine Linux.
Because Replaced Ffmpeg depends on Glibc. (see also: logs below)
It isn't caused by che-theia. But it should be managed to fix by Che side, IMO.

Reproduction Steps

git clone https://github.com/theia-ide/theia.git
cd theia
yarn || npx electron-replace-ffmpeg && npx electron-codecs-test && yarn

OS and version:

Diagnostics:

info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Downloading tmp-1744-0-ffmpeg-v3.1.7-linux-x64.zip
[============================================>] 100.0% of 1.11 MB (1.11 MB/s)
Downloaded ffmpeg shared library { version: "v3.1.7", dist: "/projects/theia/node_modules/electron/dist" }.
Successfully replaced "/projects/theia/node_modules/electron/dist/libffmpeg.so".
Error: Error relocating /projects/theia/node_modules/electron/dist/libffmpeg.so: __isnan: symbol not found
    at exports.libffmpegCodecs (/projects/theia/dev-packages/electron/electron-ffmpeg-lib.js:88:19)
    at main (/projects/theia/dev-packages/electron/electron-codecs-test.js:56:20)
    at Object.<anonymous> (/projects/theia/dev-packages/electron/electron-codecs-test.js:70:1)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:829:12)
    at findNodeScript.then.existing (/usr/local/lib/node_modules/npm/node_modules/libnpx/index.js:268:14)

Terminal API doesn't work for a plugin running in a sidecar container

Description

Theia Plugin Terminal API doesn't work for a plugin running in a sidecar container.

Reproduction Steps

1/ Start Che Workspace with the terminal-plugin sample running in its own container.
Use the DevFile:

specVersion: 0.0.1
name: terminal-sample
tools:
  - name: theia-ide
    type: cheEditor
    id: org.eclipse.che.editor.theia:1.0.0
  - name: exec-plugin
    type: chePlugin
    id: che-machine-exec-plugin:0.0.1
  - name: terminal-sample-plugin
    type: chePlugin
    id: https://raw.githubusercontent.com/azatsarynnyy/che7-plugin-registry/master/terminal-sample:0.0.1

2/ Call the Send text to the terminal command from Theia Command Palette.

Expected behavior:

New Terminal is created and text is printed to the terminal
image

Diagnostics:

from browser's console:

Uncaught (in promise) TypeError: Cannot read property 'proxy' of undefined
    at TerminalServiceExtImpl.createTerminal (/home/theia/node_modules/@theia/plugin-ext/lib/plugin/terminal-ext.js:77)
    at TerminalServiceExtImpl.createTerminal (/home/theia/lib/node/terminal-container-aware.js:43)
    at Object.createTerminal (/home/theia/node_modules/@theia/plugin-ext/lib/plugin/plugin-context.js:299)
    at createTerminalWithOptions (/plugins/terminal-sample.0.0.1/lib/new-terminal-backend.js:262)
    at /plugins/terminal-sample.0.0.1/lib/new-terminal-backend.js:106
    at /home/theia/node_modules/@theia/plugin-ext/lib/plugin/command-registry.js:113
    at CommandRegistryImpl.executeLocalCommand (/home/theia/node_modules/@theia/plugin-ext/lib/plugin/command-registry.js:165)
    at CommandRegistryImpl.$executeCommand (/home/theia/node_modules/@theia/plugin-ext/lib/plugin/command-registry.js:130)
    at RPCProtocolImpl.doInvokeHandler (/home/theia/node_modules/@theia/plugin-ext/lib/api/rpc-protocol.js:175)
    at RPCProtocolImpl.invokeHandler (/home/theia/node_modules/@theia/plugin-ext/lib/api/rpc-protocol.js:160)

"port is not exposed in the workspace as a server"

Description

When I try to launch a hosted plugin instance, I get the following popup:
image

I can then still access my new instance at localhost:3030, but my plugin does not appear in the Plugins view.

What does the above message mean? How do I fix it?

Reproduction Steps

  1. Build the docker image as detailed in the README
  2. Run a che-theia container, eg:
    docker run -it -p 3100:3100 -p 3030:3030 -v "${THEIA_WORKSPACE}:/projects" eclipse/che-theia:next
  3. Run the "Hosted Plugin: Select Path" command and select my plugin folder.
  4. Run the "Hosted Plugin: Start Instance" command (or restart if it's already running - doesn't matter).
  5. The message shown above appears.

The server still appears to start successfully, and I see a popup from my plugin saying it failed to activate, so the message might be a red herring (but my plugin still doesn't appear in the plugins view).

OS and version:
macOS Mojave 10.14.4
Docker version 18.09.2, build 6247962

Diagnostics:

Full logs:
theia-logs.txt

Build own che-theia image 0.7.0

Description

Reproduction Steps

After che:theia init -c ../che-theia-init-sources.yml
the yarn command fails with :

Exit code: 128
Command: git
Arguments: ls-remote --tags --heads git://github.com/stoplightio/moxios.git
Directory: /theia-source-code
Output:
fatal: read error: Operation timed out

OS and version:

Diagnostics:

Terminal API: sending text to the newly created terminal doesn't work as expected

Description

window.createTerminal followed by terminal.sendText leads to opening an empty terminal.

Reproduction Steps

1/ Run the terminal-plugin sample in Che Theia
2/ Call the Send text to the terminal command from the Command Palette.

Expected behavior:

New Terminal is created and text is printed to the terminal
image
Note: it works as expected in standalone Theia

Actual behavior:

New Terminal is created but the text isn't printed to the terminal
image

Sidecar container with a plugin is terminated after refreshing the browser's page multiple times

When running the Kubernetes Tooling Che Plugin in a separate sidecar container and refreshing the browser's page 4-6 times a plugin container is terminated with OOM. After that kubelet restarts the terminated container.

Diagnostics
From the Workspace pod description:

pluginsidecarsdbzxl:
    Container ID:   docker://09b2c8590afb1ceb4e503b23fd7d9139a7d2c193588fce3426d8aeb79390bf66
    Image:          eclipse/che-remote-plugin-kubernetes-tooling-0.1.17:nightly
    Image ID:       docker-pullable://eclipse/che-remote-plugin-kubernetes-tooling-0.1.17@sha256:22caedc0912e3eb30467855c935c25879a7333ef4aa3e6ae5b57f46d77828623
    Port:           5344/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Mon, 19 Mar 2019 10:30:17 +0200
    Last State:     Terminated
      Reason:       OOMKilled
      Exit Code:    137
      Started:      Mon, 19 Mar 2019 10:12:52 +0200
      Finished:     Mon, 19 Mar 2019 10:30:13 +0200
    Ready:          True
    Restart Count:  5
    Limits:
      memory:  134217728
    Requests:
      memory:  134217728
Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  57m                  default-scheduler  Successfully assigned che/workspacefq38qapu3hzm4t3m.che-workspace-pod-7589b787fb-fl7fg to minikube
  Normal   Pulling    57m                  kubelet, minikube  pulling image "eclipse/che-machine-exec"
  Normal   Pulled     57m                  kubelet, minikube  Successfully pulled image "eclipse/che-machine-exec"
  Normal   Created    57m                  kubelet, minikube  Created container
  Normal   Started    57m                  kubelet, minikube  Started container
  Normal   Pulling    57m                  kubelet, minikube  pulling image "eclipse/che-theia:next"
  Normal   Pulled     56m                  kubelet, minikube  Successfully pulled image "eclipse/che-theia:next"
  Normal   Created    56m                  kubelet, minikube  Created container
  Normal   Started    56m                  kubelet, minikube  Started container
  Normal   Pulling    56m                  kubelet, minikube  pulling image "eclipse/che-theia-endpoint-runtime:nightly"
  Normal   Pulled     56m                  kubelet, minikube  Successfully pulled image "eclipse/che-theia-endpoint-runtime:nightly"
  Normal   Started    56m                  kubelet, minikube  Started container
  Normal   Created    56m                  kubelet, minikube  Created container
  Normal   Started    22m (x4 over 56m)    kubelet, minikube  Started container
  Warning  BackOff    20m (x3 over 23m)    kubelet, minikube  Back-off restarting failed container
  Normal   Pulling    3m12s (x6 over 56m)  kubelet, minikube  pulling image "eclipse/che-remote-plugin-kubernetes-tooling-0.1.17:nightly"
  Normal   Created    3m9s (x6 over 56m)   kubelet, minikube  Created container
  Normal   Pulled     3m9s (x6 over 56m)   kubelet, minikube  Successfully pulled image "eclipse/che-remote-plugin-kubernetes-tooling-0.1.17:nightly"

Terminal: unable to show plug-in containers

Hello,

Trying the shortcut on my computer (french keyboard /macOS) is not toggling the containers

image

Note: I'm using containers plug-in view to open terminals but it would be interesting if the issue is on the shortcut being displayed or shortcut not working with my french keyboard ?

tasks: output of a command is not rendered correctly

Description

Executing che commands in che-theia with a che-theia task (from the container view or command palette run tasks), output is not looking good. special characters bash code for colors seems not to be taken in account. Also progress output are generating new lines when updated.
See screenshot:

output

Reproduction Steps

OS and version:
Minikube and che7 nightly built version

Clean up theia-endpoint-runtime directory structure

The folder dockerfiles/theia-endpoint-generator contains actually 3 things:

  1. Docker stuff to build the theia endpoint runtime docker image
  2. A nodejs application that starts a version of theia that only runs a plugin endpoint (starting with plugin-remote.ts)
  3. A theia extension that handles discovery of locally installed plugins and routes messages to/from those plugins.

Having all those concerns mixed in the same directory structure makes it difficult to understand what is going on in the code and prevents us from separating generally useful code from the Che specific stuff.

We should do two things:

  1. Separate the plugin endpoint theia extension to extensions/plugin_endpoint
  2. Separate the nodejs application to it's own root level folder

Running plugins in multiple plugin host processes seems like something that we might even contribute back to the main theia project if we structure the code correctly.

VSCode extension installed but commands not available

I'm trying to validate Project Initializer in Che and faces the following issues:

Here is what I did:

  • started che on minishift though chectl
  • created a workspace using Che7 stack and theia-ide:next as editor
  • installed Project Initializer extension with the Plugin: Deploy plugin by Id and the vscode:extension/redhat.project-initializer URL
  • can't see an Project: related command in the command palette

[port plug-in] Filter out all ephemeral ports

Description

It would be nice to filter out all ephemeral ports to avoid annoying error message about exposing ports:
screenshot-che-mini-che 192 168 99 102 nip io-2019 04 23-12-48-13

Reproduction Steps

To see this error window you need to run Minishift with remote Java plugin and try to debug something:
output

OS and version:

Diagnostics:

Can not run launch configuration

Reproduction Steps

  1. Create workspace using Che 7 Theia dev stack
  2. Turned on Node debug and Node debug (legacy) plugins
  3. Start workspace, clone and build theia project
  4. Change port for 'Launch Backend' configuration 3000 ---> 3130
  5. Run 'Launch Backend' configuration

Make it possible to add a VSCode extension

We need a way to be able to simply install a VS Code extension.

First step:

  • User should be able to pick a plugin from VS Code Marketplace Site and install it in Che Theia
  • User should be able to drag and drop 'Install' button from VS Code marketplace to the Plugins view

Following improvements:

  • Display list of installed VS Code plugins in dedicated list
  • User should be able to pick a VS Code plugin using Plugins view and install it by clicking 'Install' button

For the first step is enough to open https://marketplace.visualstudio.com/, find a plugin, copy its id and install by running a special command in Theia.

To persist installed plugins we need to download vscode plugins in dedicated directory and add this directory to volumes

   env:
       - name: THEIA_PLUGINS
         value: local-dir:///plugins,local-dir:///vscode-plugins
       - name: VSCODE_PLUGINS
         value: local-dir:///vscode-plugins
   volumes:
       - mountPath: "/plugins"
         name: plugins
       - mountPath: "/vscode-plugins"
         name: vscode-plugins

Build and package che-theia plugins during che-theia image build.

The same way we are building extensions, we would build che-theia plugins from sources and package them so they are available right away.

  1. skate board step: #43
  2. moto cycle step: include che-theia plugins build into the che:theia generator
    • che:theia init would also clone plugins projects
      ${theia}/che/<clone ext/plugins repos>
      ${theia}/packages/<ln -s extensions>
      ${theia}/plugins/<ln -s plugins>
      
  • it would use a single extensions.yml file. we would specify which project is plugin:
    - move extensions/extensions.yml to che-theia-init-sources.yml
    - renamed folders to extensions , root extensions to sources and adding new folders for plugins: plugins
  • build all the plugins ${theia}/plugins with a single command: provides a script located in plugins folder that would perform yarn on each plugins.
  • packaging the future content of /default-theia-plugins/: the script foreach_yarn is also copying the .theia files in production/plugins folder.
  • update CI #201

Che in Che development is broken

Reproduction Steps

  1. Create workspace from "Che 7 Theia dev" stack
  2. Clone theia project
  3. cd theia/
  4. che:theia init -d
  5. Build theia project

Result: build is failed
che_theia_build

task/che-commands should not ask the target machine (component) if already defined in devfile

Description

It looks like a regression, when i define che-commands with a target machine (component) in a devfile, Running the task is still asking which machine to use:

Reproduction Steps

Run this devfile:

# A devfile to setup sunix-devfiles repo
#

specVersion: 0.0.1
name: sunix-devfiles
projects:
  - name: devfiles
    source:
      type: git
      location: 'https://github.com/sunix/devfiles.git'
components:
  - name: theia-editor
    type: cheEditor
    id: org.eclipse.che.editor.theia:next
  - name: exec-plugin
    type: chePlugin
    id: che-machine-exec-plugin:0.0.1
  - name: git
    type: dockerimage
    image: sunix/git-devtools
    mountSources: true
    memoryLimit: 256M
  - name: theia-endpoint-runtime
    type: dockerimage
    image: eclipse/che-theia-endpoint-runtime:nightly
    endpoints:
      - name: theia-remote-endpoint
        port: 10000
        attributes:
          protocol: ws
          public: 'true'
    memoryLimit: 512M
    mountSources: true
  - name: vscode-yaml
    type: chePlugin
    id: redhat.vscode-yaml:0.3.0
commands:
  - name: run on git
    actions:
      - type: exec
        component: git
        command: pwd

  - name: run on theia-editor
    actions:
      - type: exec
        component: theia-editor
        command: pwd

run the command run on theia-editor it is supposed to run that on the theia-editor container but it is still asking where to run it.
On another side, run on git works well

OS and version:
Minikube - che7 started with chectl

Cannot use Git repositories other than github with theia-generator

Hey, I'm trying to build Theia image for Che, with a custom extension. I'm using self hosted git for extension. But while building it is saying Invalid repository name: {My git repo URL}.

After further debugging i came across a piece of code in @eclipse-che/theia-generator

 28     /**
 29      * Grab the repository name based on the given URI of repository.
 30      */
 31     public getRepositoryName(): string {
 32         // check dir exists
 33         const regex = /(https:\/\/github.com\/.*\/|file:\/\/.*\/)(.*)/gm;
 34         const folderDirExp = regex.exec(this.uri);
 35         if (!folderDirExp || folderDirExp.length < 1) {
 36             throw new CliError(`Invalid repository name: ${this.uri}`);
 37         }
 38         return folderDirExp[2];
 39     }

It is checking for a git repo which is hosted on Github.

Is there any way of using git repo other than github?
Is this the ideal behaviour?

Several extensions are broken with latest Theia

che-theia-task extension error log:

src/browser/che-task-provider.ts(30,19): error TS2322: Type '{ type: "che"; label: string; command: string; target: { machineName: string | undefined; }; previewUrl: string | undefined; }' is not assignable to type 'CheTaskConfiguration'.
  Property 'source' is missing in type '{ type: "che"; label: string; command: string; target: { machineName: string | undefined; }; previewUrl: string | undefined; }'.
src/browser/che-task-resolver.ts(57,15): error TS2322: Type '{ type: "che"; label: string; command: string; target: Target; previewUrl: string | undefined; }' is not assignable to type 'CheTaskConfiguration'.
  Property 'source' is missing in type '{ type: "che"; label: string; command: string; target: Target; previewUrl: string | undefined; }'.

che-theia-remote-extension error log:

lerna ERR!   Property 'getExtraPluginMetadata' is missing in type 'ServerPluginProxyRunner'.

Also che-theia-terminal extension is broken: #29

Improvements for containers plugin

Add some improvements to containers plugin:

  • add an option to display/hide all tooling containers.
  • add an option to display/hide workspace commands(che-task) per dev-container, execute a task in that container directly.
  • add an option to display/hide workspace env. variables and volumes if they exist.

che7 yaml plugin is failing to start

Description

starting a workspace from devfile using the yaml plugin, it is failling to start the yaml plugin with the error

Error - 5:48:19 PM] Starting client failed
Error: spawn ENOMEM
    at ChildProcess.spawn (internal/child_process.js:366:11)
    at spawn (child_process.js:538:9)
    at Object.fork (child_process.js:113:10)
    at Object.fork (/tmp/vscode-unpacked/redhat.vscode-yaml.latest.zdyhmqlakk.redhat.vscode-yaml-0.4.0.vsix/extension/node_modules/vscode-languageclient/lib/utils/electron.js:83:23)
    at Promise (/tmp/vscode-unpacked/redhat.vscode-yaml.latest.zdyhmqlakk.redhat.vscode-yaml-0.4.0.vsix/extension/node_modules/vscode-languageclient/lib/main.js:269:34)
    at new Promise (<anonymous>)
    at LanguageClient.createMessageTransports (/tmp/vscode-unpacked/redhat.vscode-yaml.latest.zdyhmqlakk.redhat.vscode-yaml-0.4.0.vsix/extension/node_modules/vscode-languageclient/lib/main.js:249:24)
    at LanguageClient.createConnection (/tmp/vscode-unpacked/redhat.vscode-yaml.latest.zdyhmqlakk.redhat.vscode-yaml-0.4.0.vsix/extension/node_modules/vscode-languageclient/lib/client.js:1854:21)
    at LanguageClient.resolveConnection (/tmp/vscode-unpacked/redhat.vscode-yaml.latest.zdyhmqlakk.redhat.vscode-yaml-0.4.0.vsix/extension/node_modules/vscode-languageclient/lib/client.js:1697:44)
    at LanguageClient.start (/tmp/vscode-unpacked/redhat.vscode-yaml.latest.zdyhmqlakk.redhat.vscode-yaml-0.4.0.vsix/extension/node_modules/vscode-languageclient/lib/client.js:1628:14)

Selection_299

Reproduction Steps

Start with chectl the devfile:

apiVersion: 1.0.0

metadata:
  name: fail-yaml

projects:

  - name: chectl
    source:
      type: git
      location: 'https://github.com/che-incubator/chectl.git'

components:

  - id: redhat/vscode-yaml/latest
    type: chePlugin

OS and version:
Minikube single-user with chectl (helm)

container view: move `New terminal`, commands and endpoints to the same level

Description

At the moment, for each container, actions and endpoints are in subfolders that force the user to unfold them to see them. Visually, it is also confusing when there are many containers
My proposal is to simplify the view, removing the folders commands and endpoints and move all of them in the same level of New terminal item.

Before:

Selection_217

After would look like:
after

Can't build dockerimages.

Description

I couldn't build docker images from the master branch.

Reproduction Steps

cd dockerfiles/theia-dev
./build.sh --tags:next

OS and version:

Diagnostics:

error /projects/theia/node_modules/@theia/electron: Command failed.
Exit code: 1
Command: node ./scripts/skip-replace-ffmpeg || (node ./electron-replace-ffmpeg && node ./electron-h264-test)
Arguments:
Directory: /projects/theia/node_modules/@theia/electron
Output:
Downloading tmp-395-0-ffmpeg-v3.1.7-linux-x64.zip
[============================================>] 100.0% of 1.11 MB (742.54 kB/s)
events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: spawn /projects/theia/node_modules/electron/dist/electron ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
    at Function.Module.runMain (internal/modules/cjs/loader.js:757:11)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
Emitted 'error' event at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:246:12)

Container view: running a che-command/task do not work if you have not run a che-command/task first/one time with the command pallette

running a che-command/task do not work if you have not run a che-command/task first/one time with the command pallette:

The command do not start, neither does any of the commands

  • Run the task init ... che:theia from the command palette.
  • Now any other commands would work from the view container.

My workspace view empty if no user defined container

Description

The workspace view completely empty if no user runtime has been define in the container view.
Also a error appear [object Object]

Selection_244
with the devfile:

specVersion: 0.0.1
name: chectl
projects:
  - 
    name: chectl
    source:
      type: git
      location: 'https://github.com/che-incubator/chectl.git'

components:
  - 
    id: eclipse/che-theia/next
    type: cheEditor
  - 
    id: eclipse/che-machine-exec-plugin/0.0.1
    type: chePlugin
  - 
    id: redhat/vscode-yaml/0.4.0
    type: chePlugin
  - 
    alias: ts
    id: che-incubator/typescript/1.30.2
    type: chePlugin

commands:
  - name: build
    actions:
      - type: exec
        component: ts
        command: yarn
        workdir: /projects/chectl
  - name: test
    actions:
      - type: exec
        component: ts
        command: yarn test
        workdir: /projects/chectl

But once we add a dockerimage component:
Selection_235

specVersion: 0.0.1
name: chectl
projects:
  - 
    name: chectl
    source:
      type: git
      location: 'https://github.com/che-incubator/chectl.git'

components:
  - 
    id: eclipse/che-theia/next
    type: cheEditor
  - 
    id: eclipse/che-machine-exec-plugin/0.0.1
    type: chePlugin
  - 
    alias: git-devtools
    type: dockerimage
    image: sunix/git-devtools
    mountSources: true
    memoryLimit: 256M
  - 
    id: redhat/vscode-yaml/0.4.0
    type: chePlugin
  - 
    alias: ts
    id: che-incubator/typescript/1.30.2
    type: chePlugin

commands:
  - name: build
    actions:
      - type: exec
        component: ts
        command: yarn
        workdir: /projects/chectl
  - name: test
    actions:
      - type: exec
        component: ts
        command: yarn test
        workdir: /projects/chectl

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.