pbek / QOwnNotes

QOwnNotes is a plain-text file notepad and todo-list manager with Markdown support and Nextcloud / ownCloud integration.
https://www.qownnotes.org/
GNU General Public License v2.0
4.6k stars 409 forks source link

[Feature request] Deployment on Microsoft Store #2740

Open AntonKrug opened 1 year ago

AntonKrug commented 1 year ago

This is not an issue, it's a feature request. Would you consider deploying the application on Microsoft Store?

pbek commented 1 year ago

If there is a way to deploy the content a zip file and there is a way to script that, sure. 😁

pbek commented 1 year ago

winget for example doesn't allows to deploy the content a zip file...

AntonKrug commented 1 year ago

Would it require creating an MSI package first?

https://github.com/jpakkane/msicreator

pbek commented 1 year ago

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

AntonKrug commented 1 year ago

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)

pbek commented 1 year ago

If anyone wants to attempt to build such a pipeline, I'd be happy to assist.

pbek commented 1 year ago

Maybe getting something to work like a NSI installer would be a good starting point (I don't know if MS supports that):

https://github.com/Serial-Studio/Serial-Studio/blob/0a16c90acdde2e99a5e78dc158eae38cf0926c19/.github/workflows/deploy.yml#L201-L204

github-actions[bot] commented 1 year ago

This issue is stale because it has been open for 30 days with no activity.

github-actions[bot] commented 1 year ago

This issue was closed because it has been inactive for 14 days since being marked as stale.

Kroc commented 1 year ago

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/

pbek commented 1 year ago

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?

Kroc commented 1 year ago

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

pbek commented 1 year ago

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

Kroc commented 1 year ago

Packages are added via PRs to the winget package repository: https://github.com/microsoft/winget-pkgs/ ; full instructions are provided there!

pbek commented 1 year ago

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.

chris-mosley commented 9 months ago

@pbek I'm willing to go through the headache of learning and getting this into the winget repo if you're ok with that?

pbek commented 9 months ago

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.

chris-mosley commented 9 months ago

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 ¯\(ツ)

pbek commented 9 months ago

Thank you for the update. Sounds great so far. 👍🏻

chris-mosley commented 9 months ago

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

https://github.com/microsoft/winget-pkgs/pull/130310

pbek commented 9 months ago

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

pbek commented 9 months ago

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.

chris-mosley commented 9 months ago

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.

pbek commented 9 months ago

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.