Making deployment of desktop Python apps trivial: an idea
Here's what I'm thinking: how hard could it be to make PyQt app deployment absolutely easy? Well, I am guessing: not very hard.
Here's the trick: see what works in the real world, and adopt it.
Question: what has deployed billions of apps and has its users happy? Answer: phones app stores.
Question: how do they work? Answer: well, that's not that short, so let's start explaining.
As I see it, a reasonable app store has the following components:
A Stable Deployment Target
You can't deploy from the store if you don't know what you are deploying into. If the target platform is shaky, you just can't know how to deploy without user assistance, and we are trying to make this easy for the user, which means that's not acceptable.
So, what's a stable deployment target we can provide?
PyQt (so we can deploy GUIs to all major desktop platforms)
Python standard library
Selected modules
What can be (and should be) bundled with the app?
Pure python modules
Artwork and other resources
What may be bundled:
Python modules written in C/C++, but you then have to redo the app for each platform, and that kinda sucks.
Deployment Services
Apps should be able to check if there is a new version of them in the store, to ask for upgrades.
Apps should be added by the deployment platform nicely into the host system's menus, desktop, etc.
Monetization Services
Some way to charge for apps. Even for open source apps, you could ask for U$S0.99 if you install them through the store. Optional, of course, and up to the app owner.
Ad platform? There must be a good one for desktop apps somewhere?
The Store Itself
A website that downloads a "package" associated with a local deployment application.
A app store app. Install things not via web, but via a desktop application.
I don't expect a functional version of this would take me more than a week working fulltime to implement. Of course then there are all sorts of usability, looks, etc. things to consider.
And... I am going to do something I very rarely do. I am going to ask for money.
As an experiment, I have setup a project at http://www.indiegogo.com/Qt-Shop and set a funding goal of U$S 600.
There you can fund me. I promise that if the project is totally funded, I will deliver. If it isn't, I may deliver anyway. I would prefer to have the money though.
The platform would be released under GPLv2 or later.