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

upgrade xterm to fix terminal dragging between areas #4680

Merged
merged 1 commit into from
May 15, 2019
Merged

Conversation

akosyakov
Copy link
Member

fix #3838

@akosyakov
Copy link
Member Author

@marcdumais-work What is the process now to get CQs for runtime dependencies? This fix is quite important moving terminals around is basically broken on master.

@akosyakov
Copy link
Member Author

@svenefftinge Does it address #4319?

Copy link
Contributor

@svenefftinge svenefftinge left a comment

Choose a reason for hiding this comment

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

It does! 🎉

@AlexTugarev
Copy link
Contributor

AlexTugarev commented Mar 25, 2019

Moving terminals around seem to work much better, @akosyakov.

Have you noticed errors on the console?

Screen Shot 2019-03-25 at 08 55 53
Screen Shot 2019-03-25 at 08 56 06
Screen Shot 2019-03-25 at 08 56 13

UPDATE

These errors are related to resize and reflow. Try this:

2019-03-25 09 08 14

@akosyakov
Copy link
Member Author

@AlexTugarev It seem to be xtermjs/xterm.js#1932 in xtermjs. Do you think it should be fixed before we upgrade?

Copy link
Contributor

@AlexTugarev AlexTugarev left a comment

Choose a reason for hiding this comment

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

Thanks! This improves moving terminals around a lot!

@AlexTugarev
Copy link
Contributor

Do you think it should be fixed before we upgrade?

Personally, I'd say this improves the terminal a lot and it looks like there are just errors on the JS console. Despite of still broken reflow in some cases it, I haven't seen any issues using it.

👍

@akosyakov
Copy link
Member Author

From the user perspective it does not work so bad, logs get really polluted. @svenefftinge suggested to have a filter for this error for time being, @AlexTugarev sounds good?

@lmcbout
Copy link
Contributor

lmcbout commented Mar 25, 2019

@akosyakov
This version allows us to use the terminal after we move it.

If I move the terminal to the right tab bar panel, then I resize the terminal and I restart the front-end:
--> I cannot move the terminal elsewhere anymore
--> The data in the terminal are not adjusted properly until I press "enter"
--> I cannot delete the terminal from the right tab panel unless I select "Close " from the menu
Tested on Ubuntu 16.04

See attachment:

terminalIssue

@vince-fugnitto
Copy link
Member

@akosyakov
This version allows us to use the terminal after we move it.

If I move the terminal to the right tab bar panel, then I resize the terminal and I restart the front-end:
--> I cannot move the terminal elsewhere anymore
--> The data in the terminal are not adjusted properly until I press "enter"
--> I cannot delete the terminal from the right tab panel unless I select "Close " from the menu
Tested on Ubuntu 16.04

See attachment:

terminalIssue

I don't see the same behaviour as you @lmcbout, everything works correctly for me, maybe you can show me in person later?

@marcdumais-work
Copy link
Contributor

This fix is quite important moving terminals around is basically broken on master.
+1

@marcdumais-work What is the process now to get CQs for runtime dependencies?

This here is a good example case, that should be very easy to deal-with, just being an updated (so previously analysed/permitted) dependency.

No official change yet to the process has been announced: we have one "NPM production dependencies CQ" for this whole repo and in theory should update it for new stuff. If we have only 1 PR waiting for the CQ, this works. But with multiple, we either need to wait until the CQ is resolved and then deal with the next one, and so on... Or somehow merge all those waiting PRs together and so obtain a single NPM "state" to submit in the CQ.

As we have seen, it can take a while for those CQs to be approved, so having a single one scales poorly. Having a "CQ branch" seems like a lot of work for not much gain.

I think we should rather have as many such CQs as needed, one per PR introducing a new or updated production dependency, each being independent from the others. Then when we submit e.g. the CQ for this PR here, the emphasis (for the Foundation) should be to check the differences vs latest approved CQ (i.e. master or close). IP issues that are applicable at large and not PR-specific (e.g. Electron) should be handled separately and not block the other CQs.

WDYT?

@akosyakov
Copy link
Member Author

akosyakov commented Mar 25, 2019

@svenefftinge @marcdumais-work Can we discuss tomorrow on dev meeting?Do we need a CQ now or we can open later and merger a PR now? I don't want to open any CQs before we agree on something to avoid confusion.

@akosyakov
Copy link
Member Author

akosyakov commented Mar 25, 2019

I cannot delete the terminal from the right tab panel unless I select "Close " from the menu
Tested on Ubuntu 16.04

@lmcbout I believe it is expected: you are confusing the toolbar with the caption is a sidebar. It is not relevant to this PR.

@akosyakov
Copy link
Member Author

akosyakov commented Mar 25, 2019

I cannot move the terminal elsewhere anymore

@lmcbout It was like that always one can drag only using the caption in sidebar, not a toolbar. If you want to allow dragging with the toolbar please file an issue. It is not related to changes in this PR.

@akosyakov
Copy link
Member Author

The data in the terminal are not adjusted properly until I press "enter"

@lmcbout I cannot reproduce it. Could you specify what you type?

@akosyakov akosyakov changed the title upgrade xterm to fix terminal dragging between areas WIP upgrade xterm to fix terminal dragging between areas Mar 25, 2019
@lmcbout
Copy link
Contributor

lmcbout commented Mar 25, 2019

@akosyakov

  • Delete the terminal from the side panel: need to use the icon and the menu: ok Just I didn't see the "X" on the title bar as I was expecting
  • Moving: Again I did not expect that I had to use the icon in the side panel to allow moving: OK as it is
  • For the text: I just type an invalid command "xxxxxx" -> enter -> move the terminal on the right side panel -> resize the right side panel -> restart the client
    ===> the data in the terminal looks weird until I press "ENTER" to get the prompt back, then it looks ok after

@akosyakov
Copy link
Member Author

This reflow feature does not feel stable, maybe we wait till it is sorted out in xterm and leave with terminals only in the bottom panel. Or help to fix it in xterm.

@lmcbout
Copy link
Contributor

lmcbout commented Mar 25, 2019

@akosyakov May be the re-flow is missing, but I think we should consider to uplift xterm to the latest version, at least if someone moves it elsewhere, the terminal won't be frozen .

@marcdumais-work
Copy link
Contributor

@svenefftinge @marcdumais-work Can we discuss tomorrow on dev meeting?Do we need a CQ now or we can open later and merger a PR now? I don't want to open any CQs before we agree on something to avoid confusion.

@akosyakov Let me ping Sharon about this.

@akosyakov
Copy link
Member Author

@Tyriar pointed out that bogus output on resize it is not xterm issue, but result produced by used shell: xtermjs/xterm.js#2002 (comment)

Since #4680 (comment) is going to be fixed in 3.13.0. I suggest we wait for it and then rebase and merge this PR. I hope that 3.13.0 is already around the corner :)

Signed-off-by: Anton Kosyakov <anton.kosyakov@typefox.io>
@akosyakov akosyakov changed the title WIP upgrade xterm to fix terminal dragging between areas upgrade xterm to fix terminal dragging between areas May 15, 2019
@akosyakov
Copy link
Member Author

3.13.0 was released, good to merge?

@@ -8,7 +8,7 @@
"@theia/filesystem": "^0.6.0",
"@theia/process": "^0.6.0",
"@theia/workspace": "^0.6.0",
"xterm": "3.9.2"
"xterm": "3.13.0"
Copy link
Member Author

Choose a reason for hiding this comment

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

@marcdumais-work Is it fine?

Copy link
Contributor

Choose a reason for hiding this comment

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

Hi @akosyakov , let me run the "ECD Theia Intellectual Property Clearance, Approach" on this PR branch and get back to you. ETA ~30 mins.

Copy link
Contributor

Choose a reason for hiding this comment

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

Done - looks good - you can merge from a license PoV.

There was one new extra "NOASSERTION" dependency (nugget 2.0.1), but it looks to be BSD-license after investigation:

image

@akosyakov akosyakov merged commit 80c8a0d into master May 15, 2019
@akosyakov akosyakov deleted the GH-3838 branch May 15, 2019 11:06
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.

[terminal] Not useable after dragging into a different tab folder
6 participants