dubuntu-team team mailing list archive
-
dubuntu-team team
-
Mailing list archive
-
Message #00058
Functionality and design
Hi Guys
I think it would be a good idea if we created a quick thread to through
around a few ideas on the system design and functionality before I
update the wiki.
1. Language
Both Python and C++ were suggested for the development of the installer;
Python for its spead of development, C++ since it is the core on which
Linux was build and the language most people know. They are both great
and I don't mind either. So I guess its up to you guys to decide.
2. Apt
Since we'll be installing packages it makes sense using the tools that
are already available. The best one for us would be apt (apt-get and
related tools). Once you've worked your way through the questions and
selected the options you want apt will do the actual installing of
packages.
And of course both Python and C++ have API's/libraries for apt, so
building an app with apt integrated into it is also possible.
3. Database
The knowledge base must be stored in a database. There were some
discussions on the use of a database. MySQL was suggested. It also
allows you to build the database directly into the application rather
than using a db server or client.
This will require carefull consideration. We might want to access both
the database on the Devbuntu site and(/or) a local copy. The server
installation will cover both, but will also require the database server
to run on the local machine. Suggestions? Maybe MySQL client to access
the web server and integrated client libraries to access the local copy?
4. Application Definition
XML was suggested for storing the questions, categories, etc. which
defines how the installer would work. This is a cool idea as this would
allow each application for the installer (eg. development, multimedia,
education, etc) to have its own operation/identity. In fact an upgrade
for the installer might actually just be an update of the application
definition and not the executables
Of course MySQL could also be used to store this info, but if you want
to store information about the database to use, it will have to be in a
file. On the other hand, XML is much easier to manipulate by manually
if you want to develop (or play with) the installer.
5. DevBuntu API
Most of the above will have to be packaged in a library on which we can
build the different interfaces... and of course to allow the creative
comuity out there to create there own front-ends. This library/API will
probably take a lot of effort to design.
We'll need to consider all the operations/functions we wish to perform
and allow for flexible commands to do it with. This might actaully be
done parallel with designing a gui as the gui will give you a great idea
of what you need.
6. CLI
We've spoken about using the CLI to support legacy, but after thinking
about it, it might not be so practical. How do you guide someone
through questions and selections on the command line and still have
something that is user-friendly. If you must ncurses seems to be the
better route if you have to go text.
7. GUI
The most obvious starting point would be GTK+ as this covers the "main
stream" Ubuntu. A Qt version can also be done for the Kubuntu guys,
etc... as long as they both use the same DevBuntu API.
So this is the structure the way I see it:
|------Possible Front-ends-------|
NCurses GTK+ Qt .....
\ | /
\ | /
DevBuntu API/Library
/ | \
/ | \
KnowlegeBase Apt App Def File
(MySQL) (apt-get) (XML)
|-------Tools/dependencies--------|
Does this work for you? Would love to hear your comments.
Charl
Follow ups