I see that Gramps for Windows is available via Chocolatey. How difficult would it be to add to the release pipeline a step to push a manifest to winget as well?
I looked around for where the Chocolatey release happens, I didn’t see it in GitHub workflows.
How difficult would it be to add to the release pipeline
If somebody provides the integration then I believe it would be welcomed as every thing here is supplied by volunteers.
winget
The Windows Package Manager (also known as winget) is a free and open-source package manager designed by Microsoft for Windows 10 and Windows 11. It consists of a command-line utility and a set of services for installing applications. Independent software vendors can use it as a distribution channel for their software packages. (From Wikipedia, the free encyclopedia)
The Chocolatey release is provided by the volunteer Package Maintainer tunisiano on the Chocolatey website, don’t believe they have ever interacted with this project.
@Patsyblefebre , what do you mean by “provides the integration”? I had thought the Chocolatey publishing workflow was integrated into Gramps releases somehow, but as you mention, maybe not.
@daleathan , thanks for filing the feature request. The open PR for including Gramps 5.2.2 is mine
After manually submitting that, I wanted to see if we can automate it as part of the GrampsAIO Windows build/release process, but I am not clear on how that works. I can’t fully tell if the .exe binary hosted on GitHub (the URL used in winget, for each GitHub release) is built by this workflow. If so, I was thinking another step or sequential workflow there could open the PR for winget.
Any pointers are welcome. Or I can wait for the feature request to get processed, I’m not familiar with how that works yet either.
There are lots of repositories out there[1]; what makes winget stand out? I contribute a bit to the MacPorts project which does sort of the same thing as winget but on the Macintosh platform. On MacPorts, each software package (“port”) has a volunteer maintainer who normally watches for updates. When they decide to, they’ll test and prepare an update which is then committed to the MacPorts repository. If users of MacPorts want new packages or updates to existing ones, there is a system to submit a request or report a bug, etc.
For Gramps users on Windows, the Gramps project makes an all-in-one (GUI) installer that can be downloaded with minimal effort. AIUI, winget provides a command-line interface to install or upgrade packages. So winget would mostly appeal to people that are comfortable with the command line and especially if they are managing several packages via winget. (Pretty much the same as MacPorts.) As such, the majority of Windows users aren’t likely to use winget. In consequence, the Gramps project doesn’t have a big motivation to commit time and resources to specifically support winget.
Just saying that if you want winget to carry an up-to-date Gramps, it is probably best to contact the winget project team.
Craig
[1] There are at least 25 repositories carrying Gramps:
(The winget repository isn’t listed on Repology so that would make 26.)
Could a bookend 32-bit Windows release be created with WinGet?
It is awkward that the discontinuation 32-bit support in the MSYS2 packaging tool meant that support stopped with the 5.1.5 version of Gramps instead of the final 5.1.6 version. Having a 5.1.6 version for all platforms in the Previous Releases would simplify future support.
5.1.x will be the final version where full (read andwrite) support for SQLite and BSDDB exists. This creates another stumbling point for legacy database recovery.
No. Because WinGet did not exist in those old versions of Windows.
Windows Package Manager (winget) was first announced at the Microsoft Build developer conference in May 2020
The initial release of winget was on May 13, 2020
Winget is designed for Windows 10 and Windows 11 operating systems
While winget was introduced in 2020, its inclusion in Windows as a built-in tool has been gradual. It’s not tied to a specific Windows version or release date, as its availability can depend on updates and whether the App Installer package is present on the system.
@Mihle addressed this as well, my main thought was that it is a Windows package manager directly supported by Microsoft.
This is a good point about the Gramps project not having a big motivation to support a comman-line-centric package manager.
Given the discussion about Chocolatey earlier, and the reference to Repology for Gramps, is there any Gramps documentation that indicates which release channels are connected to the “main” release process? Or is it none of them, and all 25 package manager listings are community maintained?
Package updates for winget are mostly community-managed, not managed centrally by Microsoft, hence the origin of this discussion to see if it can be automated within the existing Windows AIO release process.
No, that was not my point. If winget somehow became the dominant way that Gramps users on Windows obtained their software then it would make sense for the Gramps project to directly support that release path. Right now, and for the forseeable future, it seems to me that most Windows users are simply going to download the installer that the Gramps team already prepares and offers. For many users, winget just introduces another layer of complexity between them and what they want to do. The same applies to MacPorts. A package management system pays off when managing multiple software packages…so it appeals to a subset of users. Which is (still) fine.
All packages are community maintained. We only support the source distribution.
Yes. In the case of the Windows AIO and Debian package a GitHub action was provided by a volunteer.
We accept contributions from packagers if they would like to automate the packaging process. This may involve adding configuration files to Gramps, creating a GitHub action or uploading release assets.
Though, I believe it requires forking github.com/microsoft/winget-pkgs within github.com/gramps-project and having a repository owner (or delegate) configure an access token for the GitHub API as a secret value in the github.com/gramps-project/gramps repo.