

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
 + multi-package dependency analysis (eray)
   + design a package operation planner
   + install/remove operations (eray)
 + command line interface:
   + pisi remove
   + svn-like CLI
 + configuration file
   + define the format of the configuration file
   + extend Config module (config.py) accordingly
   + define configuration keys (baris - meren)
 + query
   + list of installed packages (eray)
 + refactor actionsAPI (caglar)
 + 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

 - i18n support
 - automatic generation of usage_text from commands
 / upgrade (eray)
   + upgrade operation
   / test upgrade op
   - system-wide upgrade (upgrade-all) komutu
 / multiple package repository (eray)
   + decide how to implement
   / make a package and sourcedb for each repo
   - support medium types :( uhuuuu
     - internet: http/ftp
     - local repository
     - cdrom dvd 
 - UI
   - ask alternatives to choose from (eray)
   - pyqt UI class to interface
   - PISIMAT
   - installation
   - remove
   - upgrade
 - partial caching and automatic resume for file download (meren)
  - use a separate "partial/" subdir like urpmi
 - exception handling (baris)
 - incremental build/fetch for repository index (pisi-index.xml)
   - diffsets (caglar)
 / component/category
   + requirements
   - xml format (baris) (bunlarin class'leri yazilmali)
   - usage (build process'in icine koymak baris - meren)
 + query
   - comar OM information (Provides)
   - package by name, summary/description
 - actionsAPI documentation, unittests (caglar - meren)
 / versioning information document
 / verify metodlari
   + SpecFile
   + MetaData
   + Files
   - Index (o kadar onemli degil)
 - implement missing unit tests
   + sourcedb
   + package (baris)
   + configuration file (baris)
 - non-interactive use (baris)
 - 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)
 + database locking bugs (eray)
 + provide a library interface for users outside (YALI, TASMA). "import pisi" (baris)

4. Release (bug fix, guzellestirme vs.)

5. Post Release

 - transaction stuff for database (eray)
 - multi-architecture support (baris, caglar)
   / design decisions
   / extend XML specs to support that
   - cross-platform building support
