

PiSi TODO List
==============

A list of tasks to accomplish, organized into priority sections

Legend:

- Todo
? Not determined if/how we have to do
/ In progress
+ Accomplished

1. Pre-Alpha

 + reading spec file
 + writing
   + files
   + metadata
 + Actions API framework
   + sample api modules (autotools)
   + unit test
 + source building
 + package module
   + extraction
   + add file / compression
 + package creation
 + install database
 + package database
 + command line interface
   + pisi-build
   + pisi-install
   + pisi-index
   + pisi-updatedb
 + single repository index
 + simple dependency checking
 + Package/Files

2. Alpha
 - incremental build (meren)
   - generate binary release number by comparing MD5s (meren)
   - keep track of successfully completed configure, make, install
     steps (necessary for large-scale builds?) (meren)
 / multi-package dependency analysis (eray)
   + design a package operation planner
   - install operation (eray)
   - upgrade operation (eray)
 + command line interface:
   + pisi remove
   - pisi upgrade (baris)
   + svn-like CLI
 - non-interactive use (baris)
 / configuration file
   + define the format of the configuration file
   + extend Config module (config.py) accordingly
   - define configuration keys (baris - meren)
 / component/category
   + requirements
   - xml format (baris) (bunlarin class'leri yazilmali)
   - usage (build process'in icine koymak baris - meren)
 / query
   + list of installed packages (eray)
   - comar OM information (Provides) (baris)
 - refactor actionsAPI (caglar)
 - actionsAPI documentation (caglar)
 / versioning information document (bunu ben yazmistim zaten - eray)
 / verify metodlari
   + SpecFile
   + MetaData
   + Files
   - Index (bu onemli degil)
 - implement missing unit tests (bunlari da salliyoruz simdilik)
   + sourcedb
   - package 
   - configuration file
 + fix xml indentation (meren)
 - define file types (doc, executable, conf, etc...) (baris - meren)
 + write specfile (eray)
 + file locking for database access [not tested!] (eray)
 + implement file uri
   + extend the modules dealing with files accordingly
 + ui module improvements
   + methods for interaction (yes, no questions, etc.)
 + implement source database (eray)
 + easy package preparation
   + convert ebuild to pisi
 + COMAR interface
   + what do we need to specify in a package.
   + package install: register config script
   + package remove: unregister config script
 + internet installation
   + support URI's whereever a filename is supported
   + http server
   + pisi updatedb over internet

3. Beta

 - system-wide upgrade (upgrade-all) komutu (eray)
 / multiple package repository
   / decide how to implement
   - make a package and sourcedb for each repo
   - support medium types
     - internet: http/ftp
     - local repository
     - cdrom dvd
 - GUI
   - pyqt UI class to interface
   - PISIMAT
   - installation
   - remove
   - upgrade
 - partial caching and automatic resume for file download
  - use a separate "partial/" subdir like urpmi
 - exception handling (baris)
 - transaction stuff for database (eray)
 - incremental build/fetch for repository index (pisi-index.xml)
   - diffsets (caglar)
 - multi-architecture support
   / design decisions
   / extend XML specs to support that
   - cross-platform building support

4. Release
