Release History¶
v0.6.0¶
Released on Sat Apr 28 20:18:04 UTC 2012.
Features:
- zerojson.Server is more extensible now.
- Services are no longer stateful by default.
- Added stateful argument to pycom.interface().
- pycom.ProxyContext can be used to wrap a real pycom.Context
- Optional authentication is working via pycom.Context.authenticate().
- context() method is added to zerojson.Request on fly
- Added also pycom.Context.user_info()
- pycom.method() and pycom.interfaces.Method got attachments argument (with introspection).
- Experimental binary attachments support.
- pycom.ProxyComponent now generates methods with proper names and docstrings.
- Added authentication argument to pycom.interface() and support for configuring authentication policy.
v0.5.1¶
Released on Thu Apr 12 09:27:54 UTC 2012.
In this version we dismiss the draft of the future protocol that existed for some time. Binary attachments will be in-memory only and there will be a service with remote FS semantics.
Features:
- Dropped PREPARE and RUN subcommands; never were part of public API.
- pycom.Service.introspect() now returns content of introspection_data attribute.
Bug fixes:
- zerojson.Future objects now work properly when result is returned before ioloop is set and prevent result from being set twice.
- Argument message of zerojson.Future.error() is no longer mandatory.
- pycom.Context (and similar) objects should be thread-safe now.
- Dropped our async server implementation of pycom.Server in favor of ZMQStream.
- From now on we use copying operations when possible to reduce memory usage.
Old releases¶
v0.5.0¶
Released on Thu Mar 29 14:12:59 UTC 2012.
In this release we separated ZeroJSON-related code into zerojson package. Exceptions, utilities and some constants moved there too. Other changes include:
- Refactored internals to decouple ZeroJSON from PyCOM
- pycom.RemoteComponent is no longer part of public API - use pycom.Context.connect() or pycom.ProxyContext.connect()
- Dropped deprecated pycom.nameserver() and pycom.locate()
- Replaced pycom.Error by pycom.RemoteError (which is in fact zerojson.RemoteError)
- Client receives pycom.SessionExpired when session has expired
- Added zerojson.Request.error()
- Added zerojson.Future
- Simplified pycom.method() usage
- Added hooks for pycom.Context
v0.4.2¶
Released on Sun Mar 11 17:23:39 UTC 2012.
- Added pycom.ext.checks.check_argument()
- Fixed protocol and implementation of NameServer to reflect current demands:
- Use pycom.ext.checks.check_argument() to validate input
- Clarify service rewriting (fixes Issue 4)
- Drop outdated services (fixes Issue 1)
- When several results are available for locate, random one is chosen
- list_services now accepts regular expressions (and service argument)
- Rewritten test suite
- Better error messages on validation failures
- Refactored internals of pycom.zerojson
- Renamed pycom.Service.__introspect__() => pycom.Service.introspect()
- pycom.Context now takes nameserver argument for constructor
- Introduced pycom.ProxyContext and pycom.ProxyComponent
- Deprecated pycom.nameserver() and pycom.locate()
- Added pycom.Context.connect()
- PyCOM is officially compatible with Python 3.1 now, thus all supported Python releases are covered
v0.4.1¶
Released on Fri Mar 2 16:49:46 UTC 2012.
- pycom.Request no longer has __slots__
- Prehooks now take pycom.Request as a parameter
- Introduced pycom.Response object
- Posthooks now take pycom.Response as a parameter
- Introduced pycom.Context object
- Added pycom.interfaces.Method.post_configure()
- Added method_factory argument to pycom.method()
- Added method’s introspection support to pycom.method(); added results argument
- Added pycom.Service base class with __introspect__ remote method
- Added pycom.BaseComponent.introspect()
v0.4.0¶
Released on Mon Feb 20 18:03:39 UTC 2012.
- Method pycom.Request.response()
- Respect PYCOM_LOGGING_LEVEL environment variable
- pycom.method() decorator got body argument
- More error checks in server implementation; test coverage is 100% now
- Refactored internals, introduced pycom.zerojson package
- Drafts for future protocol and PREPARE command
- Command-line option --nameserver/-n
- Demonstration service pycom.apps.demo with interface org.pycom.demo
- Service name can be automatically generated now
v0.3.2¶
Released on Tue Feb 7 18:07:57 UTC 2012.
- Command-line options support in pycom.main()
- pycom.nameserver() is thread-safe now
- Separated protocol-related server code into pycom.server module
v0.3.1¶
Released on Sun Feb 5 15:48:18 UTC 2012.
- pycom.RemoteComponent added to public API
- Refactored internals, simplified some private functions
- Bug fixes
v0.3.0¶
Released on Thu Feb 2 15:56:29 UTC 2012.
- Renamed concept invoker to component (as in C++ API).
- Nameserver’s locate method now takes service argument
- pycom.locate() now takes service_name argument
- Introduced pycom.BaseComponent
- Sphinx docs are now built and installed on setup.py install
- Refactored internals
- Support for sessions - permanent storage across requests
- Major documentation update
v0.2.0¶
Released on Fri Jan 27 21:35:43 UTC 2012.
- Nameserver’s locate method now takes as_list argument
- Properly handle bugs in main routine
- Better logging
- Major documentation update
v0.1.0¶
Released on Tue Jan 17 21:30:41 UTC 2012.
- Initial release.
- Basic support for invoking remote methods.
- Simple nameserver implementation.