Zounds: Stuff to be done

Version: 1.4
Author: mezis
Date: 2002-11-23

Note: More TODOs and IDEAs are in the code, grep them!

  • add support for multiple platforms/architectures, and separate metadata files from the package hierarchy

  • think about 'signed' packages (with packager's pgp key ?)

  • replace list structures by dictionary structures where possible:

    • constraint: key uniqueness
    • advantage: O(1) lookup time, instead of O(N)

    how:

    • find where are list searches performed, in particular searches in Kernel.Packages.all(), which is pretty long.
    • look for code like if foo in bar, where 'bar' is a list
  • many modules don't have a header documentation. fill them in!! (started, not done)

  • some functions (esp. utility functions) don't have a defensive check-list. add some.

  • defensive checklists should be replaced with asstertions ('assert' statmt), because those can later be stripped off when optimizing (with python -O)

  • PR: when package A is installed and becomes available from a repository, the _old_ package object is the one that stays used... override Unique.unique in subclass Package??? (tried but commented out: update.py tend to think that all packages are new, and then rescans them...)

  • write a ./configure script (in bash), checking for the tools used in Zounds: pkg_add, pkg_delete, pkg_info, digest, bash, python22, Optik (more tools?)

  • write a configuration.py.in stub script, with @FOOBAR@ pseudo-variables, used by ./configure

  • write an installation Makefile

  • write a pkgsrc Zounds package, using other Python modules as templates, and python/application.mk (for instance).

  • complete pkg_find so that it can display details about found packages.

  • break README into README, README.maintainer and README.developer

  • [MH] change command name from pkg_ to zounds_ or better

  • [MH] get rid of pkg_* tools dependency.

  • [MH] Add a lock mechanism to cache access. Cache location can be configured to be able to work as normal user and then just do a commit or perform as root. But where can we do that configuration? environment variables ? zounds/etc/cache.conf ?

  • [MH] Add a "cleaning" command of auto_installed and/or useless packages, because some of these packages can still be installed in case of "crossed" usage of pkg_* and zounds utilities

  • [MH] delete the "keep symbolic links dates" option from bsd/tar command, to get rid of a bunch of warnings during installation.

  • [MH] Can we merge "forget" and "remove" commands at the UI level?