Open AntonKrug opened 1 year ago
If there is a way to deploy the content a zip file and there is a way to script that, sure. 😁
winget for example doesn't allows to deploy the content a zip file...
Would it require creating an MSI package first?
For sure (which I don't want to support)... And then it surely needs to be signed, I assume offline and on Windows (which I don't use in my offline build pipeline and then uploaded to a store (most likely manually).
I recall last year that I was using tools in an automated CI-compatible way (from CLI), Do not recall exact name, but It was working on old Linux distributions such as RHEL 6 and was able to reliably sign windows EXE installer binaries. And there was a way to convert the windows format of certificates which could be read by Linux tools. The signing worked reliably (produced at least 100 signed windows binaries), but I had my own paid certificate :/ I'm getting flashbacks that it might have been related to some old mono project (the binaries I signed were native ones, no C# but the signing tool might have been related to the mono project)
If anyone wants to attempt to build such a pipeline, I'd be happy to assist.
Maybe getting something to work like a NSI installer would be a good starting point (I don't know if MS supports that):
This issue is stale because it has been open for 30 days with no activity.
This issue was closed because it has been inactive for 14 days since being marked as stale.
Winget does support deploying a zip file; it was added at the start of the year: https://devblogs.microsoft.com/commandline/windows-package-manager-1-4/
In https://devblogs.microsoft.com/commandline/windows-package-manager-1-4/#zip-archive I can only see that it supports executing installers from a ZIP archive... 🤔
Maybe someone has a proof of concept or an application in the Microsoft Store that just extracts a ZIP file?
I believe you need to use "zip" as the package type, and "portable" as the nested type; take for example: https://github.com/microsoft/winget-pkgs/blob/master/manifests/n/NirSoft/NirCmd/2.86/NirSoft.NirCmd.installer.yaml
If there is a documentation about the installer format and how to get it in the store and a way to automate updates in GitHub CI I might consider it...
Packages are added via PRs to the winget package repository: https://github.com/microsoft/winget-pkgs/ ; full instructions are provided there!
Thank you! If anyone wants to play around with it, I would certainly assist. But I currently have almost no access to a Windows box to test.
@pbek I'm willing to go through the headache of learning and getting this into the winget repo if you're ok with that?
Yes, thank you very much, @chris-mosley! It would be particularly beneficial to know if it's something that can be integrated into the current GitHub build pipeline.
It looks like it should be pretty straightforward. Just generating some YAML manifest files and opening a PR with the package repo. I started messing with it last night, I'm hoping we can have just a single multi language manifest but first blush appears that we'll need to generate one for each language and have a bunch of nearly identical manifests pointing to the same file ¯\(ツ)/¯
Thank you for the update. Sounds great so far. 👍🏻
I have this PR open to get version 23.12.3 into the repo. I believe it would only be listed on systems with the enUS local for now. If this is a success and they don't bounce it back I'll go through the trouble of figuring out all the 60+ locales ill need to add --
Ah, nice! Thank you! Doing that for all languages will be hard, I guess... And I wonder how that all can be automated as part of the QOwnNotes build pipeline...
I wonder if there are bots, like for flatpak or https://github.com/r-ryantm for nix, that are detecting new releases and creating such pull requests on their own.
I don't think the languages will be terribly difficult to add just as slugs for now. I think you could literally copy the pbek.QOwnNotes.locale.en-US.yaml yaml file and find/replace en_US with en_AT or whatever.
The only complication IMO is that ideally we would like the tags/search keywords to be in the language of that particular manifest. ie I added Tags:
We would just need to have equivalents for every language which is just a bit tedious to do all in one shot lol.
I'm hoping that we can do a "Universal" package but I'm not terribly optimistic.
re: bots like flatpack. I think it should be pretty easy to do. I think you just have to take the manifest I pushed and update the version, release notes etc and the installerSha256 (which I think is just the hash of the zip file).
You may also want to check the manifests I pushed to make sure you're happy with all the information I gave, I put my best guesses in for the different fields, if there is anything you disagree with let me know and I can update the PR.
As long we don't need to translate (and support) everything in all languages, I'm fine with it. 😅
Ad bots: I wonder if there are already such bots out there. For example, the one for Nix is using https://repology.org/ as data source.
Ad manifest: Where did you get the QOwnNotes is the open source notepad with markdown support and todo list manager
? Did I still write Markdown
in lowercase somewhere (I saw it written wrong in the README, for example 🙈)? Maybe something like QOwnNotes is a plain-text file notepad and todo-list manager with Markdown support and Nextcloud / ownCloud integration.
would be best.
This is not an issue, it's a feature request. Would you consider deploying the application on Microsoft Store?