Deno: Release Builds on WinGet Pkgs

Created on 19 May 2020  路  6Comments  路  Source: denoland/deno

Please add support for WinGet Packages releases.

Details on how to available here: https://github.com/microsoft/winget-pkgs

build

Most helpful comment

On a related note, I think this issue could be moved to https://github.com/denoland/deno_install.

cc @bartlomieju

All 6 comments

This will need to have a downloadable .exe or .msi installer, available from a single link.

https://github.com/microsoft/winget-pkgs#authoring-a-manifest

InstallerType: string # enumeration of supported installer types (exe, msi, msix)
Installers:
  - Arch: string # enumeration of supported architectures
    URL: string # path to download installation file
    Sha256: string # SHA256 calculated from installer

Currently the recommended installation method is to use https://deno.land/x/install/install.ps1, which is a PowerShell script, not an exe/msi installer, so it's not usable in winget manifest.

Actually, and as @MarkTiedemann explained in this comment, there is an exe file available in deno github releases, but it's not really an installer (just the deno executable), and it's inside a zip file, so we can't download it directly as winget manifest wants.

Related issue #5727

For reference, there's a list of supported package managers here: https://github.com/denoland/deno_install#install-via-package-manager

@alexandregv is right. Currently WinGet does not support simply downloading an exe in a zip, but requires an installer. There is a related issue regarding installing curl, which is also distributed as just an exe in a zip (see https://curl.haxx.se/windows/), here: https://github.com/microsoft/winget-pkgs/issues/726.

Might be good to open another upstream issue for allowing binary "installations".

PS: I'd recommend using Scoop to install Deno on Windows. It's always up-to-date, it allows you to install different versions of Deno, and uninstall is just a single command as well.

Just had another look and found a bunch of related upstream issues:

So time to get a coffee and wait for Microsoft to fix this. :)

On a related note, I think this issue could be moved to https://github.com/denoland/deno_install.

cc @bartlomieju

@MarkTiedemann how about creating an MSI installer for Deno? If such a PR is issued, is there any principal reason for it to be rejected?

@MarkTiedemann how about creating an MSI installer for Deno?

In general, I think that's a good idea and it's definitely a fix for this issue, though, as mentioned in the comments above, I do think that WinGet should just support plain executables rather than requiring an installer, and so I'd rather have this specific issue fixed upstream.

That being said, it's, of course, still a good idea to create a GUI installer. I think the main reason for doing that would be to be more beginner friendly. As witnessed in https://github.com/denoland/deno/issues/5727, people may not expect Deno to just be an .exe in a .zip. Since setup.exe or setup.msi installers are a common pattern on Windows, I think it's fair to offer this to users.

(Another potential "fix" for that problem would be to educate people that an installer in the classical sense isn't really needed. There's an issue for that in deno_install: https://github.com/denoland/deno_install/issues/130)

I think there's also a question of scope: deno_install and deno upgrade allow you to install the latest or a specific deno version to the default or a specific location, adding that location to the %path%. So the installer should have those features at least. Both don't have an "uninstall" feature - that'd be a potential new feature. Both also don't have the role of a version manager - not sure whether that would be in-scope: Personally, I'm using MarkTiedemann/dvm.cmd to manage my deno version on Windows, axetroy/dvm to manage my deno version on MacOS, and MarkTiedemann/deno.mk for cross-platform project-local installations. So I think it'd be great if the installer was aware of previous downloads and if you could switch the deno version that you want to download/use in the setup, but that's certainly not a requirement - just my personal preference.

Then there's a couple of questions in regards to "How do you actually build the installer?". Which languages? Which tools do you use? What's the build process? Do we need to sign the installer? And if so, how do we sign it? etc.

PS: I have previously started a deno-up.exe project, but I have abandoned it since dvm is covering all of my needs.

If such a PR is issued, is there any principal reason for it to be rejected?

I don't accept nor reject PRs so that's not a question I can answer. I'd gladly help review, but ultimately that's up to @ry, @piscisaureus and @bartlomieju to decide, I guess.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ry picture ry  路  3Comments

metakeule picture metakeule  路  3Comments

zugende picture zugende  路  3Comments

ry picture ry  路  3Comments

ry picture ry  路  3Comments