exercism / gui

MIT License
22 stars 13 forks source link

Installers for all platforms #6

Open holandes22 opened 8 years ago

holandes22 commented 8 years ago

At first, we can simple distribute the packages in zip or tar.gz format. But would be nice to have at a later stage installers that have specific platform behavior.

Installer should

The best choice seems to be https://github.com/electron-userland/electron-builder

These also look good

holandes22 commented 8 years ago

Status update: I haven't got much time to work on this and my bandwidth during August is null. Will retake this at the beginning of September, if anyone else tackles it first.

holandes22 commented 7 years ago

Status update: The most viable project to help build packages for distribution seems to be electron-builder. It supports all the features we want, is actively developed and well documented.

I've been researching and playing with electron-builder and it turns out that is quite a task to take on.

As a side note, making Linux packages is much doable in short time as we can use an universal package such as Snap or Flatpak based on the current package (tar.gz). But that would mean the platforms won't have feature parity regarding installer (which I don't like)

Luckily, the team at ember-electron seems to be maknig progress towards a better packaging solution, see comments at https://github.com/felixrieseberg/ember-electron/issues/62 and this PR https://github.com/felixrieseberg/ember-electron/pull/129 I think this will pave the way for an installer. Regardless, we would still need to deal with:

holandes22 commented 7 years ago

This should be made possible by upgrading to ember-electron v2.x which adds a make command (powered by electron-forge) which can create installer for all the supported platforms. See https://github.com/electron-userland/electron-forge#possible-make-targets

Therefore this is now blocked by #49

antony-jr commented 6 years ago

What about QtInstallerFramework , I can work on this if you like ? QtInstallerFramework provides a gui installer for all platforms (This also includes linux) , update tools are also included in QtInstallerFramework ( It does include automatic updates! )

QtInstallerFramework also has QScripting which you can pretty much do anything from creating link on desktop(Cross-Platform)!

QtInstallerFramework Provides: .run - for all linux distros .exe - for all windows versions and .dmg - for mac osx ( executable )

And Qt is a stable project

I really recommend Qt Installer Framework because you only have to manage one installer for all linux distros , just like windows and mac osx

Can avoid the pain for new users in linux!

antony-jr commented 6 years ago

Hey @holandes22 I've Created a Complete Cross-Platform installer with auto update feature , check this out https://github.com/antony-jr/exercism-installer , Currently only deployed for all linux distros. THIS IS JUST A PROTOTYPE , NOT PRODUCTION READY BUT CLOSE TO IT

TRY THE LINUX INSTALLER , ITS COOL!

GNU/Linux X11 Microsoft Windows Apple MacOSX
Download for Linux-x64 Will do this later if anyone needs it! Open a Issue if you know Qt Installer Framework

Installer Installer_Finished

Go to the repo for more information on how easy it is to deploy new releases! I working on a complete deployer(Will be writen in C++ ) but currently able to only create a prototype!

holandes22 commented 6 years ago

@antony-jr wow this looks cool! So the idea is to have it working in all platforms right? What about upgrades?

antony-jr commented 6 years ago

@holandes22 go to repo for more info! https://github.com/antony-jr/exercism-installer , you can know more about promoting updates ( its simple as a git push )

Yes this is for all platforms , although I don't own a mac so I can't build it for mac osx

Auto-Update Automatically prompts when the repo dir under exersim-installers in the github repository is updated

When a new release is realesed , I simply increase the version number in the config.xml and git push to prompt all users who have installed exercism ( All over the world )

Update