Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider using winget to distribute packages on Windows #1

Closed
jonahbeckford opened this issue Jul 1, 2022 · 8 comments
Closed

Consider using winget to distribute packages on Windows #1

jonahbeckford opened this issue Jul 1, 2022 · 8 comments
Assignees
Labels
enhancement New feature or request

Comments

@jonahbeckford
Copy link
Contributor

https://docs.microsoft.com/en-us/windows/package-manager/winget/

(Feedback from discuss.ocaml's v0.4.0 release announcement)

@jonahbeckford
Copy link
Contributor Author

Only potential problem is the package must support a non-interactive install per https://docs.microsoft.com/en-us/windows/package-manager/package/winget-validation#submission-expectations.

The Git and the Visual Studio parts are the only interactive parts, but hopefully those can be modeled as dependencies in winget.

@jonahbeckford
Copy link
Contributor Author

@jonahbeckford
Copy link
Contributor Author

Only potential problem is the package must support a non-interactive install per https://docs.microsoft.com/en-us/windows/package-manager/package/winget-validation#submission-expectations.

That has been fixed by #3

@jonahbeckford
Copy link
Contributor Author

jonahbeckford commented Aug 8, 2022

Making task list:

  • Create package manifest for 1.0.0, including dependencies for Visual Studio and Git. Precise versions of Visual Studio may make this impossible
  • Edit bump2version and sign.sh so package manifest is updated every version
  • Test package manifest in CI (Vagrant)
  • When Opam is part of winget (confer: @dra27) the DKML winget package needs to use Opam as a dependency
  • Submit to Microsoft

@jonahbeckford jonahbeckford self-assigned this Aug 8, 2022
@jonahbeckford
Copy link
Contributor Author

Note: With winget I can model Visual Studio Build Tools > x.y.z, but not exact versions that are compatible. Also, you should not have to install Visual Studio Build Tools if you have Visual Studio 2019 Enterprise (etc.).

So modeling the Visual Studio dependencies is not good. The lack of exact versions may mean someone will get an incompatible Visual Studio Build Tools that doesn't work with OCaml. That is actually a bug with OCaml though, not winget or DKML.

jonahbeckford added a commit that referenced this issue Aug 9, 2022
@jonahbeckford
Copy link
Contributor Author

jonahbeckford commented Aug 9, 2022

Open items that arose during first winget PR microsoft/winget-pkgs#69112 :

  • The version is coming through as dev instead of the Opam version 1.0.0. It may be better to just use bump2version inside a version.ml file instead of probing with dune-build-info.

These will be fixed in v1.0.1.

@jonahbeckford
Copy link
Contributor Author

jonahbeckford commented Aug 15, 2022

Okay, the final winget problem seems to be a 2hr install limit. Without running in 2hr the winget CI will auto-fail the PR. Otherwise winget installs successfully.

  • Will resubmit after install time is reduced to substantially under 2hr (including Visual Studio Build Tools and Git)

@jonahbeckford jonahbeckford added the enhancement New feature or request label Sep 3, 2022
jonahbeckford pushed a commit to diskuv/dkml-install-api that referenced this issue Sep 4, 2022
jonahbeckford pushed a commit that referenced this issue Sep 4, 2022
* Fix for "dev" version in #1
jonahbeckford added a commit that referenced this issue Sep 5, 2022
jonahbeckford added a commit that referenced this issue Sep 5, 2022
jonahbeckford added a commit that referenced this issue Sep 5, 2022
jonahbeckford added a commit that referenced this issue Sep 5, 2022
@jonahbeckford
Copy link
Contributor Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

No branches or pull requests

1 participant