{"id":30612650,"url":"https://github.com/evolvedbinary/fusion-studio-extension","last_synced_at":"2025-08-30T05:34:48.864Z","repository":{"id":33927225,"uuid":"156966840","full_name":"evolvedbinary/fusion-studio-extension","owner":"evolvedbinary","description":"Fusion Studio is a Theia IDE extension for FusionDB","archived":false,"fork":false,"pushed_at":"2022-12-21T06:13:59.000Z","size":4293,"stargazers_count":4,"open_issues_count":64,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-24T12:23:47.289Z","etag":null,"topics":["fusion-studio","fusiondb","ide","theia-extension","theia-ide"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evolvedbinary.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}},"created_at":"2018-11-10T09:33:17.000Z","updated_at":"2024-04-24T12:23:47.290Z","dependencies_parsed_at":"2023-01-15T03:31:06.030Z","dependency_job_id":null,"html_url":"https://github.com/evolvedbinary/fusion-studio-extension","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/evolvedbinary/fusion-studio-extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evolvedbinary%2Ffusion-studio-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evolvedbinary%2Ffusion-studio-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evolvedbinary%2Ffusion-studio-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evolvedbinary%2Ffusion-studio-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evolvedbinary","download_url":"https://codeload.github.com/evolvedbinary/fusion-studio-extension/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evolvedbinary%2Ffusion-studio-extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272808936,"owners_count":24996603,"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","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["fusion-studio","fusiondb","ide","theia-extension","theia-ide"],"created_at":"2025-08-30T05:34:48.060Z","updated_at":"2025-08-30T05:34:48.803Z","avatar_url":"https://github.com/evolvedbinary.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fusion Studio Theia Extension\n[![CircleCI](https://circleci.com/gh/evolvedbinary/fusion-studio-extension/tree/master.svg?style=svg)](https://circleci.com/gh/evolvedbinary/fusion-studio-extension/tree/master)\n[![Cypress Dashboard](https://img.shields.io/badge/cypress-dashboard-brightgreen.svg)](https://dashboard.cypress.io/#/projects/ftw148/runs)\n[![npm version](https://badge.fury.io/js/fusion-studio-extension.svg)](https://badge.fury.io/js/fusion-studio-extension)\n[![License](https://img.shields.io/badge/license-GPL%203-blue.svg)](https://opensource.org/licenses/GPL-3.0)\n\n**Fusion DB**'s extension for [Theia IDE](https://theia-ide.org).\nIf you don't know what Theia is, then you likely want the full [Fusion Studio IDE application](https://github.com/evolvedbinary/fusion-studio).\n\n\n\n## Getting started:\n### Requirements:\n*   [Fusion Studio API](https://github.com/evolvedbinary/fusion-studio-api) installed in a compatible [FusionDB Server](https://www.fusiondb.com) or [eXist-db](https://www.exist-db.org) database.\n\n#### For building\n*   [Node 12](https://nodejs.org/dist/v12.18.3/). `\u003e= 12.18.3` (it should most likely be installed with [nvm](https://github.com/nvm-sh/nvm))\n    * Node 10 may work, and Node 14 should work... however we are focused on Node 12 compatibility.\n*   [Yarn](https://yarnpkg.com). `\u003e 1.15.x` (it can easily be installed globally via npm (Node Package Manager), but you should be aware this has a small [security implication](https://classic.yarnpkg.com/en/docs/install/#install-via-npm). npm is installed when you install Node).\n*   [Python](https://www.python.org/) `\u003e= 3.7.7.` (if your system does not provide it, consider using [pyenv](https://github.com/pyenv/pyenv)).\n        If you are having trouble building and have multiple versions of Python installed via `pyenv` or any other mechanism, see the [Debugging Python Build Issues](#debugging-python-build-issues) section).\n*   Windows platforms only:\n    *   Microsoft Visual Studio 2015 C++. Tested with Community Edition\n*   macOS playforms only:\n    *   XCode Command Line tools. You can check that these are installed and compatible with node-gyp by following these [instructions](https://github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md).\n\n#### Debugging Python Build Issues\nIf you are experiencing build issues and have multiple versions of Python installed via pyenv or some other such mechanism\nthen the following information may be useful.\n\n*   Due to upstream constraints from [theia](https://theia-ide.org) we can override the inherited dependency on Python 2. For systems that ship with python2 pre-installed, fusion-studio-extension should continue to build normally.\n    *   Build errors with node-gyp are unfortunately common on systems with multiple python installations. On systems that no longer include python2, or on macOS \u003e10.14 we recommend using python 3.8, and configuring the build environment. The following assumes you used `nvm` and `pyenv` to install your desired versions.\n    1.  Make sure your system and shell use the correct python environment:\n        -   ```bash\n            python --version\n            ```\n            It should indicate `Python 3.8.x` or better.\n        -   Set an environment variable to force node-gyp to use this version, e.g. `3.8.3`\n            ```bash\n            echo 'export NODE_GYP_FORCE_PYTHON=\"~/.pyenv/versions/3.8.3/bin/python3\"' \u003e\u003e ~/.zshrc\n            ```\n            For bash users replace `.zshrc` with `bashrc`\n\n#### Example of setting up a Ubuntu 20.04 build environment\nThe following commands will install the required packages and setup Python 3 via pyenv on Ubuntu 20.04.\n\n```\nsudo curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -\nsudo apt-get install nodejs yarnpkg libx11-dev libxkbfile-dev\nalias yarn=yarnpkg\n\ngit clone https://github.com/pyenv/pyenv.git ~/.pyenv\necho 'export PYENV_ROOT=\"$HOME/.pyenv\"' \u003e\u003e ~/.bashrc\necho 'export PATH=\"$PYENV_ROOT/bin:$PATH\"' \u003e\u003e ~/.bashrc\necho -e 'if command -v pyenv 1\u003e/dev/null 2\u003e\u00261; then\\n  eval \"$(pyenv init -)\"\\nfi' \u003e\u003e ~/.bashrc\n\nsudo apt-get install --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev\npyenv install 3.8.4\npyenv global 3.8.4\nexec $SHELL\n\n```\n\n#### Example of setting up a CentOS 7 build environment\nThe following commands will install the required packages on CentOS 7.\n\n```\nsudo yum update\nsudo yum install -y libX11-devel libxkbfile-devel\nsudo yum install -y gcc-c++ make\nsudo curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -\nsudo yum install -y nodejs\ncurl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo\nsudo yum install -y yarn\nsudo yum install -y rpm-build\n```\n\n#### For Testing\n*   [cypress.js](https://www.cypress.io) ` \u003e= 8.0.0`.\n\n\n\n### Install and build:\nClone the repo, and build the source:\n```bash\n$ git clone https://github.com/evolvedbinary/fusion-studio-extension.git\n$ cd fusion-studio-extension\n$ yarn\n```\n\n\u003e You may get the error `No package 'x11' found` on Ubuntu (Minimal installation), you'll need to install these packages:\n\u003e ```bash\n\u003e sudo apt install libx11-dev libxkbfile-dev\n\u003e ```\n\n### Test the extension\n#### Test on the browser\n*   run this after install, and run it right after switching from Electron to the browser:\n```bash\n$ yarn run rebuild:browser\n```\n*   Start the IDE:\n```bash\n$ cd browser-app\n$ yarn start\n```\n#### Test Electron app\n*   run this after install, and run it right after switching from the browser to Electron:\n```bash\n$ yarn run rebuild:electron\n```\n*   Start the IDE:\n```bash\n$ cd electron-app\n$ yarn start\n```\n\n#### Integration Testing\nTo run the integrations tests you need a running database with the fusion-studio-api installed. It should be reachable at `localhost:8080` and have an empty admin password. You can then run the integration test GUI locally by using:\n```bash\nyarn run cypress open\n```\nor in cases where the above fails to load the [cypress test runner](https://docs.cypress.io/guides/core-concepts/test-runner.html#Overview), use:\n```bash\nnpx cypress open\n```\n\nIntegration tests are also run on travis. To see a similar command line style output use:\n```bash\nyarn run cypress run\n```\n### Developing\n*   To compile css:\n```bash\n$ yarn run sass:watch\n```\nTo watch for files changes:\n*   To compile the extension\n```bash\n$ cd fusion-studio-extension\n$ yarn watch\n```\n*   To compile the browser app\n```bash\n$ cd browser-app\n$ yarn watch\n```\n*   To compile Electron app\n```bash\n$ cd electron-app\n$ yarn watch\n```\n\n**Extra**\n-   You can debug both the browser and Electron apps using VS Code launch configurations:\n  -   `\"Start Browser Backend\"`\n  -   `\"Start Electron Backend\"`\n-   You can compile css file at anytime by running:\n```bash\n$ yarn run sass\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevolvedbinary%2Ffusion-studio-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevolvedbinary%2Ffusion-studio-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevolvedbinary%2Ffusion-studio-extension/lists"}