dotgnu-visionaries
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Visionaries] Package system vision


From: Ilyak Kasnacheev
Subject: [Visionaries] Package system vision
Date: Mon, 5 Apr 2004 22:13:30 +0400
User-agent: KMail/1.5.4

A proposal for pnet package system.
        "We need users. For users, we need apps." (c) nb, #dotgnu
We will benefit greatly if we will have package system that will:
Contain all packages currently ported to our toolchain
Offer flexible dependency tracking mechanisms
Offer easy ways to install, update, remove CLI apps from systyem
If possible, interaction with underlying package system (rpm, deb, ports, 
win32 UnInst and so on)
Be good if it will work on M$ .Net/mono, maybe with some limitation
Offer integration with GAC and ilgac tool

What should we decide:
Package system location in class tree 
        (System.Packages? DotGNU.Packages?)
Package file format
        PE/COFF? With small class invoking PackageManager if run, lots of 
bundled 
resoursers in SharpZipLib format and specs/scripts
Pre/post install scripts
        ECMAScript with some good API to make these packages flexible, 
relocable and 
safe?
        I beleive that running scripts having sull access to outer api will 
cause 
trouble here, so it's better to avoid.
Metadata list
        Package-by-origin (Gtk#::Gnome#::MonoDevelop), 
        package-by-function(Gui::Devel::IDEs::MonoDevelop == 
Devel::IDEs::Gui::MonoDevelop), 
        package-by-deps trees to _really_ easy and intuitive management 
        (you select package and imemdately see what is it, what is it part of 
and who 
depend on it and what it depend on, and just list of major packages, of 
course)
Package elements separation
        Like: Package contains 
                - set of core dlls if <Package>, 
                - set of solibs in <Package::i368-linux-gnu>,
                - .desktop and icons in <Desktop::X11::Package::menuitems>,
                - headers (will be any lol?) in <Devel::Package>,
                - docs in <Documentation::Package> and
                - develdocs in <Documentation::Devel::Package>
        of course, user just click on package and all he needs gets installed, 
on 
other hand, you may once do pakman -F Devel::* and for any package you have 
will be installed approptiate devel parts if you decided to join :)

Any visions? :)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]