artisan-roaster-scope / artisan

artisan: visual scope for coffee roasters
https://artisan-scope.org
GNU General Public License v3.0
919 stars 252 forks source link

Improve packaging procedure #1682

Open wvengen opened 3 weeks ago

wvengen commented 3 weeks ago

Artisan is a complex piece of software with many dependencies. To make it work easily for users across various platforms, bundled installations are provided. Recently it was also released as a Flatpak (#1602), which required a somewhat different, out-of-tree, installation procedure.

Also noticing that packaging scripts for the different platforms have some overlap, I'm working out to see how the packaging could be improved. My goal is to:

Note that this issue will probably take quite some time, as bundling often has many thorny sides to it, and it needs testing on all platforms. But I'd like to try to see if this can be improved.

wvengen commented 3 weeks ago

For a start, I've looked at what some other PyQt-based projects are doing, and put it in a spreadsheet: pyqt-packaging.ods

Projects: Vorta, Ginga, Frescobaldi, ReText Markdown editor, ToirtoiseHg, ViTables, OnionShare, Anki client, RazerCfg, QWebOrf, QR Tools. (Note that I have a bit of a Linux bias, please suggest other projects that we could learn from.)

Some main findings:

wvengen commented 3 weeks ago

Seeing that each has their own way to work with i18n and qrc building, it may be a good idea to make this a Python package. And there is: setup_qt, pyqt-distutils and distutils-ui, though they're really old and don't support PyQt6.