Version Agnostic Installer

The Sahana Agasti Mayon Installer has been a huge step in speeding up development as it provides users and developer alike a simple user interface to do many tasks(that happen automatically in the background). This spec details how such an installer could materialize.

Design and Functional Requirements

Reference Information
Name of Design & Functional Preparer: Charles Wisniewski
Name of Other Contributors: Names
Last Updated: 03/21/2011

Note on contribution: Please feel free to fill out sections of the specification as this project is a collaborative effort; however, if you feel your ideas could be in conflict to previous ideas or you want to change sections already fleshed out please use the discuss tab first and find consensus with others working on this module or section.

Overview

The Sahana Agasti Mayon Installer is well advanced in it's implementation, level of abstraction, loose decoupling from the framework(symfony 1.4) and the cases it checks for. It is comforting to the user to have an installation that is straightforward, Sahana Agasti Mayon's installer provides this. When switching between versions of an application, or upgrading, it is important for the confidence of system administrators(or those charged with installing the application) to have consistent branding. To that degree the Sahana Agasti Mayon Installer should be abstracted to a level where the same 'installer framework' could be used in either application. This decoupling also aids in further endeavours of more easily making changes (adding components/steps to the installer)

Use Case

Use Case 1

User “John” wants to install Sahana Agasti Mayon, he currently is running Vesuvius. John remembered how he set up Vesuvius and when presented with an installer, John gives up and thinks this software is different and does not trust installing.

Use Case 2

User “Bob” has downloaded Vesuvius, he looks at the attached instructions and gives up. Bob then downloads Sahana Agasti Mayon and installs it with no issue, Bob was really hoping to have both installations running but did not understand the command line instructions to install Vesuvius

Non-Goals

The installer can only be so robust, it should not seek to port further back than the current stable version of Vesuvius and the current stable version of Mayon.

Open Issues

Package Management is still not fully developed and as such the default package set that comes with Mayon should be installed in entirety.

Workflow

<What screens should the user see? How should the work flow through the module? Good to include some sketches or pictures.> We should put workflows(or desired workflows) from both versions here

Reference Information

Reference Information
Name of Design & Functional Preparer: Charles Wisniewski
Name of Other Contributors: Names
Last Updated: 03/21/2011

Technical Specifications

Below is a very basic set of steps needed to achieve the needed functionality. Since this is a special case and is not 'user to computer' but 'computer to computer', the usual format of a table has been slighted.

  • create preliminary shell files for fresh admin setting up application for first time (superadmin user/pass) in mayon
  • identify common workflow steps from both mayon and vesuvius.
  • allow for workflow definition in an abstract way to allow for reuse of installer classes/templates
  • identify common installation and configuration functions to vesuvius and mayon
  • identify and implement best file structure in support of the needed functions to each
  • make installer framework abstract enough to support installation of both by proper classification in each version of the application
  • look up better way to utilize symfony in autoloading required classes
  • set up controller file to be something like install.inc.php
  • make proper use of autoloaded class files in controller
  • make front-end template more template-like.
  • investigate using framework to assist in dispatch between layers
  • investigate using symfony2 components as top top level components, perhaps assist in future portability
  • redirect as needed to an authenticated/further set up screen seamlessly

Vesuvius Specific Tasks

list some installation tasks here

Mayon Specific Tasks

list some installation tasks here

Note on contribution: Please feel free to fill out sections of the specification as this project is a collaborative effort; however, if you feel your ideas could be in conflict to previous ideas or you want to change sections already fleshed out please use the discuss tab first and find consensus with others working on this module or section.


QR Code
QR Code agasti:mayon:developer:version_agnostic_installer (generated for current page)