Sun Jun 14 2009 "Patrick Näf" - [bugfix] mkroesti-test did not properly use the Python interpreter provided with a command line argument - [bugfix] added all crypt variants to the EXCLUDE file of the end-to-end test suite - [bugfix] fixed a typo that prevented mkroesti from detecting the presence of crypt-sha-256 and crypt-sha-512 - [doc] added instructions to ReleaseSteps how to perform end-to-end test suite both on development and on target system - [doc] preliminary research on how to make a Debian package - [doc] specified dependency from python-aprmd5 in README and MANUAL - [doc] final doc changes for release of version 0.3 Sat Jun 06 2009 "Patrick Näf" - [feature] implemented two new algorithms crypt-sha-256 and crypt-sha-512 - [feature] implemented crypt-md5 - [clarification] renamed crypt-system to crypt-des Thu Jun 04 2009 "Patrick Näf" - [internal] removed extension module mkroesti.aprutil from project; instead use third party module aprmd5 - [bugfix] Pydev project now uses Python 3 grammar - [bugfix] errorhandling.py now uses initializer of Exception base class instead of assigning to self.args directly (this resulted in improper conversion of error message string into a tuple consisting of the string's characters) - [bugfix] mkroesti front-end script now converts exception objects into string (relying on the Exception class defining __str__()) instead of accessing the object's internal attributes Wed Jun 03 2009 "Patrick Näf" - [internal] work for version 0.3: added extension module mkroesti.aprutil - module contains prototype implementations that wrap apr_md5() and apr_md5_encode() - added build support to setup.py - added algorithm and provider implementations - added crypt-apr1 to exclude list for end-to-end test - work for version 0.2 - final doc changes for release of version 0.2 - adler32 algorithm now returns the same result for both Python 2.6 and 3.0 - adler32 and crc32 algorithms now return a hexadecimal instead of a decimal result - document that mkroesti-test does not reliably test the interactive input method Sat May 30 2009 "Patrick Näf" - updated notes in Research document - moved check for Python 2.6 / Python 3 to __init__.py of the mkroesti package, so that unit tests also have access to the test - Python 3: base64, base32 and base16 algorithms now correctly return a string object (previously they returned a bytes object) - fixed error in expect script in mkroesti-test that occurred if a generated hash started with a "-" Fri May 29 2009 "Patrick Näf" - fixed unit tests for Python 2.6 - mkroesti-test - fixed error handling - fixed environment variable handling in expect script Mon May 21 2009 "Patrick Näf" - fixed problems in mkroesti-test that were exposed by switching from Python 3 to Python 2.6 - option --codec is now ignored if mkroesti is run under Python 2.6 - renamed attribute used by various exception classes in errorhandling.py from "message" to "args" (according to PEP 352) Fri Mar 27 2009 "Patrick Näf" - added end-to-end test suite - test script in src/scripts/mkroesti-test - test data in src/packages/tests/testdata Thu Mar 26 2009 "Patrick Näf" - cleanup handling of --codec command line argument - documented design decisions about handling of encodings in the DESIGN file - clarified ENCODINGS section in MANUAL - added various warnings to main function - documentation fixes due to misunderstanding of locale-based vs. default encoding - added test cases for --codec to tests.test_main.py Wed Mar 25 2009 "Patrick Näf" - added --codec command line option - the --version command line option now prints out the default encoding for diagnostic purposes - tests/test_main.py: now uses __name__ attribute to reference the module (instead of a hardcoded module name) Tue Mar 24 2009 "Patrick Näf" - changes for compatibility with Python 3 - change all relative import statements to be absolute; this is due to the new relative import syntax "from .foo import bar" (see PEP 328); making all imports absolute is the easiest way to remain compatible with older versions of Python (it also makes PyDev happy, which does not know yet about the new relative import syntax); affected files: pretty much all files: - use "except exc as var" instead of "except exc, var" (see PEP 3110); according to the PEP, this syntax has been backported to Python 2.6; affected files: mkroesti/main.py, tests.test_main.py - change print statement to print() function; to make this work in Python 2.6 also, I use "from __future__ import print_function"; affected files: scripts/mkroesti, mkroesti/main.py, tests/test_main.py - change handling of dict.keys() where necessary; this is due to the function now returning a "view" instead of a list object; where a change is necessary, a list object is now created explicitly (e.g. using "list(dict.keys())" or "sorted(dict.keys())"); where sorting of normally unsortable objects takes place (e.g. provider intances), the object's id() is used as the sort key; these changes are compatible with older versions of Python; affected files: mkroesti/provider.py, mkroesti/registry.py, tests/test_factory.py, tests/test_provider.py, tests/test_registry.py - replace built-in function callable(), which has been removed from Python 3, by the suggested form "hasattr(f, '__call__')"; this change is compatible with older versions of Python; affected files: mkroesti/main.py - fix input handling to match the new "text vs. data" paradigm of Python 3; use the new type "bytes" where appropriate, and explicitly open files in binary mode; affected files: mkroesti/main.py, tests/test_main.py - renamed "input" variable in main.py because the built-in input() function was accidentally shadowed - fixed comments about provider instantiation and registration in DESIGN Mon Mar 23 2009 "Patrick Näf" - version 0.1 Sun Mar 22 2009 "Patrick Näf" - added --providers and --exclude-builtins command line options - AbstractProvider no longer registers itself automatically; the automatic part is now done in main.py when mkroesti is run from the command line; for other hacking purposes (e.g. unit tests) there are now convenience functions in mkroesti.__init__.py - AbstractProvider now provides a useful implementation for getAliasNames() - added document TESTING Sat Mar 21 2009 "Patrick Näf" - organizational changes - switched project source control from Subversion to git - removed Subversion keyword substitution line - updated copyright notice to 2009 - setup.py no longer installs the "tests" package; the package is still added to the source distribution, though (via MANIFEST.in), so that tests can be run on a target machine - documentation overhaul - updated ReleaseSteps document - added the documents Roadmap, Research and INSTALL - rewrote parts of README, also added section titled "How to extend mkroesti" - improved algorithm/alias descriptions in MANUAL - implementation changes - base16, base32 and base64 algorithms are now grouped under the alias "encoding" (previously under "chksum") - fixed name collision between "ripemd" algorithm and "ripemd" alias (algorithm is now named "ripemd-original") Mon Dec 08 2008 "Patrick Näf" - marked up the MANUAL file using reStructured text - wrote section "How to generate documentation" in README Mon Dec 01 2008 "Patrick Näf" - rewrote README and TODO documents - added DESIGN document Sun Nov 30 2008 "Patrick Näf" - added COPYING (full text of GPLv3) - added copyright notice at the top of each source file