= Quattor Scrum Process and Backlog = [[TracNav]] [[TOC(inline)]] Quattor development principles are inspired by the [http://agilemanifesto.org/ Agile Manifesto]. Development process is based on the [http://en.wikipedia.org/wiki/Scrum_(development) scrum] method, an [http://en.wikipedia.org/wiki/Agile_software_development agile] software development methodology. A key idea of the scrum method is to make small incremental steps toward implementing new features and improvements required by the users. All the missing features, desirable functionalities or wishes are registered in the (product) backlog. Development process is organized as a succession of sprints which, for Quattor, are two month long. The work done as part of a specific sprint is a subset of the backlog and is described in a separate wiki page. || Sprint ID || Due date || Backlog URL || || 2011-04 (current) || 1/12/2011 || [/wiki/Development/Scrum/Sprint-2011-04] || || 2011-03 || 13/10/2011 || [/wiki/Development/Scrum/Sprint-2011-03] || || 2011-02 || 31/5/2011 || [/wiki/Development/Scrum/Sprint-2011-02] || || 2011-01 || 15/3/2011 || [/wiki/Development/Scrum/Sprint-2011-01] || || 2010-01 || 03/02/2011 || [/wiki/Development/Scrum/Sprint-201102] || This page contains the Quattor backlog. It reflects the state of the backlog at the beginning of the current sprint, ''with all items moved to the sprint backlog removed''. Each section describes the backlog for a specific part of the Quattor toolkit. '''The contents should not be interpreted as a commitment to implement the listed features.''' == Web site == #WebSite * Remove Trac request for a user certificate for anonymous access * Fix navigation menu behaviour * [ticket:226 Enable Trac indexing by robots] (Michel) * [ticket:247 Calendar of events on the wiki or in SF] (David) * May use "news" feature rather than calendar * Discussion on wishes related to navigation menu behaviour == Documentation == #Doc * Clarify or add missing material to answer Ronald's questions after his QWG migration experience * Implement changes based on Andrea's review (to be monitored in monthly meetings) * Ensure Quattor is reference on the appropriate open-source or software project portals * Ohloh * [http://www.krugle.com Krugle] * [http://freshmeat.net/projects/quattor Freshmeat] == Build tools == #BuildTools * Use of new build tools for other toolkit components (probably 1 by 1) == Pan Compiler == #Panc After [/wiki/Meetings/Workshops/20111011#QWGVars discussion] during Quattor workshop: * Function to dump all defined global variables at a specific point to help debugging. Like `debug()` function, should do nothing if the appropriate option is not passed to the compiler. An optional argument may restrict the name of the variables dumped, with a regexp on the name (if feasible). * Add ability with a compiler option to get a message printed everytime a template is included with an information display wheter it has been executed or skipped because it had the `unique` tag and was previously executed. * Would be great if it worked also with structure templates... == Configuration Modules == #ConfigModules * [ticket:249 ncm-network full rewrite] * See [/wiki/Meetings/Workshops/20111011#NetworkConfig discussion] during Strasbourg workshop * ncm-dpmlfc * [ticket:254 New schema using nlist rather than list (key=hostname) for service host lists]: this is required to simplify checks wheter an entry already exists. This change will not be backword compatible at the template level but the component may support both old and new schema. * Allow writing components in Python * See [/wiki/Meetings/Workshops/20111011#CompPython discussion] during Strasbourg workshop * First step could be a proof of concept using Python APIs developped for QuattorFS == Package Deployment == #SPMA * Replace SPMA by YUM. Even though it is a bit CERN (CDB/SWrep) specific, see https://twiki.cern.ch/twiki/bin/view/Main/SteveTraylen/Spma2Yum for input on problems to address and possible solutions. * A first action for Quattor development may be to establish a summary of this documents oriented as a list of actions, removing CERN specifics. == AII == #AII * Allow using standard Anaconda formatting instructions rather than pre scripts. See [/wiki/Meetings/Workshops/20111011#AII Workshop discussion]. == SCDB == #SCDB * Tool to check that RPMs for a gLite service, as published on http://glite.org, are present in a given XML profile with a version greater or equal to what is required * ''Story: RPM list published for gLite services include both gLite RPMs and other mandatory dependencies. In QWG templates they are declared in several templates. This is impossible to generate templates from official RPM lists and several services no longer have a metapackage, leading to missing RPMs in resulting QWG configuration. The idea is to have a script that will check that all the RPMs in the official list are present with a version at least equal to what is required in a node configured with QWG template (its XML profile).'' * [ticket:262 SCDB deployment script bug] (Michel) * Add ability to invoke `build-tags.py` directly from `post-commit.py` rather than through sudo, when running it under SVN account (generally apache) is acceptable. * [source:SCDB/trunk/utils/misc/comps2pan.xsl comps2pan.xsl]: add an option to allow to select which kernel RPM to use to identify the kernel RPM. * ''Story: Since SL5.5, `kernel-xen` is used as the default kernel in `comps.xml`. As a result, `comps2pan.xsl` is not able to locate the kernel entry in `comps.xml` list and there is no kernel entry (using `KERNEL_xxx` variables) in the generated template.'' * Rewrite in Python `rpmUpdates.pl` and `rpmErrata.pl` to make it easier to use YUM API to identify the most recent RPM available. * ''Story: original version of these scripts where using a custom huristics to find out the most recent version of each RPM. This heuristics proved to be very fragile. YUM API (`rpmUtils.miscutils`) provides a function to do this more reliably but calling it from a Perl script result in a ugly result...'' == Aquilon == #Aquilon * Provide an appliance with QWG templates preinstalled == QWG == #QWG * Rework the definition of RPM version to use using an improved default version mechanism. This involves: * Modified `ncm-spma` function `pkg_repl` to mark addition of a default version with a special value * Modified `ncm-spma` function `pkg_resolve` to resolve default version in the (final) package list * Update current `rpms.tpl` to do `pkg_repl` with default version and to define an initial list of package default version * Update update/errata RPM list to update the default version list * Remove reexecution of update/errata templates in many places... * [ticket:230 Produce a QWG release without gLite templates with its documentation] * Review network interface configuration to ensure it doesn't clash with SL6 interface name definition in `udev` * Look at the possibility of using a Quattor specific name for interfaces, also defined in `udev`. See [/wiki/Meetings/Workshops/20111011#RHEL6 discussion] during Strasbourg workshop. === gLite === #gLite * CE Capacity Share published based on Torque/MAUI (LRMS?) fairshare configuration * Current support is a static declaration not connected with the actual configuration of the CE * Torque submit filter must be configured on the CE instead of the Torque server as it is executed by `qsub` command * YAIM support as an alternative to QWG service configuration using the same variables (`yaim.tpl` in replacement of `service.tpl`) * WN profile cloning: allow to use several different reference nodes in the same cluster * ''Story: sometimes it is necessary to use different reference nodes for different subset of a clusters, to accomodate different OS version/arch for example.'' * [ticket:241 DPM/xrootd: add support for multiple principals] == Monitoring == #Monitoring == SINDES == #SINDES * Integration in Quattor server configuration (RAL) == Miscellaneous == #Misc * Migrate [ticket:255 panc], [ticket:257 ccm+ncm-ncd+ncm-cdispd] and [ticket:256 AII] to Git (distinct) repositories * [/wiki/Development/Scrum/CommandRenaming Command renaming] (prefixed by `quattor-`)