Enrico Zini: pmdraft
Second generation package manager
I have created many prototypes
for
advanced
package
manager
features.
Erich Schubert also made a tag cloud prototype.
Recently, I wrote:
We have lots of interesting, usable metadata; we have algorithms; we have prototypes; we have ideas for lots of cool, implementable features. The question is, are we able to write applications that just combines what is needed from all this treasure to provide the right interface(s) for our base(s) of users?Most of the back-end code is already implemented in Python, and I'm thinking of putting it together into a working prototype for a new concept of a file manager. This could be even implemented quickly, if someone joins me who is good at:
- Python;
- a Python GUI toolkit like pyGTK, wxPython or pyQT;
- Debian.
Debora is 34, working as a web designer in a small enterprise. She has a laptop running Debian which she uses both for work and at home. She likes Debian for the wide range of software, that allows her to be always able to access the best tools for the job, even in a highly changing environment like the one of web design. At home she enjoys the various tools for photo editing and management, and of course, having a husband and a 6 years old son, the selection of games.The tasks
- Looking for new software
- "Is there an application that can do X?"
- Looking at what is installed
- "Let's see if this package does what I need"
- "What was that nice package I installed yesterday?"
- Removing things that are not needed anymore
- "Let's get rid of the cruft"
/(usr/)?s?bin/ and they must have manpages.
For packages that are tagged as interface::3d, interface::text-mode or
interface::x11, allow to run them directly from the interface.
Also show the contents of /usr/share/doc/pkgname and
/usr/share/doc/suggested-and-recommended-pkgnames and allow to open
documentation with the appropriate software. If there is an html directory
which contains an index.html, only show that and not all the other
HTML files.
Find info documentation and allow to open it into a proper info browser.
If there are manpages that don't have a corresponding executable, show them as
extra documentation.
What was that nice package I installed yesterday?
List installed packages sorted by when was the last time they have been
installed.
Let's get rid of the cruft
- Of course, track auto-installed packages like aptitude and debfoster are doing.
- Also allow to list packages that have been auto-installed satisfying Recommends: lines.
- Popcon scores (show less popular installed packages first)
- List packages marked as
<OLD>in the local popcon scan (and then, by increasing atimes): those are the packages that are installed but are not being used. - Use negative popcon suggestions, that is, find out a way to compute the opposite as what is found here.
case "any": $filter = "'!role::shared-lib'"; break;
case "gui": $filter = "'!role::shared-lib && role::program && (interface::x11 interface::3d)'"; break;
case "devel": $filter = "'!role::shared-lib && devel::*'"; break;
case "game": $filter = "'!role::shared-lib && role::program && game::*'"; break;
default: $filter = ""; break;
The same filter can be gived to Debtags:
debtags search '!role::shared-lib'
debtags search '!role::shared-lib && role::program && (interface::x11 interface::3d)'
debtags search '!role::shared-lib && devel::*'
debtags search '!role::shared-lib && role::program && game::*'
Conclusion
As I said:
There is so much really cool stuff to be written, just within reach.So?
