{"id":22555474,"url":"https://github.com/eclipse-cdt-cloud/cdt-cloud-blueprint","last_synced_at":"2025-04-10T05:20:55.246Z","repository":{"id":37952489,"uuid":"439312211","full_name":"eclipse-cdt-cloud/cdt-cloud-blueprint","owner":"eclipse-cdt-cloud","description":"CDT Cloud Blueprint is a template for building custom web-based C/C++ tools. It is made up of existing open source components and can be easily downloaded and installed on all major operating system platforms.","archived":false,"fork":false,"pushed_at":"2025-02-24T09:31:56.000Z","size":6293,"stargazers_count":28,"open_issues_count":18,"forks_count":12,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-24T06:45:18.325Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eclipse-cdt-cloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-17T11:37:50.000Z","updated_at":"2025-02-24T09:31:56.000Z","dependencies_parsed_at":"2023-02-09T13:16:23.420Z","dependency_job_id":"ca890bec-4ac5-40d3-9296-72a387b03e80","html_url":"https://github.com/eclipse-cdt-cloud/cdt-cloud-blueprint","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-cdt-cloud%2Fcdt-cloud-blueprint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-cdt-cloud%2Fcdt-cloud-blueprint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-cdt-cloud%2Fcdt-cloud-blueprint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-cdt-cloud%2Fcdt-cloud-blueprint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-cdt-cloud","download_url":"https://codeload.github.com/eclipse-cdt-cloud/cdt-cloud-blueprint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161505,"owners_count":21057603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-07T19:07:59.280Z","updated_at":"2025-04-10T05:20:55.227Z","avatar_url":"https://github.com/eclipse-cdt-cloud.png","language":"TypeScript","readme":"\u003cbr/\u003e\n\u003cdiv id=\"cdt-cloud-logo\" align=\"center\"\u003e\n    \u003cbr /\u003e\n    \u003cimg src=\"resources/CDTCloudBlueprintLogo.svg\" alt=\"CDT Cloud Blueprint Logo\"/\u003e\n    \u003ch3\u003eCDT Cloud Blueprint\u003c/h3\u003e\n\u003c/div\u003e\n\n\u003cdiv id=\"badges\" align=\"center\"\u003e\n\nCDT Cloud Blueprint is a template for building custom web-based C/C++ tools. It is made up of existing open source components and can be easily downloaded and installed on all major operating system platforms.\n\n\u003c/div\u003e\n\n[Visit the CDT Cloud website for more information](https://www.eclipse.org/cdt-cloud/).\n\n## License\n\n- [Eclipse Public License 2.0](LICENSE)\n- [一 (Secondary) GNU General Public License, version 2 with the GNU Classpath Exception](LICENSE)\n\n## What is this?\n\nCDT Cloud Blueprint is a template for building custom web-based C/C++ tools. It is made up of existing open source components and can be easily downloaded and installed on all major operating system platforms.\n\nCDT Cloud Blueprint also serves as a **template** for building desktop-based products based on the Eclipse Theia platform, as well as to showcase Eclipse Theia capabilities combined with C/C++ tools. 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 web-based C/C++ product based on Eclipse Theia.\n\n## What is it not?\n\nCDT Cloud 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.\n\n## Current state\n\nCDT Cloud Blueprint is in an early alpha state and undergoing active development.\nSee [this milestone for release 1.0](https://github.com/eclipse-cdt-cloud/cdt-cloud-blueprint/milestone/1).\n\n## Development\n\nCDT Cloud Blueprint is based on the [Eclipse Theia IDE](https://github.com/eclipse-theia/theia-ide).\n\n### Requirements\n\nPlease check Theia's [prerequisites](https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisites), and keep node versions aligned between CDT Cloud Blueprint and that of the referenced Theia version.\n\n### Documentation\n\nDocumentation on how to package Theia as a Desktop Product may be found [here](https://theia-ide.org/docs/blueprint_documentation/)\n\n### Repository Structure\n\n- Root level configures mono-repo build with lerna\n- `applications` groups the different app targets\n  - `browser` contains a browser based version of Eclipse Theia Blueprint that may be packaged as a Docker image\n  - `electron` contains the Electron app to package, packaging configuration, and E2E tests for the Electron target.\n- `theia-extensions` groups the various custom theia extensions for Blueprint\n  - `product` contains a Theia extension contributing the product branding (about dialogue and welcome page).\n  - `updater` contains a Theia extension contributing the update mechanism and corresponding UI elements (based on the Electron updater).\n  - `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.\n\n### Build\n\nThis repository contains three application variants: browser, Docker and Electron.\nBelow are instructions for building each variant.\n\n#### Preparing the workspace\n\nFirst, download the necessary dependencies, VS Code extensions, and tracecompass-server.\nThis step is not necessary when building the [Docker image](#docker-application).\n\n```sh\nyarn setup\n```\n\nThe `setup` script runs these scripts, which can also be executed individually:\n\n```sh\nyarn\nyarn build:extensions\nyarn download:plugins\nyarn tracecompass-server:download\n```\n\nNote: Downloading plugins and tracecompass-server is optional but recommended for full functionality.\n\nIn the [Docker-based development](#docker-based-development) environment, this step is automated.\n\n#### Electron application\n\nThe Electron application is the main product of CDT Cloud Blueprint.\n\n##### Build Electron application\n\n```sh\nyarn electron build\n```\n\n##### Start Electron application\n\n```sh\nyarn electron start\n```\n\n##### Package Electron application\n\nPackaging the Electron application produces an installer or standalone executable for the current platform.\n\n```sh\nyarn package:applications\n# or (if the trace-compass server was already downloaded)\nyarn electron package\n```\n\nThe packaged application is located in `applications/electron/dist`.\n\n##### Create a preview Electron application\n\nGenerate a preview of the Electron application directory without packaging, useful for directory layout debugging.\n\n```sh\nyarn package:applications:preview\n# or (if the trace-compass server was already downloaded)\nyarn electron package:preview\n```\n\nLocate the preview in `applications/electron/dist`.\n\n#### Browser application\n\nA variant of CDT Cloud Blueprint that runs in the browser.\n\n##### Build browser application\n\n```sh\nyarn browser build\n```\n\n##### Start browser application\n\n```sh\nyarn browser start\n```\n\nThe application will be available at \u003chttp://localhost:3000/\u003e\n\n#### Docker application\n\nThe browser variant of the application packaged in a reproducible environment with all the required dependencies and tools.\nIdeal for testing the application without setting up any prerequisites or for cloud use cases.\n\n##### Build Docker image\n\n```sh\ndocker build -t cdt-cloud-blueprint:latest .\n```\n\n##### Start Docker image\n\n```sh\ndocker run -it -p 0.0.0.0:3000:3000 cdt-cloud-blueprint:latest\n```\n\nThe application will be available at \u003chttp://localhost:3000/\u003e\n\n#### Build all applications\n\nTranspile the sources and build all three applications (browser, Docker and Electron) with one script.\nUseful for preparing all three variants for testing.\nNote that the build process may be time-consuming.\n\nFor development and casual testing of Blueprint, build CDT Cloud Blueprint in \"dev\" mode.\nThis permits building Blueprint on systems with less resources, like a Raspberry Pi.\nNote that minification is turned off then.\n\n```sh\nyarn build:dev\n```\n\nFor production Blueprint applications use:\n\n```sh\nyarn build\n```\n\n### Docker-based development\n\n1. Install the [Remote Dev extension pack](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack) in VS Code\n2. Open this repository in VS Code\n3. Confirm to open this folder in the remote container when prompted.\n4. Once VS Code is opened in the container and the `Configuring Dev Container` task is finished, run `yarn browser start` in the container's terminal to start the CDT Cloud Blueprint backend.\n5. Access CDT Cloud Blueprint at 127.0.0.1:3000 from the host.\n\nMake changes to the source code and rebuild with `yarn build:extensions \u0026\u0026 yarn browser build` or run `yarn watch` beforehand.\nAfter a browser refresh, the changes should take effect.\n\n### Running E2E Tests\n\nThe E2E tests basic UI tests of the actual application.\nThis is done based on the preview of the packaged application.\n\n```sh\nyarn electron package:preview\nyarn electron test\n```\n\n### Workspace and example files\n\n- To use the trace view, download and start the [TraceCompassServer](https://download.eclipse.org/tracecompass.incubator/trace-server/rcp/)\n- Example traces can be found here: [TraceCompassTutorialTraces](https://github.com/tuxology/tracevizlab/blob/master/labs/TraceCompassTutorialTraces.tgz)\n- An example workspace including a trace can be found [here](https://github.com/eclipsesource/cdtcloud-alpha/tree/master/example/workspace)\n- Clangd contexts also provides an example workspace, see [here](https://github.com/eclipse-cdt-cloud/clangd-contexts/tree/main/examples/clangd-workspace).\n\n### Troubleshooting\n\n- [_\"Don't expect that you can build app for all platforms on one platform.\"_](https://www.electron.build/multi-platform-build)\n\n### Reporting Feature Requests and Bugs\n\nThe features in CDT Cloud 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).\nCDT Cloud 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-cdt-cloud/cdt-cloud-blueprint/issues/new/choose) to let us know.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-cdt-cloud%2Fcdt-cloud-blueprint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-cdt-cloud%2Fcdt-cloud-blueprint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-cdt-cloud%2Fcdt-cloud-blueprint/lists"}