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

Investigate switch to electron.JS from brackets shell. #26

Closed
abose opened this issue Oct 5, 2021 · 15 comments
Closed

Investigate switch to electron.JS from brackets shell. #26

abose opened this issue Oct 5, 2021 · 15 comments

Comments

@abose
Copy link
Member

abose commented Oct 5, 2021

Maintaining brackets shell is costly and redundant with electronJS. Investigate if we can transition into electron js.

@ScanuNicco
Copy link
Contributor

As mentioned in Discord, it has already been done: https://github.com/quadre-code/quadre

I was able to download and run it and everything seemed to work fine, including live preview. If ficristo is interested in merging some or all of his changes into this repo we might even be able to get it working in time for our first release.

@abose
Copy link
Member Author

abose commented Oct 6, 2021

+1 Transitioning to Electron is possible as seen from the electron ports. Let's wait for @ficristo. Help from Quadre will significantly lower our efforts to move to Electron. The thing I am worried about is the number of breaking changes involved as we have seen with our transition efforts with Phoenix, and with the original brackets-electron project. In the meantime, @sprintr is also working on an electron port and we could get his help too :)

  1. Electron shell did not support custom window decorators. Not sure if this is still an issue. But I would be fine to switch to electron without the brackets custom window chrome and themes.
  2. The work involved to be feature complete across all platforms with full extension support needs to be identified.
  3. Node support (node built-in electron vs node in brackets)
  4. Release engineering for all platform builds and QA passes.

@rileyhawk1417
Copy link

@abose For now is switching to electron a priority or is maintaining brackets shell the main concern?

@abose
Copy link
Member Author

abose commented Oct 8, 2021

It looks like quadre maintainers would not be able to support us with the port. We investigated quadre and have the following notes:

  1. Quadre is based on a version of brackets-electron that looks to be in sync with brackets 2017 version.
  2. The effort required would be heavy to merge in brackets and quadre at this stage. Quadre has moved to typescript and a simple merge would almost certainly fail. A large-scale feature migration effort would also be required, and I'm not entirely sure that we have sufficient resources/time/reason to re-engineer vscode language server code in brackets that came with the last releases.
  3. We will most likely not get support from quadre Engg for the migration, which would be problematic as the codebase is largely maintained by ficristo and we cannot fall back to any other community members for help.
  4. There are a lot of breaking changes in quadre: extension management, node layer, lack of unit tests that is not yet ready for production launch and require more work.

With these I guess its safe to conclude:

  1. A direct merge of Quadre to brackets would be cost-prohibitive to implement.
  2. We can merge in parts of quadre like electron build/installer generation scripts and the shell compatibility layer for electron from quadre with existing brackets code. This is much simpler and wont be a huge breaking change.
  3. We cannot do this in a November release with our resources.
  4. We can work on an electron port parallel in a separate branch with help from @sprintr who is actively working on a port with existing brackets core and merge in parts from quadre as required during the port.

@abose
Copy link
Member Author

abose commented Oct 8, 2021

@rileyhawk1417 Maintaining brackets shell is hard as we need to keep up with chromium(CEF) updates and that used to break our integrations regularly across different platforms. For Eg., we can't create Linux builds now as CEF inside brackets shell is ancient and the latest Linux distros do not ship with the required dependencies that CEF inside brackets shell needs.

Updating CEF regularly is not trivial. Updates usually had brought in focus issues and other platform-specific issues that we have to address separately in the shell.

Similarly, brackets ship with an ancient node binary which we have not dared to update since node 6.0. Electron comes with built-in node support that is kept up to date but the electron team.

Electron is a well-maintained port that does all these things for us for free. It is a safe long-term bet and the brackets devs can concentrate more on developing rich features for brackets than worry about the shell component.

@rileyhawk1417
Copy link

@abose Looks like a lot of RND is needed before we even move forward x_x

@Uka-Uka
Copy link

Uka-Uka commented Oct 10, 2021

Hey @sprintr, do stuff!!

@abose
Copy link
Member Author

abose commented Nov 5, 2021

Will resolve: brackets-archive/bracketsIssues#14256

@abose
Copy link
Member Author

abose commented Dec 30, 2021

We have formally reached the conclusion to switch to electron for brackets shell.

Further progress will be tracked in this project: https://github.com/brackets-cont/brackets/projects/3

@OdinVex
Copy link

OdinVex commented Sep 16, 2022

custom window decorators

That's the last thing this universe needs, why is everyone trying to savagely violate user accessibility with CSD? FFS...

Edit: Damn Gnome to ****ing ****...

@KaKi87
Copy link

KaKi87 commented Dec 19, 2022

Hello,
May I suggest using Tauri instead of Electron ? 😅
Thanks

@abose
Copy link
Member Author

abose commented Dec 20, 2022

@KaKi87 We are using Tauri instead of Electron. The work has started.
image

@abose
Copy link
Member Author

abose commented Dec 20, 2022

Closing as we have chosen to use Tauri instead of Electron.
Please track progress at https://github.com/orgs/phcode-dev/projects/1

@abose abose closed this as completed Dec 20, 2022
@KaKi87
Copy link

KaKi87 commented Dec 20, 2022

Thanks but that link doesn't work 🤔

@abose
Copy link
Member Author

abose commented Dec 20, 2022

Thanks but that link doesn't work thinking

It was set to private. Should be visible now as made public.

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

No branches or pull requests

6 participants