InfiniteAmmoInc / Yarn

932 stars 92 forks source link

making the electron branch be the main one and the old one be moved to nwjs branch #103

Open blurymind opened 5 years ago

blurymind commented 5 years ago

@charblar @AlecHolowka @InfiniteAmmoInc @julsam @alistairwoodcock @beeglebug Hi, I've been maintaining this repository for the last year or so. In that time I got to know yarn as a project very well and have added a big number of fixes and features to it. At first all I wanted was to port it to a more modern container than nwjs - electron. Thus why the electron branch. But with time the electron branch kept getting fixes and features and the nwjs branch kept getting neglected and outdated.

One possible reason for that is that all of its dependencies were stored statically in a folder on this repository. That made it impossible to update its libraries using npm. So that was one thing that I solved in the electron branch.

The nwjs version could run as a web app, but its file i/o was somewhat broken. So I fixed that and got the electron app to also work as a web app. This enabled me to embed it in gdevelop game engine.

There are many other features that I added recently too - such as multilingual support for spellchecking, transcribing and even playing the voice of what is written.

But as I kept adding them I realized that most people visiting this repository don't even know about the electron branch. I kept getting emails asking me where feature x or y is and why is it not in yarn.

The other problem was fixing bugs in both branches proved to be somewhat difficult, due to them growing apart. Some of the bugs were inherent from nwjs too. So a lot of bugs on this issue tracker were only fixed in the electron branch, but I could not close them because the electron branch is not the main branch.

So hear me out, please lets make electron branch the main one and move the old one to nwjs. This is kind of what I did yesterday and would like to know if everyone else of the code contributors is ok with it.

Before you say yay or nay,please clone it, try it out both as a web app and electron app and then speak. If you really need nwjs, I can make it work and build as both electron and nwjs - but for the love of god- lets keep it all on one branch. :)

In any case, if anyone of the code contributors here is against it, please voice your opinion. This is a change that is trivial to undo, but has already resulted in valuable increase in the speed people report bugs of regressions to me. For example yesterday when adding better support for multilingual text, I introduced a bug, which after being reported today was fixed almost immediately.

If this was not on the main branch, that bug would have taken ages to be noticed by someone else.

In light of recent news of @InfiniteAmmoInc passing away there is also the problem of the branch being under his user name. This basically means that I have no way of hosting yarn as a live webapp on this branch - one of its greatest features will have to be demoed at another branch. I have no way of enabling the live hosting in this branch's settings page.

blurymind commented 5 years ago

I am asking this now, because if I get some affirmation, I will be able to close down almost all bug reports on this issue tracker.

If not, please tell me what would it take to make the electron branch be the main one :) what does nwjs have? Adding nwjs build support is trivial now that I have it build both as a web app and an electron app. But it would be kind of pointless and bring back some nwjs related bugs and more maintenance work

Subliminalman commented 5 years ago

IMO I think this is the right path to take since the nwjs began to fall behind in terms of support and added features. I don't personally have any preference between electron and nwjs as platforms but having a version of Yarn that is more maintained is nice.

Just my two cents.

blurymind commented 5 years ago

@Subliminalman thank you for affirming this choice to move to electron. In any case we will continue to keep the old nwjs branch and if its development becomes very active and ahead of electron it may one day become the main one again. Open source is democracy after all :) right now the nwjs branch has a lot of missing features and bugs. Fixing them in both branches is wasted resource, which can be used to create a better app in the end.

Let's keep this project very much alive and vibrant in the hands of content creators.

Flyingvette commented 5 years ago

I have not yet tried the electron branch for two reasons. 1 is out of fear of messing up my work flow (I use Yarn very frequently and have post processes in place that require the yarn.txt output exactly as it currently is - I don't know if it has been changed at all in the latest versions). 2 is that I am on Windows and there is no easy way (that I know of) to run the electron version as an executable. Compiling it is a bit beyond me. The nwjs version is easy to start the way its installed on my machine. I have been able to copy updated js files directly over the old ones and still have it work. I've also gone into the text formatted files to make small tweaks here and there.

That's just a single use case. You've put a tremendous amount of work into this and anything you want to do to help keep it growing is a good move in my mind. Even if it requires a rebrand / new project entirely. I do hope to try out the newer version eventually.

blurymind commented 5 years ago

@Flyingvette In terms of file parsing, the electron branch is identical to nwjs, even has fixes. You shouldn't experience any problems :) Please give it a try. If you find any problems, report and I will fix them for you asap.

Install nodejs, then to compile it, you just look at the read me. Open a terminal and run npm install, after its finished run npm start this will run it on localhost in your browser. Then cd into the electron folder and run above commands in it too. This will run it in electron.

If that works too and you want to build it, just run npm run build inside the electron folder and report if you have any issues.

This is the absolute standard way to run and build webapps these days. It's dead simple.

After we move this to another tracker, you will also be able to run the electron branch in your web browser, without any need to install or compile anything. You will literally be able to just visit a web address and bookmark it for future use.

Subliminalman commented 5 years ago

I personally still like having offline access so it would be good to have release pages.

On another note with the npm run build command it currently only supports windows and linux. I have it updated on my local branch to create a mac version. Can we either add it to the main build or add an additional command for each platform?