vladcalin/gemstone

View on GitHub
docs/changes.rst

Summary

Maintainability
Test Coverage
Changes
=======

0.12.0 (22.04.2017)
~~~~~~~~~~~~~~~~~~~

- restructured modules
- bug fixes
- improved documentation
- improved tests

0.11.0 (08.04.2017)
~~~~~~~~~~~~~~~~~~~

- added ``Container.get_io_loop`` method
- added ``Container.get_executor`` method
- added ``RedisEventTransport``
- ``emit_event`` now emits just events. Removed the ``broadcast`` parameter.
  A task handling functionality will be added in a further version
- improved docs (still a work in progress)
- added some more tests (still a work in progress)


0.10.1 (27.03.2017)
~~~~~~~~~~~~~~~~~~~

- removed some forgotten debug messages


0.10.0 (23.03.2017)
~~~~~~~~~~~~~~~~~~~

- added ``broadcast`` parameter to ``MicroService.emit_event``
- added the ``broadcast`` parameter to ``BaseEventTransport.emit_event``
- added the ``broadcast`` parameter to ``RabbitMqEventTransport.emit_event``
- improved tests and documentation
- removed ``mappings`` and ``type`` parameters from ``Configurable``
- added ``gemstone.Module`` for better modularization of the microservice
- added ``gemstone.MicroService.authenticate_request`` method for a more flexible
  authentication mechanism
- deprecated ``gemstone.MicroService.api_token_is_valid`` method

0.9.0 (06.03.2017
~~~~~~~~~~~~~~~~~

- added the ``gemstone.exposed_method`` decorator for general usage that allows
    - to customize the name of the method
    - to specify if the method is a coroutine
    - to specify that the method requires a handler reference
    - to specify that the method is public or private
- deprecated
    - ``gemstone.public_method`` decorator
    - ``gemstone.private_api_method`` decorator
    - ``gemstone.async_method`` decorator
    - ``gemstone.requires_handler_reference`` decorator
- removed ``gemstone.MicroService.get_cli`` method in favor of the ``CommandLineConfigurator``
- improved documentation a little bit

0.8.0 (05.03.2017)
~~~~~~~~~~~~~~~~~~

- added the ``gemstone.requires_handler_reference`` decorator to enable
  the methods to get a reference to the Tornado request handler when called.
- added the ``gemstone.async_method`` decorator to make a method a coroutine
  and be able to execute things asynchronously on the main thread.
  For example, a method decorated with ``async_method`` will be able to
  ``yield self._executor.submit(make_some_network_call)`` without blocking the main
  thread.
- added two new examples:
    - ``example_coroutine_method`` - shows a basic usage if the ``async_method`` decorator
    - ``example_handler_ref`` - shows a basic usage if the ``requires_handler_reference`` decorator


0.7.0 (27.02.2017)
~~~~~~~~~~~~~~~~~~

- added ``gemstone.GemstoneCustomHandler`` class
- modified the way one can add custom Tornado handler to the microservice.
  Now these handlers must inherit ``gemstone.GemstoneCustomHandler``
- restructured docs, now it is based more on docstrings
- improved tests and code quality

0.6.0 (14.02.2017)
~~~~~~~~~~~~~~~~~~

- added configurable framework:
    - ``gemstone.config.configurable.Configurable`` class
    - ``gemstone.config.configurator.*`` classes
    - ``gemstone.MicroService.configurables`` and ``gemstone.MicroService.configurators`` attributes
    - switched testing to pytest
    - improved documentation (restructured and minor additions). Still a work in progress



0.5.0 (09.02.2017)
~~~~~~~~~~~~~~~~~~

- added support for publisher-subscriber communication method:
    - base class for event transports: ``gemstone.event.transport.BaseEventTransport``
    - first concrete implementation: ``gemstone.event.transport.RabbitMqEventTransport``
    - ``gemstone.MicroService.emit_event`` for publishing an event
    - ``gemstone.event_handler`` decorator for designating event handlers
- restructured documentation (added tutorial, examples and howto sections).
- added asynchronous method calls in ``gemstone.RemoteService``.
- added ``gemstone.as_completed``, ``gemstone.first_completed``, ``gemstone.make_callbacks``
  utility functions for dealing with asynchronous method calls.


0.4.0 (25.01.2017)
~~~~~~~~~~~~~~~~~~

- modified ``accessible_at`` attribute of the ``gemstone.MicroService`` class
- added the ``endpoint`` attribute to the ``gemstone.MicroService`` class
- improved how the microservice communicates with the service registry

0.3.1 (25.01.2017)
~~~~~~~~~~~~~~~~~~

- fixed event loop freezing on Windows
- fixed a case when a ``TypeError`` was silenced when handling the bad parameters error
  in JSON RPC 2.0 handler (#21)
- major refactoring (handling of JSON RPC objects as Python objects instead of dicts and lists)
  to improve readability and maintainability
- improved documentation

0.3.0 (23.01.2017)
~~~~~~~~~~~~~~~~~~
- added validation strategies (method for extraction of api token from the request)
- base subclass for implementing validation strategies
- built in validation strategies: ``HeaderValidationStrategy``, ``BasicCookieStrategy``
- improved documentation


0.2.0 (17.01.2017)
~~~~~~~~~~~~~~~~~~

- added ``gemstone.RemoteService.get_service_by_name`` method
- added ``call`` command to cli
- added ``call_raw`` command to cli
- improved documentation a little

0.1.3 (16.01.2017)
~~~~~~~~~~~~~~~~~~

- fixed manifest to include required missing files

0.1.2 (16.01.2017)
~~~~~~~~~~~~~~~~~~

- added py36 to travis-ci
- refactored setup.py and reworked description files and documentation for better rendering

0.1.1 (13.01.2017)
~~~~~~~~~~~~~~~~~~

- changed the name of the library from ``pymicroservice`` to ``gemstone``
- added the ``gemstone.MicroService.accessible_at`` attribute

0.1.0 (09.01.2017)
~~~~~~~~~~~~~~~~~~

- added the ``pymicroservice.PyMicroService.get_cli`` method
- improved documentation a little bit

0.0.4
~~~~~

- fixed bug when sending a notification that would result in an error 
  was causing the microservice to respond abnormally (see #10)
- fixed a bug that was causing the service to never respond with the
  invalid parameters status when calling a method with invalid parameters

0.0.3
~~~~~

- added ``pymicroservice.RemoteService`` class
- added the ``pymicroservice.PyMicroService.get_service(name)``
- improved documentation