Fixing Broken Stuff
Fixing Broken Stuff
-------------------
* Fix bug where category must be localized. (It should do translation for
  non-localized categories in OMF files using category id's.)
* Write tool for validating one or more OMF files, and man page for it.
* Fix bugs in the bug system: 
    https://sourceforge.net/tracker/?group_id=11543&atid=111543
* Change temporary and log files in extract.c to follow @localstatedir@
* If somebody does a scrollkeeper-install of a document which is already installed,
  it installs a second copy.  It should really uninstall it and then do the install.
* If the identifier url is incorrect, the document is added to scrollkeeper_docs 
  even though the document does not exist.
* ScrollKeeper should check that a given DTD is installed before trying to
  apply a stylesheet to it, or it will fail.  When this is done, we can
  consider taking the explicit requirement out of configure.in.
* Index extraction seems to be broken for indexterms which don't have the
  'zone' attribute.  This is actually b/c there is no anchor to target.
  Having the pre-processor will fix this.
* Fix bug where a bad XML doc (eg. one with 2 legalnotice sections) will
  cause an RPM upgrade to spew an error to STDOUT.

Adding/Enriching Features
-------------------------
* Add feature which allows promotion of documents from an obsolete category
  to a specified non-obsolete category.
* Consider making category an optional attribute.
* Add appropriate flags to various commands to allow for easy use by non-root
  users.  This means each command must accept a flag for the database path,
  and possibly for a log file and other files.
* Add --help flags to each script/binary and update man pages
* Try to capture any errors which libxml2 dumps and send them to the log file
  instead of STDOUT
* Write DTDs for the ScrollKeeper XML data files
* Write a script which finds all sectioning (and maybe some others?) tags
  and inserts id's if they are missing. eg: "scrollkeeper-addids <infile>
  <outfile>".  It just runs xsltproc with a stylesheet that adds a generic
  and reproducable idref. Sections are given ids "genericsectionid######",
  indexing tags are id'd "genericindexid#####". We need this as a pre-processor
  b/c DocBook doesn't require id's for most things, but ScrollKeeper/help browsers
  need them in order to link from the table of contents to particular sections or
  for the index to link to the terms they list.
* See if there is a more graceful way to handle docs where the OMF file
  mis-declares their mime type. Right now, it causes a nasty spew to the screen.
* Generally, we still need to improve our error logging and general info
  logging a lot.  For example, it currently sends a log entry when it tries
  to install or uninstall something.  However, it doesn't distinguish between
  successful and failed attempts.
* Put back the SGML index extraction and TOC extraction, doing proper checking
  for failure of sgml2xml.  It should not try to do the extractions if sgml2xml
  returns errors.
* Write man pages for all binaries?
* Write a nice script or program to parse the category list and output it for
  the user.
* Replace DocBook/SGML support using libxml2's DocBook/SGML support stuff and
  better error checking.
* Have scrollkeeper-update be smart that if you pass it an OMF path which doesn't
  exist, it realizes that you probably just removed the directory and that you
  want to unregister any OMF files which were previously in that path.
* Have the log file path follow the variable state directory, so that the log
  file is put under the build root when making RPMs.
* Consider having ScrollKeeper validate documents before trying to process them
  (DV seems to oppose this idea.)

Documentation
-------------
* Update/finish 0.4 specifications.
* Write a document about anything with DocBook/XML or DocBook/SGML that
  ScrollKeeper is picky about.  For example, ScrollKeeper currently requires that
  a section have an id to be included in the TOC (since it needs an anchor to
  link to).
* Write a FAQ. (1) Q: How does one find out if a specific document is installed, and where? A: Use the contents list and look for <seriesid> to match that of the document of interest.

Testing
-------
* Go forth and test, especially in with various documents (SGML and XML) 
  and with various locales.
* Make sure that docs with invalid categories are placed into the most 
  appropriate "Other" section.
* Make sure that documents with missing document id's all get treated as 
  unique documents.
* Test locale fallback for documents

ScrollKeeper 0.5.x/0.6.x Features/Changes
-----------------------------------------
* URI resolution
* DTD improvements
* Conversion of OMF files between DTDs