diff --git a/OARiNZ/DIY/DIY_spec.tex b/OARiNZ/DIY/DIY_spec.tex index 4d1dbd6..2114872 100755 --- a/OARiNZ/DIY/DIY_spec.tex +++ b/OARiNZ/DIY/DIY_spec.tex @@ -19,7 +19,7 @@ \title{\textsf{\textbf{OARiNZ DIY Repository Solution}}} \author{\textsf{\textbf{Nigel Stanger}}} -\date{\textsf{\textbf{August/September 2006}}% +\date{\textsf{\textbf{October/November 2006}}% \linebreak\linebreak\linebreak\linebreak\linebreak% \includegraphics[scale=0.4]{OU-Logo-Colour}} @@ -89,7 +89,7 @@ \subsection{Repository software} -Ultimately it would be nice to provide a solution for both GNU EPrints and DSpace, which are the two major open source solutions for smaller-scale repository implementation. However, we currently have little expertise at Otago with DSpace, so the initial focus will be on delivering a solution for EPrints. The Tasmania EPrints statistics software will also be included as a standard component, so that any repositories installed using this solution generate download statistics out of the box. +Ultimately it would be nice to provide a solution for both GNU EPrints and DSpace, which are the two major open source solutions for smaller-scale repository implementation. However, we currently have little expertise at Otago with DSpace, so the initial focus will be on delivering a solution for EPrints. The Tasmania EPrints statistics software will also be included as a standard component, so that any repositories installed using this solution generate download statistics out of the box. We will focus on the current stable release of EPrints (2.3.13.1). EPrints 3.0 is still in development and not yet available to the general community. \subsection{Operating systems} @@ -104,6 +104,7 @@ \subsection{Package installation} +\label{sec-installation} Unfortunately Unix-based environments do not provide as much uniformity of operating environment as we would like. There is wide variation even across different Linux distributions, with regard to package installation and management, system environment and standard toolsets. The process for installing a required package is completely different under Mac OS X, Debian Linux, Red Hat Linux and FreeBSD, for example, and there are even sometimes multiple package management mechanisms available within the same operating system distribution. @@ -185,6 +186,8 @@ The repository installer will include the M\={a}ori and Pacific Island language packs for EPrints that were developed at Wintec. No special handling is required for these; they will simply be included as standard components in the EPrints installation. +Another issue not yet discussed is when new versions of the solution should be released. An obvious approach is to key the version number of the solution to the corresponding EPrints version, and release a new version of the solution every time a new version of EPrints is released. For minor version number changes the differences should be small. Major version number changes may require more substantial re-engineering. This approach will ensure that the correct version of the configurator is always used with the correct version of EPrints. (This could be subverted by a manual upgrade, so the configurator should always check the installed EPrints version number before proceeding.) + \subsection{Summary of design recommendations} @@ -192,7 +195,9 @@ \begin{itemize} - \item GNU EPrints + \item GNU EPrints 2.3.13.1 + + \item Tasmania statistics software \end{itemize} @@ -267,6 +272,8 @@ \begin{itemize} \item M\={a}ori and Pacific Island language packs for EPrints to be included + + \item Synchronise EPrints and solution version numbers; release new versions corresponding to EPrints releases. \end{itemize} @@ -297,7 +304,7 @@ \end{center} \end{figure} -In this scenario, shown in Figure~\ref{fig-existing}, a repository implementer wishes to install a repository on an existing server, which already has an operating system and associated software installed (including the various LAMP components). They insert the installation CD and launch the repository installer application (\ding{'300}). The installer installs all the necessary packages to support EPrints (those that are not installed already), including the repository configurator and configuration items list, as implied by the dashed arrows at bottom right. After the installation completes, the installer opens the repository configurator in a web browser (\ding{'301}). The repository configuration is saved for future reference. +In this scenario, shown in Figure~\ref{fig-existing}, a repository implementer wishes to install a repository on an existing server, which already has an operating system and associated software installed (including the various LAMP components), but does not already have EPrints installed. They insert the installation CD and launch the repository installer application (\ding{'300}). The installer installs all the necessary packages to support EPrints (those that are not installed already), including the repository configurator and configuration items list, as implied by the dashed arrows at bottom right. After the installation completes, the installer opens the repository configurator in a web browser (\ding{'301}). The repository configuration is saved for future reference. Note the separation of the repository configurator into a web user interface and back-end shell for executing installation tasks. @@ -315,93 +322,102 @@ In this scenario, shown in Figure~\ref{fig-reconfigure}, a repository administrator wishes to reconfigure their installation\footnote{As noted in Section~\ref{sec-configure}, this only applies to EPrints installations that were installed by the DIY installer, not to manual EPrints installations.}, for example, to create new repository or to change the settings of an existing repository. They launch the repository configurator that was installed on the server during the original installation process (\ding{'300}). This reads the existing repository configuration (\ding{'301}) and the configuration items list (\ding{'302}) and uses these to initialise the configurator. When complete, the new configuration is saved for future reference. -\subsection{Updating to a new version} +\subsection{Upgrading to a new version} -\ldots{}blah blah\ldots +In this scenario, a repository administrator wishes to upgrade an existing EPrints installation. The process is essentially the same as that shown in Figure~\ref{fig-existing}, with a couple of additions. The existing installation could have been installed either manually or by an earlier version of the DIY solution. Regardless, the installer checks for prior EPrints installations in standard locations (e.g., \texttt{/usr/local/eprints}). If the installer cannot find any, it asks the administrator to specify the location of any prior installations. The installer then offers to create a new installation alongside the existing one, as discussed in Section~\ref{sec-installation}. As a final step, it may offer to copy across certain files from the prior installation. \section{Implementation plan} -A phased implementation approach will be adopted, with each phase building on the outputs from the previous phase. However, not all of the tasks are sequential in nature and may be able to be carried out in parallel. Estimated start and finish dates are provided, but may be subject to change as work progresses. +A phased implementation approach will be adopted, with each phase building on the outputs from the previous phase. However, not all of the tasks are sequential in nature and some can be carried out in parallel. Indeed, some of the phases overlap and share work. Estimated start and finish dates are provided, but may be subject to change as work progresses. All components will be fully documented (both user and technical) on the OARiNZ knowledge base wiki, which will provide a base for future support. -\subsection{Phase 1: Build shell-based repository installer/configurator} - -\noindent \textbf{Start:} Mid-September 2006 \\ -\textbf{Finish:} 31 October 2006 - -\begin{itemize} - - \item Initially for Ubuntu Linux only. - - \item Modular implementation so that it is readily generalisable to - other platforms. - - \item Infrastructure for specifying configuration items and saving - repository configuration information. - - \item Must be able to obtain administrator level access. - - \item Can be run either standalone or as a CGI script. - - \item Test. - -\end{itemize} - - -\subsection{Phase 2: Build web-based installer/configurator interface} - -\noindent \textbf{Start:} 1 October 2006 \\ -\textbf{Finish:} Mid-November 2006 - -\begin{itemize} - - \item Use shell-based installer/configurator as a back end. - - \item Investigate feasibility of a web-based UI for the installation - step (e.g., by providing an Apache executable on the CD). - - \item Test. - -\end{itemize} - - -\subsection{Phase 3: Build bare metal installer (live CD)} +\subsection{Pre-packaged EPrints distribution} +\label{sec-package} \noindent \textbf{Start:} Mid-October 2006 \\ -\textbf{Finish:} 30 November 2006 +\textbf{Finish:} 31 November 2006 \begin{itemize} - \item Create \texttt{.deb} packages for EPrints and other associated - software that are not available in this format. - - \item Customise Ubuntu live CD with required packages for repository - installation. - - \item Integrate repository configurator into Ubuntu installation - process. - - \item Test. + \item Initially in \texttt{.deb} format, \texttt{.rpm} format later. + \item To be used by the various installers. + + \item Specify appropriate dependencies on prerequisite packages. + + \item Build as separate packages any prerequisite items that are not already available in pre-packaged form (such as required Perl modules, etc.). + + \item Standalone testing on Ubuntu and Debian (\texttt{.deb}), and Red Hat (\texttt{.rpm}) systems. + \end{itemize} -\subsection{Phase 4: Port standalone installer/configurator to other platforms} +\subsection{Web-based EPrints configurator} +\label{sec-configurator} \noindent \textbf{Start:} 1 November 2006 \\ \textbf{Finish:} 31 December 2006 \begin{itemize} - \item Debian Linux + \item Web-based UI as front end. - \item Mac OS X (investigate installation and use of Fink package - manager). + \item Shell-based configurator as a back end. - \item FreeBSD + \item Standalone testing. - \item Others? +\end{itemize} + + +\subsection{EPrints installer for existing systems} + +\noindent \textbf{Start:} 1 December 2006 \\ +\textbf{Finish:} 31 January 2007 + +\begin{itemize} + + \item Initially target Ubuntu/Debian Linux. + + \item Modular implementation so that it is readily generalisable to other platforms. Likely target platforms are Debian, Mac OS X (investigate installation and use of Fink package manager), FreeBSD, others? + + \item Infrastructure for specifying configuration items and saving repository configuration information. + + \item Must be able to obtain administrator level access. + + \item Can be run either standalone or called by another application. + + \item Standalone testing using dummy EPrints package, followed by integration testing with completed EPrints package from Section~\ref{sec-package}. + +\end{itemize} + + +\subsection{EPrints installer for new systems} + +\noindent \textbf{Start:} Mid-October 2006 \\ +\textbf{Finish:} Mid-February 2007 + +\begin{itemize} + + \item Customise Ubuntu live CD with required packages for repository installation. + + \item Integrate repository configurator into Ubuntu installation process. + + \item Standalone test with dummy EPrints and configurator packages, followed by integration testing with EPrints package from Section~\ref{sec-package} and completed configurator from Section~\ref{sec-configurator}. + +\end{itemize} + + +\subsection{Testing} + +\noindent \textbf{Start:} 1 December 2006 \\ +\textbf{Finish:} ongoing + +\begin{itemize} + + \item Ongoing standalone testing with various components on throwaway testing environment. + + \item On-site testing with typical ``client'' organisations and users. \end{itemize}