Thoughts on releasing Gramps via WinGet?

Hi folks,

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 gravatar tunisiano on the Chocolatey website, don’t believe they have ever interacted with this project.

2 Likes

Isn’t Gramps already available? From the briefest of looks, it appears that this formula downloads and installs GrampsAIO-5.2.1-1_win64.exe from -

https://github.com/gramps-project/gramps/releases/download/v5.2.1/GrampsAIO-5.2.1-1_win64.exe

The latest changes, 4 months ago, were by a user Okeanos.

Craig

1 Like

Yes looks like it , haven’t tried to install but the actual winget page ( https://winget.run/pkg/Gramps/Gramps ) only list Gramps 5.1.5 and an open waiting for review pr for Gramps 5.2.2 !

[Edit: A further look around shows that as Craig mentioned above user Okeanos ( Nikolas Grottendieck ) submitted the last release Gramps 5.2.1 shown here https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/Gramps/Gramps the page above that shows Gramps 5.1.5 is outdated! ]

Raised a Gramps feature request to track this see 13351 Make Gramps avaiable via [Windows Package Manager] (also known as winget) from Microsoft.

Thanks for the quick replies here!

@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 :slight_smile:
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.)

2 Likes

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 and write) support for SQLite and BSDDB exists. This creates another stumbling point for legacy database recovery.

Year App Version XML schema Database schema
2006 Gramps 2.0.10 0.0.0 to 1.0.0 BSDDB 1 to 8
2008 Gramps 2.2.10 0.0.0 to 1.1.4 BSDDB 5 to 12
2008 Gramps 3.0.4 1.1.0 to 1.2.0 BSDDB 9 to 14
2023 Gramps 5.1.5 1.0.0 to 1.7.1 SQLite 19 to 19 / BSDDB 13 to 19 Last Win32-bit
2023 Gramps 5.1.6 1.0.0 to 1.7.1 SQLite 19 to 19 / BSDDB 13 to 19
2024 Gramps 5.2.0 1.0.0 to 1.7.1 SQLite 19 to 20 (BSDDB 13 to 19 read only)

It built in to windows by standard now in later versions. No need to install it, just open terminal/power shell and write winget install whatever.

I personally just download the AIO. But different stuff for different folks.

1 Like

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.

1 Like

@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.

Craig

1 Like

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.

1 Like

Got it, thanks for clarifying!

Thanks for this context, @Nick-Hall , very helpful!

I’ll take a look at the GitHub workflows to see if it is possible to automate the winget package process, maybe others could be automated as well.

I did some research on the GitHub workflows, looks like this action is fairly popular: WinGet Releaser · Actions · GitHub Marketplace · GitHub

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.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.