Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Theia IDE Rebrand and Theia 1.45.0 #321

Merged
merged 7 commits into from
Dec 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Publish Blueprint Docker Image
name: Publish Theia IDE Docker Image

on:
workflow_dispatch:
Expand All @@ -10,7 +10,7 @@ on:

jobs:
build:
name: Build and push blueprint image to Docker Hub
name: Build and push Theia IDE image to Github Packages
runs-on: ubuntu-latest

steps:
Expand All @@ -37,8 +37,5 @@ jobs:
file: browser.Dockerfile
push: true
tags: |
ghcr.io/${{ github.repository }}/blueprint:${{ github.event.inputs.tag }}
ghcr.io/${{ github.repository }}/blueprint:latest
# Add below after repository was created
# eclipsetheia/blueprint:${{ github.event.inputs.tag }}
# eclipsetheia/blueprint:latest
ghcr.io/${{ github.repository }}/theia-ide:${{ github.event.inputs.tag }}
ghcr.io/${{ github.repository }}/theia-ide:latest
40 changes: 20 additions & 20 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@ pipeline {
disableConcurrentBuilds()
}
environment {
BLUEPRINT_JENKINS_CI = 'true'
THEIA_IDE_JENKINS_CI = 'true'

// to save time and resources, we skip some release-related steps
// when not in the process of releasing. e.g. signing/notarizing the
// installers. It can sometimes be necessary to run these steps, e.g.
// when troubleshooting. Set the variable below to 'true' to do so.
// We will still stop short of publishing anything.
BLUEPRINT_JENKINS_RELEASE_DRYRUN = 'false'
// BLUEPRINT_JENKINS_RELEASE_DRYRUN = 'true'
THEIA_IDE_JENKINS_RELEASE_DRYRUN = 'false'
// THEIA_IDE_JENKINS_RELEASE_DRYRUN = 'true'
}
stages {
stage('Build') {
Expand All @@ -53,7 +53,7 @@ pipeline {
env.BRANCH_NAME ==~ /PR-(\d)+/
}
expression {
env.BLUEPRINT_JENKINS_RELEASE_DRYRUN == 'true'
env.THEIA_IDE_JENKINS_RELEASE_DRYRUN == 'true'
}
}
}
Expand Down Expand Up @@ -174,7 +174,7 @@ spec:
env.CHANGE_TITLE ==~ /$jenkinsRelatedRegex/
}
expression {
env.BLUEPRINT_JENKINS_RELEASE_DRYRUN == 'true'
env.THEIA_IDE_JENKINS_RELEASE_DRYRUN == 'true'
}
}
}
Expand Down Expand Up @@ -254,14 +254,14 @@ spec:
withCredentials([string(credentialsId: "github-bot-token", variable: 'GITHUB_TOKEN')]) {
script {
signInstaller('exe', 'windows')
updateMetadata('TheiaBlueprint.exe', 'latest.yml', 'windows', 1200)
updateMetadata('TheiaIDESetup.exe', 'latest.yml', 'windows', 1200)
}
}
}
container('jnlp') {
script {
uploadInstaller('windows')
copyInstallerAndUpdateLatestYml('windows', 'TheiaBlueprint', 'exe', 'latest.yml', '1.41.0,1.42.1,1.43.0')
copyInstallerAndUpdateLatestYml('windows', 'TheiaIDESetup', 'exe', 'latest.yml', '') //'1.41.0,1.42.1,1.43.0')
}
}
}
Expand Down Expand Up @@ -399,12 +399,12 @@ def uploadInstaller(String platform) {
def packageJSON = readJSON file: "package.json"
String version = "${packageJSON.version}"
sshagent(['projects-storage.eclipse.org-bot-ssh']) {
sh "ssh [email protected] rm -rf /home/data/httpd/download.eclipse.org/theia/${version}/${platform}"
sh "ssh [email protected] mkdir -p /home/data/httpd/download.eclipse.org/theia/${version}/${platform}"
sh "scp ${distFolder}/*.* [email protected]:/home/data/httpd/download.eclipse.org/theia/${version}/${platform}"
sh "ssh [email protected] rm -rf /home/data/httpd/download.eclipse.org/theia/latest/${platform}"
sh "ssh [email protected] mkdir -p /home/data/httpd/download.eclipse.org/theia/latest/${platform}"
sh "scp ${distFolder}/*.* [email protected]:/home/data/httpd/download.eclipse.org/theia/latest/${platform}"
sh "ssh [email protected] rm -rf /home/data/httpd/download.eclipse.org/theia/ide/${version}/${platform}"
sh "ssh [email protected] mkdir -p /home/data/httpd/download.eclipse.org/theia/ide/${version}/${platform}"
sh "scp ${distFolder}/*.* [email protected]:/home/data/httpd/download.eclipse.org/theia/ide/${version}/${platform}"
sh "ssh [email protected] rm -rf /home/data/httpd/download.eclipse.org/theia/ide/latest/${platform}"
sh "ssh [email protected] mkdir -p /home/data/httpd/download.eclipse.org/theia/ide/latest/${platform}"
sh "scp ${distFolder}/*.* [email protected]:/home/data/httpd/download.eclipse.org/theia/ide/latest/${platform}"
}
} else {
echo "Skipped upload for branch ${env.BRANCH_NAME}"
Expand All @@ -421,16 +421,16 @@ def copyInstallerAndUpdateLatestYml(String platform, String installer, String ex
def packageJSON = readJSON file: "package.json"
String version = "${packageJSON.version}"
sshagent(['projects-storage.eclipse.org-bot-ssh']) {
sh "ssh [email protected] cp /home/data/httpd/download.eclipse.org/theia/latest/${platform}/${installer}.${extension} /home/data/httpd/download.eclipse.org/theia/latest/${platform}/${installer}-${version}.${extension}"
sh "ssh [email protected] cp /home/data/httpd/download.eclipse.org/theia/${version}/${platform}/${installer}.${extension} /home/data/httpd/download.eclipse.org/theia/${version}/${platform}/${installer}-${version}.${extension}"
sh "ssh [email protected] cp /home/data/httpd/download.eclipse.org/theia/latest/${platform}/${installer}.${extension}.blockmap /home/data/httpd/download.eclipse.org/theia/latest/${platform}/${installer}-${version}.${extension}.blockmap"
sh "ssh [email protected] cp /home/data/httpd/download.eclipse.org/theia/${version}/${platform}/${installer}.${extension}.blockmap /home/data/httpd/download.eclipse.org/theia/${version}/${platform}/${installer}-${version}.${extension}.blockmap"
sh "ssh [email protected] cp /home/data/httpd/download.eclipse.org/theia/ide/latest/${platform}/${installer}.${extension} /home/data/httpd/download.eclipse.org/theia/ide/latest/${platform}/${installer}-${version}.${extension}"
sh "ssh [email protected] cp /home/data/httpd/download.eclipse.org/theia/ide/${version}/${platform}/${installer}.${extension} /home/data/httpd/download.eclipse.org/theia/ide/${version}/${platform}/${installer}-${version}.${extension}"
sh "ssh [email protected] cp /home/data/httpd/download.eclipse.org/theia/ide/latest/${platform}/${installer}.${extension}.blockmap /home/data/httpd/download.eclipse.org/theia/ide/latest/${platform}/${installer}-${version}.${extension}.blockmap"
sh "ssh [email protected] cp /home/data/httpd/download.eclipse.org/theia/ide/${version}/${platform}/${installer}.${extension}.blockmap /home/data/httpd/download.eclipse.org/theia/ide/${version}/${platform}/${installer}-${version}.${extension}.blockmap"
}
if (UPDATABLE_VERSIONS.length() != 0) {
for (oldVersion in UPDATABLE_VERSIONS.split(",")) {
sshagent(['projects-storage.eclipse.org-bot-ssh']) {
sh "ssh [email protected] rm -f /home/data/httpd/download.eclipse.org/theia/${oldVersion}/${platform}/${yaml}"
sh "ssh [email protected] cp /home/data/httpd/download.eclipse.org/theia/${version}/${platform}/${yaml} /home/data/httpd/download.eclipse.org/theia/${oldVersion}/${platform}/${yaml}"
sh "ssh [email protected] rm -f /home/data/httpd/download.eclipse.org/theia/ide/${oldVersion}/${platform}/${yaml}"
sh "ssh [email protected] cp /home/data/httpd/download.eclipse.org/theia/ide/${version}/${platform}/${yaml} /home/data/httpd/download.eclipse.org/theia/ide/${oldVersion}/${platform}/${yaml}"
}
}
} else {
Expand All @@ -446,7 +446,7 @@ def isReleaseBranch() {
}

def isDryRunRelease() {
return env.BLUEPRINT_JENKINS_RELEASE_DRYRUN == 'true'
return env.THEIA_IDE_JENKINS_RELEASE_DRYRUN == 'true'
}

def isRelease() {
Expand Down
52 changes: 29 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
<br/>
<div id="theia-logo" align="center">
<br />
<img src="https://raw.githubusercontent.com/eclipse-theia/theia-blueprint/master/theia-extensions/product/src/browser/icons/TheiaBlueprintLogo-blue.png" alt="Theia Logo" width="300"/>
<h3>Eclipse Theia Blueprint</h3>
<img src="https://raw.githubusercontent.com/eclipse-theia/theia-blueprint/master/theia-extensions/product/src/browser/icons/TheiaIDE.png" alt="Theia Logo" width="300"/>
<h3>Eclipse Theia IDE</h3>
</div>

<div id="badges" align="center">

Eclipse Theia Blueprint is a template for building desktop-based products based on the Eclipse Theia platform.
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.

</div>

[![Installers](https://img.shields.io/badge/download-installers-blue.svg?style=flat-curved)](https://theia-ide.org/docs/blueprint_download/)
[![Installers](https://img.shields.io/badge/download-installers-blue.svg?style=flat-curved)](https://theia-ide.org//#theiaidedownload)
[![Build Status](https://ci.eclipse.org/theia/buildStatus/icon?subject=latest&job=Theia2%2Fmaster)](https://ci.eclipse.org/theia/job/Theia2/job/master/)
[![Build Status](https://ci.eclipse.org/theia/buildStatus/icon?subject=next&job=theia-next%2Fmaster)](https://ci.eclipse.org/theia/job/theia-next/job/master/)
<!-- currently we have no working next job because next builds are not published -->
<!-- [![Build Status](https://ci.eclipse.org/theia/buildStatus/icon?subject=next&job=theia-next%2Fmaster)](https://ci.eclipse.org/theia/job/theia-next/job/master/) -->

[Main Theia Repository](https://github.com/eclipse-theia/theia)

[Visit the Theia website](http://www.theia-ide.org) for more [documentation](https://theia-ide.org/docs/blueprint_documentation/).
[Visit the Theia website](http://www.theia-ide.org) for more documentation: [Using the Theia IDE](https://theia-ide.org/docs/user_getting_started/), [Packaging Theia as a Desktop Product](https://theia-ide.org/docs/blueprint_documentation/).

## License

Expand All @@ -27,20 +29,24 @@ Eclipse Theia Blueprint is a template for building desktop-based products based
## Trademark

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

## What is this?

Eclipse Theia Blueprint is 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 and can be easily downloaded and installed on all major operating system platforms (see below). Documentation is available to help you customize and build your own Eclipse Theia-based product.
The Eclipse IDE is a modern and open IDE for cloud and desktop. The Theia IDE is based on the [Theia platform](https://theia-ide.org).
The Theia IDE is available as a [downloadable desktop application](https://theia-ide.org//#theiaidedownload). 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.

## What is it not?
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](https://theia-ide.org/docs/composing_applications/) to help you customize and build your own Eclipse Theia-based product.

Eclipse Theia Blueprint is ***not*** **a production-ready product**. Therefore, it is also not meant to be a replacement for Visual Studio Code or any other IDE.
## 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](https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisites), and keep node versions aligned between Theia Blueprint and that of the referenced Theia version.

Please check Theia's [prerequisites](https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisites), and keep node versions aligned between Theia IDE and that of the referenced Theia version.

### Documentation

Expand All @@ -50,27 +56,27 @@ Documentation on how to package Theia as a Desktop Product may be found [here](h

- Root level configures mono-repo build with lerna
- `applications` groups the different app targets
- `browser` contains a browser based version of Eclipse Theia Blueprint that may be packaged as a Docker image
- `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 Blueprint
- `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 blueprint from the command line by calling the 'theia' command.
- `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 Blueprint, one can build it in "dev" mode. This permits building Blueprint on systems with less resources, like a Raspberry Pi 4B with 4GB of RAM.
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.

```sh
# Build "dev" version of the Blueprint app. Its quicker, uses less resources,
# 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 Blueprint applications:
Production applications:

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

Expand Down Expand Up @@ -120,21 +126,21 @@ and connect to <http://localhost:3000/>

### Reporting Feature Requests and Bugs

The features in Eclipse Theia Blueprint are based on Theia and the included extensions/plugins. For bugs in Theia please consider opening an issue in the [Theia project on Github](https://github.com/eclipse-theia/theia/issues/new/choose).
Eclipse Theia Blueprint 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](https://github.com/eclipse-theia/theia-blueprint/issues/new/choose) to let us know.
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](https://github.com/eclipse-theia/theia/issues/new/choose).
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](https://github.com/eclipse-theia/theia-blueprint/issues/new/choose) to let us know.

### Docker Build

You can create a Docker Image for Blueprint based on the browser app with the following build command:
You can create a Docker Image for the Eclipse Theia IDE based on the browser app with the following build command:

```sh
docker build -t theia-blueprint -f browser.Dockerfile .
docker build -t theia-ide -f browser.Dockerfile .
```

You may then run this with

```sh
docker run -p=3000:3000 --rm theia-blueprint
docker run -p=3000:3000 --rm theia-ide
```

and connect to <http://localhost:3000/>
Binary file added TheiaIDE logo/TheiaIDE.eps
Binary file not shown.
Binary file added TheiaIDE logo/TheiaIDE.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added TheiaIDE logo/TheiaIDE.pdf
Binary file not shown.
Binary file added TheiaIDE logo/TheiaIDE.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading