-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Migrate from PhosphorJS to Lumino #14320
Draft
sdirix
wants to merge
13
commits into
eclipse-theia:master
Choose a base branch
from
eclipsesource:lumino-migration
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- switch to lumino packages - remove phosphorjs sharing Contributed on behalf of STMicroelectronics
Adapt all CSS and code to refer to lumino classes. Contributed on behalf of STMicroelectronics
- use 'iconClass' instead of 'class' in commands - only access shell handlers once they are initialized - use Lumino's host option for secondary window support - adapt tab bar handling - adapt to Iterable changes - adapt to Drag interface changes - adapt to Widget id changes Contributed on behalf of STMicroelectronics
Adds the patch for Lumino which achieves the following: - Make sure listeners are registered on the correct document. This is necessary for secondary window support. - Make sure empty menus can be opened. This is required as Theia fills menus right before they are shown, so they seem to be empty. Contributed on behalf of STMicroelectronics
Contributed on behalf of STMicroelectronics
sdirix
force-pushed
the
lumino-migration
branch
from
October 15, 2024 14:11
991a63f
to
b3dddca
Compare
Contributed on behalf of STMicroelectronics
'@lumino/dragdrop' consumes DragEvent already at loading time. Therefore the DragEvent mock must already be available before executing the tests. Adds a new private '@theia/test-setup' dev package which is consumed in the mocha config to mock 'DragEvent' before loading and compiling tests. Contributed on behalf of STMicroelectronics
sdirix
force-pushed
the
lumino-migration
branch
from
November 29, 2024 09:59
1897faf
to
b074e61
Compare
Contributed on behalf of STMicroelectronics
After being attached, the search-in-workspace widget tries to focus its input field. However the input field is rendered via React and might not be created yet. Adjusts the focus mechanism to wait until the input is rendered before trying to focus it. Contributed on behalf of STMicroelectronics
Contributed on behalf of STMicroelectronics
Signed-off-by: Thomas Mäder <[email protected]>
Signed-off-by: Thomas Mäder <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What it does
Migrate from PhosphorJS to Lumino
PhosphorJS is no longer actively maintained for a few years now. Lumino is an active fork, maintained by the JupyterLab community.
While PhosphorJS proved reliable for a long time, the cracks are starting to show. For example we need to patch PhosphorJS to support secondary windows.
The JupyterLab community is welcoming and is open to accept contributions.
Contributed on behalf of STMicroelectronics
Current state
The PR is split into separate logical commits to make the reviewing and maintenance work easier in case the PR takes longer to complete.
This PR is a draft PR as not all known issues are yet fixed.
Open issues are:
If anyone is interested in solving one or more of these issues, contact me or open a PR against the
lumino-migration
branch in the EclipseSource fork.Note that Lumino introduced a code change in which empty menus can't be opened. However Theia uses an approach in which menus are filled only shortly before they are shown. Therefore this new behavior is for now patched in this draft PR. However this means the patching is now ALWAYS required and not only when wanting to support secondary windows.
We might want to think about contributing a change to Lumino first before requiring this for all downstream projects.
In any case this is of course a huge breaking change.
How to test
Build and test the application
Review checklist
Reminder for reviewers