Giter Club home page Giter Club logo

eclipse-theia / theia-blueprint Goto Github PK

View Code? Open in Web Editor NEW
328.0 20.0 120.0 5.66 MB

The Eclipse IDE is a modern and open IDE for cloud and desktop. The Theia IDE is based on the Theia platform. The Theia IDE is available as a downloadable desktop application. You can also try the latest version of the Theia IDE online. For more details, see the Readme below.

Home Page: https://theia-ide.org/#theiaide

License: MIT License

Dockerfile 4.09% JavaScript 14.70% Shell 3.55% TypeScript 66.47% CSS 1.70% HTML 9.49%

theia-blueprint's Introduction


The Eclipse Theia IDE is built with this project.
Eclipse Theia IDE/Blueprint also serves as a template for building desktop-based products based on the Eclipse Theia platform.

Installers Build Status

Main Theia Repository

Visit the Theia website for more documentation: Using the Theia IDE, Packaging Theia as a Desktop Product.

License

Trademark

"Theia" is a trademark of the Eclipse Foundation https://www.eclipse.org/theia

What is this?

The Eclipse IDE is a modern and open IDE for cloud and desktop. The Theia IDE is based on the Theia platform. The Theia IDE is available as a downloadable desktop application. You can also try the latest version of the Theia IDE online. The online test version is limited to 30 minutes per session and hosted via Theia.cloud. Finally, we provide an experimental Docker image for hosting the Theia IDE online.

The Eclipse Theia IDE also serves as a template for building desktop-based products based on the Eclipse Theia platform, as well as to showcase Eclipse Theia capabilities. It is made up of a subset of existing Eclipse Theia features and extensions. Documentation is available to help you customize and build your own Eclipse Theia-based product.

Theia IDE vs Theia Blueprint

The Theia IDE has been rebranded from its original name “Theia Blueprint”. To avoid any confusion, the repository and code artifacts will keep the name “Blueprint”. You can therefore assume the terms “Theia IDE” and “Theia Blueprint” to be synonymous.

Development

Requirements

Please check Theia's prerequisites, and keep node versions aligned between Theia IDE and that of the referenced Theia version.

Documentation

Documentation on how to package Theia as a Desktop Product may be found here

Repository Structure

  • Root level configures mono-repo build with lerna
  • applications groups the different app targets
    • browser contains a browser based version of Eclipse Theia IDE that may be packaged as a Docker image
    • electron contains the electron app to package, packaging configuration, and E2E tests for the electron target.
  • theia-extensions groups the various custom theia extensions for the Eclipse Theia IDE
    • product contains a Theia extension contributing the product branding (about dialogue and welcome page).
    • updater contains a Theia extension contributing the update mechanism and corresponding UI elements (based on the electron updater).
    • launcher contains a Theia extension contributing, for AppImage applications, the option to create a script that allows to start the Eclipse Theia IDE from the command line by calling the 'theia' command.

Build

For development and casual testing of the Eclipse Theia IDE, one can build it in "dev" mode. This permits building the IDE on systems with less resources, like a Raspberry Pi 4B with 4GB of RAM.

# Build "dev" version of the app. Its quicker, uses less resources, 
# but the front end app is not "minified"
yarn && yarn build:dev && yarn download:plugins

Production applications:

# Build production version of the Eclipse Theia IDE app
yarn && yarn build && yarn download:plugins

Package the Applications

ATM we only produce packages for the Electron application.

yarn package:applications
# or
yarn electron package

The packaged application is located in applications/electron/dist.

Create a Preview Electron Electron Application (without packaging it)

yarn electron package:preview

The packaged application is located in applications/electron/dist.

Running E2E Tests on Electron

The E2E tests basic UI tests of the actual application. This is done based on the preview of the packaged application.

yarn electron package:preview
yarn electron test

Running Browser app

The browser app may be started with

yarn browser start

and connect to http://localhost:3000/

Troubleshooting

Reporting Feature Requests and Bugs

The features in the Eclipse Theia IDE are based on Theia and the included extensions/plugins. For bugs in Theia please consider opening an issue in the Theia project on Github. The Eclipse Theia IDE only packages existing functionality into a product and installers for the product. If you believe there is a mistake in packaging, something needs to be added to the packaging or the installers do not work properly, please open an issue on Github to let us know.

Docker

The Docker image of the Theia IDE is currently in experimental state. It is built from the same sources and packages as the desktop version, but it is not part of the preview test. You can find a prebuilt Docker image of the IDE here.

You can also create the Docker image for the Eclipse Theia IDE based on the browser app with the following build command:

docker build -t theia-ide -f browser.Dockerfile .

You may then run this with

docker run -p=3000:3000 --rm theia-ide

and connect to http://localhost:3000/

theia-blueprint's People

Contributors

alexandrabuzila avatar atharva321 avatar danepowell avatar dannaf avatar dependabot[bot] avatar ducngn avatar duncdrum avatar erikmallbergstm avatar goekce avatar jfaltermeier avatar jonashelming avatar joostsp avatar lucas-koehler avatar marcdumais-work avatar martin-fleck-at avatar msujew avatar niklas-dahlquist avatar paul-marechal avatar planger avatar sgraband avatar thegecko avatar tortmayr avatar tsmaeder avatar vince-fugnitto avatar vladarama 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

theia-blueprint's Issues

Browser package for Blueprint

Feature Description:

Now that we have packages for multiple operating systems, for that Electron version of Blueprint, it would be desirable to also have some sort of packaged browser version of Blueprint.

This could be easily consumed, e.g. in Docker images, instead of attempting to build the contained Theia app from scratch, each time, as has been the norm so far. We think it will lower the bar considerably, for creating Theia-based containerised vanilla IDE appliances (where no customisation of the app is required).

As a first step, we'd be happy to have a single type of package, whatever is easiest, so long as we can use it in a Docker image we intend to create in this repo.

Windows Installer — Default Path

Hi.

The default installation path in the Theia Blueprint installer is C:\Program Files\Rob Moran\TheiaBlueprint. This seems a bit too specific.

TheiaWindowsInstaller

I suggest the default to be C:\Program Files\TheiaBlueprint.

Keep up the good work!

Extensions are not grouped under a folder

Bug Description:

The file structure is not following 'theia' or 'lerna' defaults where additional packages are consolidated
under a 'packages' folder.
So the top level project may continue to grow as extension get added which is not desirable as multiple projects may
extend a non optimal structure.

Steps to Reproduce:

  1. Open theia-blueprint repository in a file system and observe that the two existing extensions are under the top level project
    i.e. 'theia-blueprint-product' and 'theia-blueprint-updater'

Additional Information

I will submit a PR shortly after submitting this issue.

  • Operating System:
  • Theia Version:

loader: add a custom loading screen animation

Feature Description:

The goal is to provide a custom loading animation (different from upstream) to customize the application further, and also be used as an example for extenders to implement their own.

The idea would be to use the following contribution point to provide a custom loading screen (package.json):

"generator": {
    "config": {
        "preloadTemplate": "./preload.html"
    }
}

An example can be found in the following repo: https://github.com/vince-fugnitto/theia-custom-preload.

Structure of download area / Naming of files

We face the following requirements:

  1. We want to have a stable link to the latest version (see eclipse-theia/theia-website#133 (comment)) for the download page

  2. As we want to collect download stats, we need to use the select-a-mirror script (https://wiki.eclipse.org/Project_Download_Stats#ZIP_files). This only works for links to files as far as I could see, so simply linking to https://download.eclipse.org/theia/latest/linux/ does not help. We need to take this into account for the stable link.

  3. For updates, we are currently looking for latest-linux.yml, latest.yml, and latest-mac.yml at https://download.eclipse.org/theia/latest (As was configured here:

    url: "https://download.eclipse.org/theia/latest/"
    )
    We moved the installers and yml files to platform specfic subdirectories recently, which makes sense.
    However updates stopped working, so we need to adjust the updater accordingly.

So I think a good solution would be to have:

The only visible change would then be that the installer file name won't include the version number any more.

Are there any concerns or comments about this?

Cannot run signed Theia binary after successful installation on MacOS

Bug Description:

I tried installing the new signed Theia binary on my Macbook Pro.

It installed successfully, but when I want to start Theia, it shows me this error message:

Screenshot 2020-08-18 at 16 04 26

Steps to Reproduce:

  1. Go to https://download.eclipse.org/theia/1.2.0/
  2. Click on macos
  3. Download and open signed-theia-1.2.0.dmg
  4. Drag the Theia icon onto the Applications icon (installation works)
  5. Open Launchpad, find Theia, and try to run it (fails with above error message)

Additional Information

  • Operating System: Mac OS
  • Theia Version: 1.2.0

GLIBC on build machine too recent for Ubuntu 18.04 LTS

Bug Description:

When starting the AppImage on Ubuntu 18.04 we get this error:

Failed to start the backend application.
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /tmp/.mount_Theia-cDpToP/resources/app/node_modules/@theia/node-pty/build/Release/pty.node)

Steps to Reproduce:

  1. Start the AppImage on Ubuntu 18.04 LTS

builtin: revisit default builtins

Feature Description:

We should revisit the current default builtins present in the application.

Ideally, we should include a minimum set of builtins (likely only those provided by vscode by default) since we already allow end-users to install their favorite extensions at runtime.

I believe the following can potentially be removed, making the app smaller, and more tailored to end-users:

"redhat.java": "https://open-vsx.org/api/redhat/java/0.73.0/file/redhat.java-0.73.0.vsix",
"vscjava.vscode-java-debug": "https://open-vsx.org/api/vscjava/vscode-java-debug/0.30.0/file/vscjava.vscode-java-debug-0.30.0.vsix",
"vscjava.vscode-java-test": "https://open-vsx.org/api/vscjava/vscode-java-test/0.26.1/file/vscjava.vscode-java-test-0.26.1.vsix",
"vscjava.vscode-maven": "https://open-vsx.org/api/vscjava/vscode-maven/0.21.2/file/vscjava.vscode-maven-0.21.2.vsix",
"vscjava.vscode-java-dependency": "https://open-vsx.org/api/vscjava/vscode-java-dependency/0.16.0/file/vscjava.vscode-java-dependency-0.16.0.vsix",

cc @marcdumais-work

Define name for the Theia installer blue print product

The name should indicate that the downloadable product is blue print/reference product to showcase the capabilities of Eclipse Theia. As a blue print product that serves two purposes:

  1. A template to build custom products based on Theia (including an installer)
  2. An easy way to consume the latest state of Theia as a desktop application (including an installer)

To indicate the purpose in the name, we suggest to use
Full name: "Eclipse Theia Blue Print Product"
Shorter: "Eclipse Theia Blue Print"
Even Shorter: "Theia BP"

Content Updates to About / Welcome

@croundy and I have made a pass through the text and have some minor suggestions. The main one is not using the term 'Eclipse Theia Blueprint product' andf replacing it with just 'Eclipse Theia Blueprint'.

PR to follow.

git: consider switching to builtin extensions

Feature Description:

We should consider switching to using the vscode builtins for git support for the application rather than @theia/git.

Some considerations for switching over:

  • buitin git support is feature rich, and provides a closer experience to vscode.
  • the @theia/timeline extension is useless without it, @theia/git does not register timeline providers (ex: git history).
  • including the builtin is necessary in order to use other git-related extensions such as the popular gitlens.

Builtins:

Check for Updates gives no feedback if there is none [macOS]

macOS
Blueprint 1.12.1

Steps:
Go to File -> Settings -> Check for Updates...

Expected:
A visual cue is shown telling the user that they are up to date. This could be a popup window (recommended), or a notification.

Actual:
Nothing happens.

I'm not sure what happens when an update is available.

Change name from theia example to theia blueprint in the code and the config files

As also pointed out by @marcdumais-work in #19 we need to adapt the name in several places:

  • git repo name: see #22
  • packages
    • Electron App
      • name: theia-blueprint
      • description: Eclipse Theia blueprint product
      • productName: Theia Blueprint
    • Updater
      • name: theia-blueprint-updater",
      • description: Eclipse Theia blueprint product updater
  • folder structure:
  • Store user level configurations under user home - ~/.theia-blueprint (rather than the upstream default ~/.theia)

Update Readme of this repo

Update the readme with some additional content:

  • Add section on reporting feature requests and bugs
  • Add pointer to download page
  • Add pointer to customization documentation
  • Add disclaimer on what it is and what it is not similar to welcome page

quality: add linting rules

Feature Description:

The goal would be to add linting as part of the project (eslint) to improve overall code quality similarly to the upstream eclipse-theia repository. The linting rules will help identify issues earlier in the development cycle (build and continuous-integration).

The linting rules will help:

  • identify issues earlier.
  • statically analyze the code to identify problems, and possibly formatting inconsistencies.
  • enforce code quality and best practices.

https://github.com/eclipse-theia/theia/tree/master/configs

Build from source on MacOS prompts for password

Description of bug:

When building the application the build script prompts for a password for [email protected]. I'm assuming this is for CICD and thus I as a user would not have nor need this password. Providing the wrong password fails the installation. In addition it appears that failing the installation at this step does not exit gracefully (the install script keeps running even though it's has been exited via control character (ctrl c) and a new console prompt is shown.

The offending line appears to be
ssh -q [email protected] rm -f '"chrome_crashpad_handler"' '"signed-chrome_crashpad_handler"' entitlements.plist

Steps to Reproduce:

On MacOS:

  1. Clone the repo locallygit clone https://github.com/eclipse-theia/theia-blueprint.git
  2. Install dependencies ```cd theia-blueprint && yarn``
  3. Attempt to build package (as per readme) yarn package
  4. Attempt to build package preview (also as per readme) yarn package:preview

What I'm seeing:

Password prompt:
Screen Shot 2021-04-08 at 6 20 40 AM

Continuing after control c:
Screen Shot 2021-04-08 at 6 24 41 AM

Build logs:

yarn run v1.21.1
$ (cd electron-app && yarn package:preview)
$ yarn clean:dist && electron-builder --dir
$ rimraf dist
  • electron-builder  version=22.9.1 os=19.6.0
  • loaded configuration  file=/Users/lucienbrule/Developer/sandbox/theia-blueprint/electron-app/electron-builder.yml
  • writing effective config  file=dist/builder-effective-config.yaml
  • rebuilding native dependencies  dependencies=@theia/[email protected], [email protected], [email protected], [email protected], [email protected], [email protected] platform=darwin arch=x64
  • install prebuilt binary  name=drivelist version=9.2.2 platform=darwin arch=x64
  • build native dependency from sources  name=drivelist
                                          version=9.2.2
                                          platform=darwin
                                          arch=x64
                                          reason=prebuild-install failed with error (run with env DEBUG=electron-builder to get more information)
                                          error=prebuild-install info begin Prebuild-install version 5.3.6
    prebuild-install info looking for cached prebuild @ /Users/lucienbrule/.npm/_prebuilds/1ba709-drivelist-v9.2.2-electron-v80-darwin-x64.tar.gz
    prebuild-install http request GET https://github.com/balena-io-modules/drivelist/releases/download/v9.2.2/drivelist-v9.2.2-electron-v80-darwin-x64.tar.gz
    prebuild-install http 404 https://github.com/balena-io-modules/drivelist/releases/download/v9.2.2/drivelist-v9.2.2-electron-v80-darwin-x64.tar.gz
    prebuild-install WARN install No prebuilt binaries found (target=9.3.2 runtime=electron arch=x64 libc= platform=darwin)

  • rebuilding native dependency  name=drivelist version=9.2.2
  • rebuilding native dependency  name=@theia/node-pty version=0.9.0-theia.6
  • rebuilding native dependency  name=find-git-repositories version=0.1.3
  • rebuilding native dependency  name=native-keymap version=2.2.1
  • rebuilding native dependency  name=nsfw version=2.1.2
  • rebuilding native dependency  name=oniguruma version=7.2.1
  • packaging       platform=darwin arch=x64 electron=9.3.2 appOutDir=dist/mac
  • copying Electron  source=/Users/lucienbrule/Developer/sandbox/theia-blueprint/node_modules/electron/dist/Electron.app destination=/Users/lucienbrule/Developer/sandbox/theia-blueprint/electron-app/dist/mac/Electron.app
  • asar usage is disabled — this is strongly not recommended  solution=enable asar and use asarUnpack to unpack files that must be externally available
Deleting /Users/lucienbrule/Developer/sandbox/theia-blueprint/electron-app/dist/mac/TheiaBlueprint.app/Contents/Resources/app/node_modules/unzip-stream/aa.zip...
Deleting /Users/lucienbrule/Developer/sandbox/theia-blueprint/electron-app/dist/mac/TheiaBlueprint.app/Contents/Resources/app/node_modules/unzip-stream/testData*...
Signing /Users/lucienbrule/Developer/sandbox/theia-blueprint/electron-app/dist/mac/TheiaBlueprint.app/Contents/Resources/app/node_modules/@theia/electron/node_modules/electron/dist/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Helpers/chrome_crashpad_handler...
Password:

Additional Information

  • Operating System: Darwin 19.6.0 Darwin Kernel Version 19.6.0: Thu Oct 29 22:56:45 PDT 2020; root:xnu-6153.141.2.2~1/RELEASE_X86_64 x86_64
  • Theia Version: "version": "1.12.1"

I'm evaluating this for work and would love to contribute back. If I'm not following the prescribed method to build this from source and the README.md is not authoritative then I'll submit a PR with steps that get this to build. Will dig around.

Thank you for considering my issue!

  • Lucien

Define Theia default package for installer

We need to define what to include in terms of extensions and plugins.

Initial suggestion:

  • Edit, Launch and Debug JS, Typescript and Java Code
  • Edit XML and JSON files with syntax highlighting
  • Git Integration (Clone, push, pull, commit, checkout, diff)

In addition we could add some features to showcase the flexibility of the Theia platform:

  • A code generator based on Xtend
  • A textual editor for an XText-based DSL
  • A form-based editor (e.g. for editing bug reports)
  • A graphical editor or visualization (e.g. editing diagrams for Ecore)

Show vscode extension API version in `About` dialog

Currently, it is not easily possible to see what vscode extension API version Theia Blueprint supports. One would expect the supported vscode extension API in the About dialog next to the Theia version.

According to plugin-ext-vscode Theia 1.12.0+ supports vscode 1.50.0:

VSCODE_DEFAULT_API_VERSION: "1.50.0" = "1.50.0"

Source: https://eclipse-theia.github.io/theia/docs/next/modules/plugin_ext_vscode.html

It would be nice to be able to see the vscode version in the About dialog.

Image and Icon design

We need icons and images for various other issues (e.g. #9). This issue intends to collect all of them.

  • Image for About Dialog/Welcome Page are dependent on the design we will use there. There are no restrictions/requirements from our side
  • Windows Launcher Icon
    • File type .ico
    • Dimension Combination of:
      • 256 x 256 pixels – 32bit (24bit colour, 8bit transparency)
      • 48 x 48 pixels – 32bit (24bit colour, 8bit transparency)
      • 32 x 32 pixels – 32bit (24bit colour, 8bit transparency)
      • 16 x 16 pixels – 32bit (24bit colour, 8bit transparency)
      • 256 x 256 pixels – 8bit (256 colours, 1bit colour transparency)
      • 48 x 48 pixels – 8bit (256 colours, 1bit colour transparency)
      • 32 x 32 pixels – 8bit (256 colours, 1bit colour transparency)
      • 16 x 16 pixels – 8bit (256 colours, 1bit colour transparency)
  • Mac Launcher Icon
    • File type .icns
    • Dimension Combination of
      • 16×16 (8bit transparency)
      • 32×32 (8bit transparency)
      • 48×48 (8bit transparency)
      • 128×128 (8bit transparency)
      • 256×256 (8bit transparency)
      • 512×512 (8bit transparency)
      • 16×16 (1bit transparency)
      • 32×32 (1bit transparency)
      • 48×48 (1bit transparency)
      • 128×128 (1bit transparency)
      • 256×256 (1bit transparency)
      • 512×512 (1bit transparency)
  • Linux Launcher Icon
    • File type .png
    • Dimension 512 x 512
  • Installer Sidebar image
    • File type .bmp
    • Dimension width: 164 height: 314

json: downgrade 'vscode-json-language-features` plugin

Bug Description:

The vscode-json-language-features plugin should be downgraded since it is currently incompatible with the framework.
The plugin reports an error (API missing until monaco upgrade), and there is no schema support for editing JSON files (such as the settings.json):

root ERROR [hosted-plugin: 18850] With stack trace: TypeError: Cannot read property 'path' of undefined
    at Object.a [as joinPath] (/home/evinfug/workspaces/theia-blueprint/electron-app/plugins/vscode.json-language-features/extension/client/dist/node/jsonClientMain.js:1:250459)
    at /home/evinfug/workspaces/theia-blueprint/electron-app/plugins/vscode.json-language-features/extension/client/dist/node/jsonClientMain.js:1:117952
    at Array.forEach (<anonymous>)
    at /home/evinfug/workspaces/theia-blueprint/electron-app/plugins/vscode.json-language-features/extension/client/dist/node/jsonClientMain.js:1:117809
    at Array.forEach (<anonymous>)
    at g (/home/evinfug/workspaces/theia-blueprint/electron-app/plugins/vscode.json-language-features/extension/client/dist/node/jsonClientMain.js:1:117667)
    at /home/evinfug/workspaces/theia-blueprint/electron-app/plugins/vscode.json-language-features/extension/client/dist/node/jsonClientMain.js:1:124076 

Steps to Reproduce:

  1. start the electron application
  2. open the preferences, and corresponding settings.json file
  3. notice that there is no schema support

[packages] Electron binaries packaged twice

Bug Description:

Reported by @jfaltermeier : #39 (comment)

The root issue I think is that @theia/electron the npm electron package is currently defined as a runtime dependency, from @theia/electron. If it were instead a devDependency, it would be stripped when we package and not be packaged-along blueprint, accompanied by the Electron development package it depends-on. It remains to be seen if this would introduce runtime problems.

Steps to Reproduce:

Build the repo and generate the preview package. Look under the package for some Electron-related binary and confirm it's both in the root and under runtime dependency @theia/electron

# Linux version
$> yarn && yarn package:preview
$> cd electron-app/dist/linux-unpacked/
$> $> find . -name libvulkan.so
./resources/app/node_modules/@theia/electron/node_modules/electron/dist/libvulkan.so
./libvulkan.so

Additional Information

  • Operating System:
  • Theia Version:

Rename theia-updater to @theia/electron-updater

After splitting the updater from the rpdocut branding (#43) we should consider renaming the updater extension. It is actually generic, so it could potentially be reused by any other application relying on the electron updater.

Improvements for Welcome page and about dialog

The about dialog is not responsive and does not display properly for smaller viewports.

The styling of the custom getting-started can be improved (especially when verifying responsiveness).

Use applicationName property rather than hardcoding "Theia Blueprint"

Add welcome page in instance

Design a welcome page describing the purpose of the blueprint and some details:

  • How to get the source code and/or contribute
  • How to report bugs
  • Quick intro to included functionality potentially with links to the functionality

Some image to make it less boring, e.g. half-transparent Theia logo in the background
From a technical perspective we have no limitations of how this may be customized.
For reference, this is the default welcome page / getting started:

image1

NODE_MODULE_VERSION error

Bug Description:

when yarn start:
image

when yarn package:preview:
image

Steps to Reproduce:

1.clone this repo
2.exec yarn
3.exec yarn start

Additional Information

  • Operating System: macOS
  • Theia Version: 1.5.0
  • Node Version: v12.18.3
  • Python Version: v2.7

Announce Installer availability

Messaging: Blueprint product to showcase Theia platform capabilities

  • Blog Post
  • Twitter: @ECDTools, @theia_ide
  • Press release

Announce in stages:

  • Alpha
  • Beta
  • Release

Package Size Review

On macOS, the package (.pkg) installer seems quite large - ~255MB and the space it takes on disk when installed is close to 700MB.

Can/Should it be slimmed down?

Design about dialog

Design a proper about dialog with some text describing the purpose of the product (Blueprint product) and pointers to more information:

  • Link to download page
  • Link to Github project
  • Link to report bugs
  • Legal information and licenses.

Some graphics would make this dialog more appealing.

For reference this is the default about dialog:

image2

Measure number of downloads

This may already happen automatically for files hosted on Eclipse infrastructure, but I want to make sure we are aware of this and tracking from the start. It'll be one of the most important metrics on the success of the project.

Docker image

Feature Description:

Before Theia joined the EF, we had the theia-apps repo. Because of its popularity and diversity of contributors, it's a hard repo to re-license, making it difficult to bring under the Foundation.

However, with the move to vscode extensions to support programming languages, it's becoming less important to have multiple, per-language examples, when the main difference is which extensions are bundled. They could essentially all use the same Theia application, in theory.

I think the theia-apps examples can remain, with minimal maintenance, for a while. But we can also make one or a couples, based on our experiences with theia-apps and the lessons learned there.

Let's start with a modest image, a Blueprint-based IDE appliance, for JavaScript/TypeScript software development.

Let's re-use the browser package we'll make in #74

[Linux][1.11.0] Blueprint does not start: "cannot find fix-path'"

Bug Description:

Blueprint v1.11.0 does not start. I get the same error with the .Appimage or the Debian installer version:
$ /opt/TheiaBlueprint/theia-blueprint

A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'fix-path'
Require stack:
- /opt/TheiaBlueprint/resources/app/src-gen/frontend/electron-main.js
- /opt/TheiaBlueprint/resources/app/scripts/theia-electron-main.js
- 
    at Module._resolveFilename (internal/modules/cjs/loader.js:797:17)
    at Function.o._resolveFilename (electron/js2c/browser_init.js:281:679)
    at Module._load (internal/modules/cjs/loader.js:690:27)
    at Function.Module._load (electron/js2c/asar.js:769:28)
    at Module.require (internal/modules/cjs/loader.js:852:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/opt/TheiaBlueprint/resources/app/src-gen/frontend/electron-main.js:9:1)
    at Module._compile (internal/modules/cjs/loader.js:967:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1004:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)

Steps to Reproduce:

  1. download .deb or AppImage from https://download.eclipse.org/theia/1.11.0/linux/)
  2. chmod +x and start .AppImage or for .deb start: /opt/TheiaBlueprint/theia-blueprint

Additional Information

  • Operating System: Ubuntu 20.04
  • Theia Version: 1.11

I have not tested the Windows or MacOS packages, so I assume the issue may be Linux-specific.

Install location on macOS has redundant folder

Bug Description:

Theia installs in the location:
Applications -> Theia -> Theia.app

I would expect it to be just:
Applications -> Theia.app

One of the side effects is that the app doesn't appear to be indexed for system search until it is opened, although that could be a latency issue related to my system.

Steps to Reproduce:

  1. Install Blueprint

Additional Information

  • Operating System: macOS Big Sur 11.2.3
  • Theia Version: 1.11.0

Test installed instance

We need to have some smoke/system tests for the installed instance to make sure it is properly working.

Split updater and product branding

It would be useful to split the updater feature (that is generic) and the blueprint product customizations.

We (EclipseSource) intend to contribute to this on behalf of ST Microelectronics.

Beautify download page

The download page needs some love:

  • A textual description what this is about: "Blueprint product to showcase Theia platform capabilities”
  • Dropdown or similar to select OS
  • Some graphics for the page and icons for the download links
  • Collect download stats
  • Link to this project for the sources
  • Link how to report bugs
  • Add download page link button to Theia landing page

Currently an initial download page is available here:
https://download.eclipse.org/theia/

Example .exe download fails

"Set up CI system to create desktop installer of vanilla Theia #5481" says

First releases of theia-example v1.2.0 are now appearing here:
https://download.eclipse.org/theia/

That offers

https://download.eclipse.org/theia/snapshots/windows/theia-Installer-1.2.0.exe

which here (Chrome browser) fails giving "Access Forbidden".

Note: I would contribute this report on the issue itself except someone has locked that issue to non-"contributors" (as if testers aren't contributors) with "Pestering the project for one's pet feature is not productive."

Improve error reporting on failed updates

At the moment the "Check for updates" action fails silently, e.g. if there is no connection or the URL is not available. It would be nice to show the user at least that the update has failed, ideally of course why.

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.