Add-On Manager Discussion
Posted: 30.10.2003, 17:44
. . . This message is a combination of messages from the Users forum . . .
(Note: Times are GMT/UTC - 7 hours)
---< Begin re-located, previous messages >---
FROM: Christophe / Tue Oct 28, 2003 3:25 pm
I think that has already been discussed in the forums too.
The basic plan is to define a package format for add-ons, very simply that would be a zip file including a defined folder hierarchy (depending on the add-on type) and a manifest file.
The manifest file would hold information like the add-on type, author, release date, changelog, objects provided, dependencies on the Celestia version or on other add-ons or on objects, screenshot, and so on.
We'd then have a central web repository for those add-ons, very similar (in my mind) to KDE-Look. Add-on creators would simply upload their zip files, and the database would be directly updated from the manifest file (no need to fill in a form).
The next step would be to make celestia able to connect to this site to download new add-ons or updated add-ons, eventually even dealing with dependencies by itself.
--------------------------------------------------------------------------------
FROM: don / Tue Oct 28, 2003 4:34 pm
Howdy Christophe,
Your description is very good, but it only describes a central repository of add-ons and that their format should be pre-defined. It does not describe anything that I believe would be included in an "Add-On Manager", such as many programs use now.
In my mind, an Add-On Manager for Celestia would be no more than a list window that should be able to do the following things:
* List all existing and locally available (on disk) add-ons, with whatever other information (button) on them is required.
* The list display should include a button to connect the users machine to the Add-Ons repository, obtain a list of currently available add-ons and their descriptions, then list them with the users currently installed or on-disk add-ons (showing location of each -- installed, local disk, repository, etc.).
* The list display should provide a button for repository entries, that would open a web page describing the specific Add-On, along with pictures, from the repository site.
* The list display should provide a button that allows the user to install or remove any add-on, whether it is installed, stored on local disk or stored on the repository. This function will also be required to modify any existing files, such as solarsys.ssc, as necessary (described in the required Add-On manifest file), for both, the add and remove functions.
To me, this is a manager of Add-Ons <smile>. The repository and connect-to-repository features can be added later. A pre-defined file format and required content list (such as the manifest file) for add-ons can certainly be created now. When existing add-ons are modified to meet this requirement, they would automatically be eligible for automated Celestia Add-On Management (add/remove).
The manager part should be easy enough to code, but obviously will require a programmer to code it <smile>. It might be much more difficult to get everyone to agree on the file contents and format of the manifest file, ZIP or TAR file, etc., and then to find somewhere to host an all-encompassing Add-On repository.
--------------------------------------------------------------------------------
FROM: Christophe / Tue Oct 28, 2003 5:30 pm
Of course that's what is intended.
--------------------------------------------------------------------------------
FROM: chris / Wed Oct 29, 2003 3:31 am
Regarding the management of add-ons . . .
I think that creating a central add-on repository with generous amounts of disk space and bandwidth would be the single most useful thing for Celestia users right now.
For a package format, I favor ZIP because of its ubiquity. It would be helpful to define custom file extension like .celz, because you don't want to associate Celestia with all .zip files. The manifest included in the package would have the name of the add-on, the author, a description, and some other yet-to-be-determined data. I think everyone agrees on these basics.
Celestia should include code to manage local add-ons and to get additions and updates from the central repository.
And it should all be as slick as Apple's iTunes
--------------------------------------------------------------------------------
FROM: Christophe / Wed Oct 29, 2003 4:04 am
The road is straight but the slope is strong.
--------------------------------------------------------------------------------
FROM: don / Wed Oct 29, 2003 11:19 am
Howdy Christophe,
CAUTION! 10% DOWN-SLOPE beyond next crest!
Are you ready? Weeeeeeeeee . . .
There MUST be some GUI (list window) programmers out there, yes?
And someone who knows how to work with ZIP files, from a coding standpoint?
And someone who knows SQL and XML, for the repository.
So, it's just a matter of getting these folks what they need (tools, encouragement, a means to work together, etc.), so they can work on Celestia and its sub-projects.
--------------------------------------------------------------------------------
FROM: don / Wed Oct 29, 2003 11:34 am
Howdy Chris,
Does ZIP have an API so files can be extracted from within program code?
Why would there need to be an association? The "manager" would look for ZIP files in a sub-directory within Celestia.
Yep, plus...
* Version Number
* SSC mods (for default/existing objects)
Haven't seen that one yet. Have my own radio station on my disk (21,000+ MIDI files, 7,600+ MP3s), mostly 50's thru 70's -- not to mention a 200 CD carousel.
Have a great day!
--------------------------------------------------------------------------------
FROM: chris / Wed Oct 29, 2003 12:48 pm
It would be nice to be able to click on a package file--or a link to one in a web page--and have Celestia automatically pop up a package installation dialog. This is not an essential feature, but I do think that it'd be convenient.
Yes . . .
I'm not sure how to handle add-ons that modify an existing .ssc file. My temptation is to disallow them, as they make keeping track of versions a complete mess. If an add-on has to modify solarsys.ssc or extrasolar.ssc, you'll have to install it manually.
--------------------------------------------------------------------------------
FROM: Christophe / Wed Oct 29, 2003 1:11 pm
zlib allows to work with files inside zipfiles as if they where directly in the filesystem. No problem here.
I do. I even do that for a living occasionaly but it is a lot of work. Nothing difficult, but that's probably something like one man month. Fitting that into one's spare time and not losing interest along the way is not an easy task.
That's why I think finding an existing code base is a requirement for this to succeed, development time would probably be brought done to a lot more reasonable one man week.
--------------------------------------------------------------------------------
FROM: Christophe / Wed Oct 29, 2003 1:30 pm
I think we need some way to overwrite the default ssc files from the extra directory. That would allow to replace textures from an add-on without having to manualy chage the 'Alternate texture'.
--------------------------------------------------------------------------------
FROM: don / Thu Oct 30, 2003 2:22 am
Okay, that makes sense.
I would think that the first thing most Celestia users will want to do is install higher resolution textures for our own Solar System objects -- all of which reside in the solarsys.ssc file. Maybe Christophe's idea about a .SSC file within the extras folder/sub-folders overriding the default .SSC file or auto-adding as an Alternate Texture would work better?
To modify the .SSC file shouldn't be too bad. For adding or removing an Add-On, a template type of entry could be added to the .SSC file for each line modified, such as:
This way, a human will know what was done, and when, if the file is looked at. Then, to reverse the modification when an Add-On is removed is just a matter of searching for it's name, removing the added line of code, uncommenting the <commented entry> (original entry), and removing the Add-On section comments. Not sure what kind of start-up hit Celestia would take with all the added comment lines.
Maybe not so obvious, the manifest would include instructions such as:
Old line: Texture "earth.*"
New line: Texture "earth.dds"
Just one idea.
--------------------------------------------------------------------------------
FROM: don / Thu Oct 30, 2003 2:43 am
Good to know Christophe. Thanks!
I am merely assuming that SQL (whatever brand/version) would be best for the database, and that XML would be used for remote control. Maybe there are better things to use?
No, creating the repository code would not be an "easy" spare-time task for one person, and would require lots of continued encouragement from other members.
But, this doesn't have to be a one-person job, and you don't have to have any C++ experience either. Maybe several people could work on different parts of this sub-project, to keep each individuals time to a minimum and "interest level" high? Does anyone else know:
* SQL (for the database part)
* XML (for remote control stuff)
* Web forms (CGI -- perl, php, other - for the UI)
* Other things that would be useful for the repository site
The Celestia Add-On Repository web site is more interactive web site design and coding, than anything else. However, the Add-On Manager side of this sub-project, built into Celestia, will probably be a lot of C++ coding.
Agreed. But finding an open source code base might be more difficult / time consuming than just writing it. I've tried to do some preliminary searches and the only ones I found were retail versions.
--------------------------------------------------------------------------------
FROM: Paolo / Thu Oct 30, 2003 2:49 am
Hey guys this thread is extremely interesting, almost all my suggestions and feature requests as exposed in thread:
http://ennui.shatters.net/forum/viewtopic.php?t=2752
and in my website:
http://members.xoom.virgilio.it/pangeli70/My%20Celestia/Group%204.htm
will be implemented.
but...
please may I say one thing ,
one ,
just one,
only one.
Before starting with add-on management development should be better to release 1.3.1.
Don't you agree?
(Last edited by Paolo on Thu Oct 30, 2003 3:04 am; edited 1 time in total )
--------------------------------------------------------------------------------
FROM: Paolo / Thu Oct 30, 2003 3:04 am
I would like add another idea to this brainstorming about the add-on management.
In order to solve some problems about coherence of modifications of system data and add-on data, probably and add-on editor for ssc, xyz and dat file should be very useful.
Many folks have tried to do this in the past.
An integrated solution or a separate editor should solve definitively the problem.
This should be another main task indeed.
---< End of re-located, previous messages >---
(Note: Times are GMT/UTC - 7 hours)
---< Begin re-located, previous messages >---
FROM: Christophe / Tue Oct 28, 2003 3:25 pm
Code: Select all
Paolo wrote:
In my feature requests I've already proposed some very simple suggestion to improve the add-on management.
I don't know which is your project about this argument.
Please can you explain us what are you planning to do?
I think that has already been discussed in the forums too.
The basic plan is to define a package format for add-ons, very simply that would be a zip file including a defined folder hierarchy (depending on the add-on type) and a manifest file.
The manifest file would hold information like the add-on type, author, release date, changelog, objects provided, dependencies on the Celestia version or on other add-ons or on objects, screenshot, and so on.
We'd then have a central web repository for those add-ons, very similar (in my mind) to KDE-Look. Add-on creators would simply upload their zip files, and the database would be directly updated from the manifest file (no need to fill in a form).
The next step would be to make celestia able to connect to this site to download new add-ons or updated add-ons, eventually even dealing with dependencies by itself.
--------------------------------------------------------------------------------
FROM: don / Tue Oct 28, 2003 4:34 pm
Howdy Christophe,
Your description is very good, but it only describes a central repository of add-ons and that their format should be pre-defined. It does not describe anything that I believe would be included in an "Add-On Manager", such as many programs use now.
In my mind, an Add-On Manager for Celestia would be no more than a list window that should be able to do the following things:
* List all existing and locally available (on disk) add-ons, with whatever other information (button) on them is required.
* The list display should include a button to connect the users machine to the Add-Ons repository, obtain a list of currently available add-ons and their descriptions, then list them with the users currently installed or on-disk add-ons (showing location of each -- installed, local disk, repository, etc.).
* The list display should provide a button for repository entries, that would open a web page describing the specific Add-On, along with pictures, from the repository site.
* The list display should provide a button that allows the user to install or remove any add-on, whether it is installed, stored on local disk or stored on the repository. This function will also be required to modify any existing files, such as solarsys.ssc, as necessary (described in the required Add-On manifest file), for both, the add and remove functions.
To me, this is a manager of Add-Ons <smile>. The repository and connect-to-repository features can be added later. A pre-defined file format and required content list (such as the manifest file) for add-ons can certainly be created now. When existing add-ons are modified to meet this requirement, they would automatically be eligible for automated Celestia Add-On Management (add/remove).
The manager part should be easy enough to code, but obviously will require a programmer to code it <smile>. It might be much more difficult to get everyone to agree on the file contents and format of the manifest file, ZIP or TAR file, etc., and then to find somewhere to host an all-encompassing Add-On repository.
--------------------------------------------------------------------------------
FROM: Christophe / Tue Oct 28, 2003 5:30 pm
Of course that's what is intended.
--------------------------------------------------------------------------------
FROM: chris / Wed Oct 29, 2003 3:31 am
Regarding the management of add-ons . . .
I think that creating a central add-on repository with generous amounts of disk space and bandwidth would be the single most useful thing for Celestia users right now.
For a package format, I favor ZIP because of its ubiquity. It would be helpful to define custom file extension like .celz, because you don't want to associate Celestia with all .zip files. The manifest included in the package would have the name of the add-on, the author, a description, and some other yet-to-be-determined data. I think everyone agrees on these basics.
Celestia should include code to manage local add-ons and to get additions and updates from the central repository.
And it should all be as slick as Apple's iTunes
--------------------------------------------------------------------------------
FROM: Christophe / Wed Oct 29, 2003 4:04 am
Code: Select all
chris wrote:
I think everyone agrees on these basics.
The road is straight but the slope is strong.
--------------------------------------------------------------------------------
FROM: don / Wed Oct 29, 2003 11:19 am
Howdy Christophe,
Code: Select all
Christophe wrote:
The road is straight but the slope is strong.
CAUTION! 10% DOWN-SLOPE beyond next crest!
Are you ready? Weeeeeeeeee . . .
There MUST be some GUI (list window) programmers out there, yes?
And someone who knows how to work with ZIP files, from a coding standpoint?
And someone who knows SQL and XML, for the repository.
So, it's just a matter of getting these folks what they need (tools, encouragement, a means to work together, etc.), so they can work on Celestia and its sub-projects.
--------------------------------------------------------------------------------
FROM: don / Wed Oct 29, 2003 11:34 am
Howdy Chris,
Code: Select all
chris wrote:
For a package format, I favor ZIP because of its ubiquity.
Does ZIP have an API so files can be extracted from within program code?
Code: Select all
chris wrote:
It would be helpful to define custom file extension like .celz, because you don't want to associate Celestia with all .zip files.
Why would there need to be an association? The "manager" would look for ZIP files in a sub-directory within Celestia.
Code: Select all
chris wrote:
The manifest included in the package would have the name of the add-on, the author, a description, and some other yet-to-be-determined data. I think everyone agrees on these basics.
Yep, plus...
* Version Number
* SSC mods (for default/existing objects)
Code: Select all
chris wrote:
And it should all be as slick as Apple's iTunes
Haven't seen that one yet. Have my own radio station on my disk (21,000+ MIDI files, 7,600+ MP3s), mostly 50's thru 70's -- not to mention a 200 CD carousel.
Have a great day!
--------------------------------------------------------------------------------
FROM: chris / Wed Oct 29, 2003 12:48 pm
Code: Select all
don wrote:
Why would there need to be an association? The "manager" would look for ZIP files in a sub-directory within Celestia.
It would be nice to be able to click on a package file--or a link to one in a web page--and have Celestia automatically pop up a package installation dialog. This is not an essential feature, but I do think that it'd be convenient.
Code: Select all
chris wrote:
The manifest included in the package would have the name of the add-on, the author, a description, and some other yet-to-be-determined data. I think everyone agrees on these basics.
don wrote:
Yep, plus...
* Version Number
Yes . . .
Code: Select all
don wrote:
* SSC mods (for default/existing objects)
I'm not sure how to handle add-ons that modify an existing .ssc file. My temptation is to disallow them, as they make keeping track of versions a complete mess. If an add-on has to modify solarsys.ssc or extrasolar.ssc, you'll have to install it manually.
--------------------------------------------------------------------------------
FROM: Christophe / Wed Oct 29, 2003 1:11 pm
Code: Select all
don wrote:
And someone who knows how to work with ZIP files, from a coding standpoint?
zlib allows to work with files inside zipfiles as if they where directly in the filesystem. No problem here.
Code: Select all
don wrote:
And someone who knows SQL and XML, for the repository.
I do. I even do that for a living occasionaly but it is a lot of work. Nothing difficult, but that's probably something like one man month. Fitting that into one's spare time and not losing interest along the way is not an easy task.
That's why I think finding an existing code base is a requirement for this to succeed, development time would probably be brought done to a lot more reasonable one man week.
--------------------------------------------------------------------------------
FROM: Christophe / Wed Oct 29, 2003 1:30 pm
Code: Select all
chris wrote:
I'm not sure how to handle add-ons that modify an existing .ssc file. My temptation is to disallow them, as they make keeping track of versions a complete mess. If an add-on has to modify solarsys.ssc or extrasolar.ssc, you'll have to install it manually.
I think we need some way to overwrite the default ssc files from the extra directory. That would allow to replace textures from an add-on without having to manualy chage the 'Alternate texture'.
--------------------------------------------------------------------------------
FROM: don / Thu Oct 30, 2003 2:22 am
Code: Select all
chris wrote:
It would be nice to be able to click on a package file--or a link to one in a web page--and have Celestia automatically pop up a package installation dialog.
Okay, that makes sense.
Code: Select all
chris wrote:
I'm not sure how to handle add-ons that modify an existing .ssc file. My temptation is to disallow them, as they make keeping track of versions a complete mess. If an add-on has to modify solarsys.ssc or extrasolar.ssc, you'll have to install it manually.
I would think that the first thing most Celestia users will want to do is install higher resolution textures for our own Solar System objects -- all of which reside in the solarsys.ssc file. Maybe Christophe's idea about a .SSC file within the extras folder/sub-folders overriding the default .SSC file or auto-adding as an Alternate Texture would work better?
To modify the .SSC file shouldn't be too bad. For adding or removing an Add-On, a template type of entry could be added to the .SSC file for each line modified, such as:
Code: Select all
#*** Begin new entry for <Add-On name> ***************
# Modified on: <date>
# Old entry: <commented entry>
# blank line
<new required entry>
#** End new entry for <Add-On name> *****************
This way, a human will know what was done, and when, if the file is looked at. Then, to reverse the modification when an Add-On is removed is just a matter of searching for it's name, removing the added line of code, uncommenting the <commented entry> (original entry), and removing the Add-On section comments. Not sure what kind of start-up hit Celestia would take with all the added comment lines.
Maybe not so obvious, the manifest would include instructions such as:
Old line: Texture "earth.*"
New line: Texture "earth.dds"
Just one idea.
--------------------------------------------------------------------------------
FROM: don / Thu Oct 30, 2003 2:43 am
Code: Select all
Christophe wrote:
zlib allows to work with files inside zipfiles as if they where directly in the filesystem. No problem here.
Good to know Christophe. Thanks!
Code: Select all
Christophe wrote:
don wrote: And someone who knows SQL and XML, for the repository.
I do. I even do that for a living occasionaly but it is a lot of work. Nothing difficult, but that's probably something like one man month. Fitting that into one's spare time and not losing interest along the way is not an easy task.
I am merely assuming that SQL (whatever brand/version) would be best for the database, and that XML would be used for remote control. Maybe there are better things to use?
No, creating the repository code would not be an "easy" spare-time task for one person, and would require lots of continued encouragement from other members.
But, this doesn't have to be a one-person job, and you don't have to have any C++ experience either. Maybe several people could work on different parts of this sub-project, to keep each individuals time to a minimum and "interest level" high? Does anyone else know:
* SQL (for the database part)
* XML (for remote control stuff)
* Web forms (CGI -- perl, php, other - for the UI)
* Other things that would be useful for the repository site
The Celestia Add-On Repository web site is more interactive web site design and coding, than anything else. However, the Add-On Manager side of this sub-project, built into Celestia, will probably be a lot of C++ coding.
Code: Select all
Christophe wrote:
That's why I think finding an existing code base is a requirement for this to succeed, development time would probably be brought done to a lot more reasonable one man week.
Agreed. But finding an open source code base might be more difficult / time consuming than just writing it. I've tried to do some preliminary searches and the only ones I found were retail versions.
--------------------------------------------------------------------------------
FROM: Paolo / Thu Oct 30, 2003 2:49 am
Hey guys this thread is extremely interesting, almost all my suggestions and feature requests as exposed in thread:
http://ennui.shatters.net/forum/viewtopic.php?t=2752
and in my website:
http://members.xoom.virgilio.it/pangeli70/My%20Celestia/Group%204.htm
will be implemented.
but...
please may I say one thing ,
one ,
just one,
only one.
Before starting with add-on management development should be better to release 1.3.1.
Don't you agree?
(Last edited by Paolo on Thu Oct 30, 2003 3:04 am; edited 1 time in total )
--------------------------------------------------------------------------------
FROM: Paolo / Thu Oct 30, 2003 3:04 am
I would like add another idea to this brainstorming about the add-on management.
In order to solve some problems about coherence of modifications of system data and add-on data, probably and add-on editor for ssc, xyz and dat file should be very useful.
Many folks have tried to do this in the past.
An integrated solution or a separate editor should solve definitively the problem.
This should be another main task indeed.
---< End of re-located, previous messages >---