Chris has asked me to prepare blog posts after each weekly development meeting summarizing the decisions and conclusions made.
During last night’s meeting (10-13-09) I wanted to discuss a few improvements to the command line interface for 1.0. We also got to several other topics along the way.
First, we decided to remove the ‘create’ command from the interactive CLI. Instead, Keryx will check if the project exists when started. If not, Keryx will ask the user for confirmation, then create the project. After creation, some basic information about the project will be displayed (architecture, computer name, etc.) before going to the interactive prompt. If the project does exist, it will be loaded then go to the interactive prompt.
Another decision we arrived at was to group all of Keryx’s special download functions (download upgrades, dist-upgrades) into the ‘download’ command as arguments (ex. –upgrade, –dist-upgrade). The apt-get-like commands such as install, upgrade, and dist-upgrade will be for installing software on the local machine.
There was plenty of debate about this design. Jacseen suggested having commands such as ‘install’, ‘upgrade’, etc. automatically detect whether it is on the local or remote machine and thus whether to download or install packages. Though this would simplify the CLI considerably, it would take some control from the user, and could possibly lead to some confusion. We agreed to go with explicit download/install design for now, though we may look at Jacseen’s approach again later.
I also mentioned that we should add a ‘clear’ command to the CLI to purge project data. ‘keryx clear’ would clear all project data from the database, and ‘keryx clear <project_name>’ would only purge the data for one project.
Finally, we decided to store configuration options in the database to be edited via the CLI, while allowing for an optional text configuration file to override settings in the database.
Despite the intense debate and decision-making, we had a good time. Most importantly, we got a little better idea of what 1.0 will look like and moved one step closer to our goal of a great release.
Thanks to Chris and Jacseen for attending, and I look forward to next Tuesday!
