Purpose of this document
------------------------
This document contains a list of minor features and technical stuff that should
be implemented when time permits it. The TODO list is updated frequently as new
ideas crop up during programming.

For a broader view of how the project will develop over time, you should see
the Roadmap document.


Priority 1 (important)
----------------------
None


Priority 2 (nice to have)
-------------------------
- [#70] Instead of directly exposing apr_md5_init(), apr_md5_update() and
  apr_md5_final(), python-aprmd5 should behave similar to the Python Standard
  Library's hashlib module:
    1) Generate an md5 object (corresponds to calling apr_md5_init())
    2) Calling update() on the object (corresponds to calling apr_md5_update())
    3) Calling digest() on the object (corresponds to calling apr_md5_final())
    4) As a convenience, provide a hexdigest() method
- [#71] setup.py should auto-detect the platform that it is running on, i.e. it
  should not be necessary to manually edit setup.py to make platform-specific
  changes (autoconf?)
- The result of invoking apr_md5_final() a second time, without having invoked
  apr_md5_init() before, is not defined. The current implementation silently
  produces an undefined result, but it should be changed to spit out an error,
  instead. The documentation of the function in libaprutil says this:
  "Ends an MD5 message-digest operation, writing the message digest and zeroing
  the context". So maybe in implementing this TODO, the context could be checked
  for zeroes? Notes
  - If this TODO is implemented, a test in test_md5_operation.py needs to be
    updated.
  - This TODO is probably moot as soon as the change to work with an md5 object
    is implemented.


Priority 3 (not important)
-------------------------
- Register with PyPI
- Configure Pydev project so that the extension build and the subsequent unit
  tests can be run from within Eclipse
- Configure Pydev project so that the built extension (src/packages/aprmd5.so)
  is added to the project's PYTHONPATH and the unit test modules no longer
  appear with unresolved imports within Eclipse
