Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Enable multiple release channels to be installed side-by-side on Windows #17813
Description of the Change
This change updates Atom's release build, packaging, and installer creation so that unique installations for each Atom channel can be used simultaneously on Windows. This is achieved by using a specific app title including the channel name when assigning the "product name" during packaging and installer creation.
NOTE: I've also added a new
Based on how Electron apps are packaged on all 3 platforms, this is the only possible approach.
Why Should This Be In Core?
This affects the release builds and some app code for Atom's release channels.
The primary benefit is that Atom users on Windows will now be able to install Atom Stable, Atom Beta, and Atom Nightly and then use and update them independently of one another. A secondary benefit is that now Windows and Linux builds of Atom now reference the correct channel in their title bars (e.g. "Atom Beta" or "Atom Nightly").
There aren't any real drawbacks or tradeoffs here, but proper verification will be needed to make sure that no regressions are introduced.
@daviwil We should also test CLI/shell integration:
The PATH/cli test ensures that the commands in (Currently)
The shell integration test ensures that the shell integration works for any channel. These are the settings you can configure in the settings-view system panel on Windows.
One WIN7x64 systems, the above changes in this open issue have changed the system PATH which upon upgrading to 1.32.0-beta3, leaves a now invalid orphan entry in the system PATH of
So, two parts to this issue:
Some notes on the work that remains for this PR:
One problem I came across is that Squirrel wants to see the
The implication here is that we'd have to change atom.io's download and update controller logic and our release publishing logic to expect these different filenames for non-stable release channels. This is certainly possible but the work would need to be coordinated with the timing of this PR so that everything continues to work as expected in future releases.
This is good news: now the Atom code is more consistent and it's much easier to re-format the code to follow the code style (now you only need to run
This change caused conflicts on your PR that we have automatically solved, hope you don't mind
@Ben3eeE do you want to takeover this PR and drive it to the finish line? I can provide any needed support and it will be a really impactful improvement to Windows users
Regarding @daviwil comment:
I can take care of it: I've found a way to be able to make the needed changes on atom.io independently from this PR (they just need to happen before this gets merged).
I had some issues getting this to build and work initially. I pushed two commits that enabled me to install stable and beta side by side. I've tested running the
I noticed a few issues:
Quick update! After an amazing job done by @Ben3eeE identifying issues and fixing them, we're ready to merge this PR!
We've done an exhaustive testing on it, but there's still risk that this introduces potential issues since it changes a few things around the Windows installer. We're still going to merge it and use the beta period to be able to identify potential issues.
Jul 16, 2019
1 check passed
Quick update: Atom v1.40-nightly25 includes this PR and can be installed along other Atom versions already!
I've done some tests and previous nightly versions get automatically upgraded to the new one, but I could find two issues after the upgrade:
(note that these two issues won't happen on the stable version of Atom, since the naming hasn't changed there).
These issues are quite bad (specially the desktop icon one), but they are caused by Squirrel autoupdate workflow, so it may be hard to fix them.
Since they will only happen once (when auto-upgrading to the first version with the new Atom namings), the visibility is low (only beta or nightly Windows users are affected, which is ~0.34% of Atom users) and the workaround is simple enough (download a new nightly/beta version of Atom and re-install it), I think it should be fine to leave this issue as a known problem. If we decide to do so, we can document it on the release notes for v1.40-beta (cc/ @jasonrudolph ).