electron / electron/forge

State Forge's position/rationale for Squirrel.Windows

Open
#3,598 6 comments 22 reactions 0 assignees View on GitHub
maker/squirrel platform/windows question
Dominant language
TypeScript
Stars
7.1k
Forks
641
Avg merge
3d 1h
Merged PRs (30d)
30

Description

### Pre-flight checklist

- [X] I have read the [contribution documentation](https://github.com/electron/forge/blob/main/CONTRIBUTING.md) for this project.
- [X] I agree to follow the [code of conduct](https://github.com/electron/electron/blob/main/CODE_OF_CONDUCT.md) that this project uses.
- [X] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

### Problem description

I'm looking to start my next Electron project, and see the Squirrel.Windows option is [recommended](https://www.electronforge.io/config/makers/squirrel.windows) by the Forge project. However I also see numerous indicators that the [underlying project](https://github.com/Squirrel/Squirrel.Windows) is not in good health, which seems at odds with that.

I would appreciate hearing the team's thoughts around this. I believe the community would benefit from some confidence that this remains a sustainable choice for use in our projects, and/or some greater visibility as to the health of key underlying projects to help ensure we make our own informed decisions.

I've framed this as a feature request as it felt the best fit and place to raise this. I've found previous issues on the subject already and will link them within later sections.

### Proposed solution

Consider the situation and respond to this issue.

### Alternatives considered

* [electron-builder with NSIS](https://www.electron.build/configuration/nsis.html)
* [Velopack](https://github.com/velopack/velopack)

### Additional information

My perception is that Squirrel.Windows is historically the most commonly used option for a target that supports automatic updates, and is still used by popular applications including Slack, GitHub Desktop, Postman, Figma.

The Forge project [responded](https://github.com/electron/forge/issues/3069#issuecomment-1312403847) to a question about the future of Squirrel in late 2022.

Electron Builder continues to maintain their Squirrel integration, although they have deprecated that integration in favour of NSIS.

Squirrel.Windows was last released in Sep 2020, although there have been some PRs merged since.

The project readme says they're looking for help with maintenance, and refers to a 2019 [discussion issue](https://github.com/Squirrel/Squirrel.Windows/issues/1470) about rebooting the project, which doesn't appear to have gained/maintained traction.

[Clowd.Squirrel](https://github.com/clowd/Clowd.Squirrel) is a fork from 2021 that gained "some" popularity, which led to the creation of Velopack.

For non-public repositories, distributing updates for Squirrel [requires](https://www.electronjs.org/docs/latest/tutorial/updates) running a purpose-built server. All the server implementations listed appear to be unmaintained (Hazel, Nuts, Nucleus), except for [electron-release-server](https://github.com/ArekSredzki/electron-release-server). That server has some nontrivial complexity to deploy (e.g. it needs its own database), especially compared to NSIS (which can work with e.g. generic web server).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.