Changelog

Version 2.3.3 (September 14, 2011):
-change cloud.rest interface to publish and remove
-cloud.rest provides function signature to PiCloud
	-This allows the PiCloud server to check arguments before creating a job 
-cloud.call checks function signature against arguments client-side
-Added back priority
-Fix cloud.account (realtime provisioning)

Version 2.3.2 (August 24, 2011):
-Fixed up mod version checks crashing
-Add support for s1 compute resource type
-Improve unicode support across the board
-Documentation updates

Version 2.3.1 (August 13, 2011):
-Added support for PiCloud REST API (See docs)
-Temporarily remove concurrent rotating log handler
-Make _depends_on work correctly with new API

Version 2.3.0 (July 28, 2011):
-_high_cpu has been replaced by the concept of compute resource types.  _type=c2 is equivilent to the now deprecated _high_cpu.
   Futhermore, it is now possible to run jobs that utilize up to 8 GB of RAM on PiCloud with _type=m1!
-Significant changes to PiCloud protocol.  Reports errors more sanely, retries more rationally, and obeys REST standards
-Removed api key management from cloud.account 
-cloud.mp/Simulator more stable, especially during shut down
-Various minor bug fixes

Version 2.2.4 (June 24, 2011):
-Add cloud.close() to forcibly close cloud (useful for shutting down threads cloud spawns)
-Windows only: Make cloud work even if pywin32 not installed. pywin32 downgraded to 'recommended package'
-Windows: Fix bug with logging exceptions being raised on cleanup
-Ready PiCloud client for future PiCloud features
-obey PEP 8 in internal code (use underscore_case rather than camelCase for functions)
-Clean up some documenation
-Internal speed ups to xrange handlers
-cloud.files bug fixes
-support stdout/stderr from running jobs

Version 2.2.2 (April 13, 2011):
-fix up set up script
-Minor bugfixes

Version 2.2.1 (February 10, 2011):
-Hack fix to serialize scikits.timeseries correctly
-Internal network changes

Version 2.2 (Feburary 4, 2011):
-Added beta support for python 2.7
--Almost everything works, except that custom C extensions cannot yet be compiled for python2.7
-Improved networking protocol
--Correct connection bugs when in SSL mode
-Changed join policy to error as soon as any error is detected. 
--Results in errors being noticed faster

Version 2.1.5 (December 10, 2010):
-Fixed ignore_errors being incorrectly camelCased as ignoreErrors

Version 2.1.4 (December 9, 2010):
-PiCloud shows traceback when viewing a killed job. 
-Added support for ignore_errors to join, result, and iresult
-fix bug where iresult could deadlock

Version 2.1.3 (November 20, 2010): 
-Changed cloud.account to use api_key rather than user/password combination
-Added ability to manage realtime units with cloud.account
-Correct types for cloud.account return values
-Fixed support for python < 2.5.2
-Improved setup process for windows users.

Version 2.1.2 (September 24, 2010):
-Fix bug with HTTP handling that could cause duplicate requests to be sent.
-Additional debugging information
-Do not cache runtime cloud.info requests

Version 2.1.1 (September 8, 2010):
-Added _kill_process flag for cloud.call/map. Setting this to true prevents the process that runs the invoked 
function from being run again.

Version 2.1.0 (August 18, 2010):
-Persistent HTTP(S) connection - significant network traffic improvement
-Can view exception information as text with cloud.info
-cloud.connection_info() will show HTTPS if connected securely
-better debug statements for network traffic

Version 2.0.0 (August 6, 2010):
-Added cloud.cron to leverage cron support
-cloud.kill() can now be used with no arguments to kill every running and queued job.
-Add support for passing function kwargs into cloud.call (e.g. cloud.call(foo, a=3) to run foo(a=3)
-Additional bug fixes

Version 1.9.8 (July 20, 2010):
-Fixed up issue with large numbers of map jobs occasionally timing out.

Version 1.9.7 (July 17, 2010):
-Client support for python2.7. (NOTE: server does not fully support py2.7. It will by Aug 1, 2010)
-Support pickling of stdout/stdin  

Version 1.9.6:
-Fixed up some memory leaks and bugs with installer
-cloud will work even if ~/.picloud directory cannot be created

Version 1.9.5:
-Added cloud.files -- An API to store data on the cloud
-Significant improvements in overall network protocol. Is now much more reliable
-Fixed various bugs in simulator

Version 1.9:
-Significant modifications to data serialization handling reduce memory usage and serialization time
-Modifications to map protocol to allow jobs to start being processed before cloud.map() returns
-_fast_serialization option to speed up argument and result serialization

Version 1.8.3:
-Pickle numpy ufunc
-Simulation and cloud.mp (but not yet the cloud server) detects if sys.exit() is called in a running job.
	Remember: You should NEVER call sys.exit() within a running job
-_restartable option is true by default

Version 1.8.2:
-_profile option is false by default
-Bug fixes in dependency analyzer

Version 1.8.1:
-Moved cloud.conf on windows to %APPDATA%
-Added cloud.getconfigpath() to see where configuration file is stored
-Added _profile option to disable profiling
-Transmit module version information with cloud.call/cloud.map
-Various bug fixes

Version 1.8:
-Deal with UNICODE labels, functions, and directories more sanely (see documentation)
-Don't fail to deserialize pickles if requested modules cannot load
-Added cloud.__version__
-More bugs fixed

Version 1.7:
-Reduce number of empty datalog directories created
-Added _high_cpu keyword argument
-various bug fixes

Version 1.6:
-Added cloud.accounts to provision API keys via python
-Added cloud.pool which emulator multiprocessing.pool interface
-Cloud client now open-sourced under LGPL license
-Various bugs fixed with serialization logging
-functools.partial can now be serialized

version 1.5:
-cloud/cloud.mp interoperability works correctly now.
-Fixed bug where serialization logs were not saved
-Greatly sped up dependency analysis
-Corrected bugs with dependency analysis
-Added ability to pickle read-only files and PIL Images
-Added ability to transport and analyze Python Egg/Zips
-Improved caching system, resulting in lower memory usage.
-cloud.map() now returns an xrange describing jids rather than a list
-cloud.status/result/etc accept an xrange of jids and make use of 'piece-wise' xrange objects for more efficient memory and network usage
-Added cloud.iresult() to iterate through results: See documentation.
-drastically sped up cloud.join/cloud.result in simulation and cloud.mp
 
Version 1.0:
-Initial release
