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

Setup theia folder with example app and config-store skeleton #389

Merged
merged 4 commits into from
Jan 16, 2025

Conversation

lucas-koehler
Copy link
Contributor

Setup of config-store extension, example app in new theia folder

  • Create a new root-level folder theia for all theia extensions, corresponding example extensions and a test browser app.
  • Monitor Theia extension is not yet moved to new theia folder.
  • The theia folder uses a copied version of the tsconfig and eslint settings of the node folder.
  • Initial setup of config-store extension, service and client

Move monitor-theia extension to theia folder and setup Theia CI

  • Move monitor-theia extension from node/ to theia/extensions/
  • Add monitor-theia to Theia example app
  • Adapt monitor theia Demo docker file
  • Add Theia CI workflow to build all Theia extensions and the example app
  • Add reusable theia extension publish workflow
  • Adapt monitor extension workflow to only do the publishing

Add license check for theia folder

- Create a new root-level folder `theia` for all theia extensions,
  corresponding example extensions and a test browser app.
- Monitor Theia extension is not yet moved to new theia folder.
- The theia folder uses a copied version of the tsconfig and eslint settings of the node folder.
- Initial setup of config-store extension, service and client
- Move monitor-theia extension from node/ to theia/extensions/
- Add monitor-theia to Theia example app
- Adapt monitor theia Demo docker file
- Add Theia CI workflow to build all Theia extensions and the example app
- Add reusable theia extension publish workflow
- Adapt monitor extension workflow to only do the publishing
@lucas-koehler lucas-koehler requested review from jfaltermeier and sgraband and removed request for jfaltermeier December 20, 2024 11:34
@lucas-koehler
Copy link
Contributor Author

The license check ran successfully but found 3 deps that still require review from the Eclipse Foundation. They are all MIT or ISC licensed and, thus, should be fine. See https://github.com/eclipse-theia/theia-cloud/actions/runs/12430571020/job/34706262244 :

X npm/npmjs/-/glob/11.0.0, ISC
X npm/npmjs/-/nan/2.22.0, MIT
X npm/npmjs/@nx/nx-linux-arm-gnueabihf/20.1.4, MIT

Copy link
Contributor

@jfaltermeier jfaltermeier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The skeleton looks good already. I think the theia directory could use a README explaining the most important commands for building and starting the application.

When I run yarn && yarn start from the theia directory, I encounter the following error:

$ yarn start
yarn run v1.22.22
$ yarn example-app start
$ yarn --cwd examples/browser-app start
$ theia start
Failed to start the backend application:
Error: Could not unbind serviceIdentifier: LocalizationServerImpl
    at Container._removeServiceFromDictionary (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_fuzzy_lib_fuzzy_js-node_modules_inversify_es_inversify_js-node_modules_i-9bf063.js:1566:19)
    at Container.unbind (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_fuzzy_lib_fuzzy_js-node_modules_inversify_es_inversify_js-node_modules_i-9bf063.js:1133:14)
    at Container.rebind (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_fuzzy_lib_fuzzy_js-node_modules_inversify_es_inversify_js-node_modules_i-9bf063.js:1113:14)
    at /home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_fuzzy_lib_fuzzy_js-node_modules_inversify_es_inversify_js-node_modules_i-9bf063.js:1427:45
    at bindMainBackend (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_drivelist_build_Release_drivelist_node-node_modules_eclipse-theiacloud_m-4945d7.js:22985:5)
    at ContainerModule.registry (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_drivelist_build_Release_drivelist_node-node_modules_eclipse-theiacloud_m-4945d7.js:24222:53)
    at Container.load (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_fuzzy_lib_fuzzy_js-node_modules_inversify_es_inversify_js-node_modules_i-9bf063.js:1033:27)
    at /home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/main.js:389:29
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async module.exports (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/main.js:427:9)
/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_drivelist_build_Release_drivelist_node-node_modules_eclipse-theiacloud_m-4945d7.js:3544
    throw reason;
    ^

Error: Could not unbind serviceIdentifier: LocalizationServerImpl
    at Container._removeServiceFromDictionary (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_fuzzy_lib_fuzzy_js-node_modules_inversify_es_inversify_js-node_modules_i-9bf063.js:1566:19)
    at Container.unbind (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_fuzzy_lib_fuzzy_js-node_modules_inversify_es_inversify_js-node_modules_i-9bf063.js:1133:14)
    at Container.rebind (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_fuzzy_lib_fuzzy_js-node_modules_inversify_es_inversify_js-node_modules_i-9bf063.js:1113:14)
    at /home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_fuzzy_lib_fuzzy_js-node_modules_inversify_es_inversify_js-node_modules_i-9bf063.js:1427:45
    at bindMainBackend (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_drivelist_build_Release_drivelist_node-node_modules_eclipse-theiacloud_m-4945d7.js:22985:5)
    at ContainerModule.registry (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_drivelist_build_Release_drivelist_node-node_modules_eclipse-theiacloud_m-4945d7.js:24222:53)
    at Container.load (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/vendors-node_modules_fuzzy_lib_fuzzy_js-node_modules_inversify_es_inversify_js-node_modules_i-9bf063.js:1033:27)
    at /home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/main.js:389:29
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async module.exports (/home/johannes/Git/theia-cloud/theia/examples/browser-app/lib/backend/main.js:427:9)

Node.js v20.10.0
Done in 0.78s.

.github/workflows/cd-monitor-theia.yml Show resolved Hide resolved
theia/examples/config-store-example/README.md Outdated Show resolved Hide resolved
- Consistently use peer dependencies for Theia extensions
- Align config store version to 1.1.0-next
- Depend on the exact version in the example app to avoid pulling older versions from the registry
- Add README describing folder content and important npm scripts
- Register config store example's contributions as singletons
@lucas-koehler
Copy link
Contributor Author

lucas-koehler commented Jan 13, 2025

Hi @jfaltermeier thanks for the review and pointing out the build error. At the point in time of pushing it, it worked for me locally but after a full clean of the folder with git clean -dxf, I could reproduce the error. The cause seems to have been multiple versions of the same Theia package being drawn in. I could fix this by consistently using peer dependencies except for in the browser app :)

I also added a README and did a few more minor improvements. They are noted in the commit message of de4215d

@lucas-koehler lucas-koehler requested review from jfaltermeier and removed request for sgraband January 13, 2025 15:43
Copy link
Contributor

@jfaltermeier jfaltermeier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, LGTM

@jfaltermeier
Copy link
Contributor

Some of the license reviews need manual review though, so we should probably wait until they have been approved

@jfaltermeier
Copy link
Contributor

Licenses have been approved now.

@lucas-koehler lucas-koehler merged commit 5133b8e into main Jan 16, 2025
3 checks passed
@lucas-koehler lucas-koehler deleted the lk/config-store branch January 16, 2025 08:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants