wsme/doc/changes.rst
Christophe de Vienne cffcee226c Pecan adapter: Debug mode (which returns the exception tracebacks to the
client) can be enabled by the pecan application configuration.
2013-04-16 15:42:23 +02:00

296 lines
8.1 KiB
ReStructuredText

Changes
=======
next
----
* Changed the way datas of complex types are stored. In previous versions, an
attribute was added to the type for each attribute, its name being the
attribute name prefixed with '_'.
Starting with this version, a single attribute _wsme_dataholder is added to
the instance.
The motivation behind this change is to avoid adding too many attributes to
the object.
* Add a special type 'HostRequest' that allow a function to ask for the host
framework request object in its arguments.
* Pecan adapter: Debug mode (which returns the exception tracebacks to the
client) can be enabled by the pecan application configuration.
* New adapter: wsmeext.flask, for the Flask_ framework.
.. _Flask: http://flask.pocoo.org/
* Fix: the cornice adapter was not usable.
* Fix: Submodules of wsmeext were missing in the packages.
* Fix: The demo app was still depending on the WSME-Soap package (which has
been merged into WSME in 0.5b1).
* Fix: A function with only on 'body' parameter would fail when being called.
* Fix: Missing arguments were poorly reported by the frameworks adapters.
0.5b1 (2013-01-30)
------------------
* Introduce a new kind of adapters that rely on the framework routing.
Adapters are provided for Pecan, TurboGears and cornice.
* Reorganised the rest protocol implementation to ease the implementation of
adapters that rely only on the host framework routing system.
* The default rest ``@expose`` decorator does not wrap the decorated function
anymore. If needed to expose a same function several times, a parameter
``multiple_expose=True`` has been introduced.
* Remove the wsme.release module
* Fix == operator on ArrayType
* Adapted the wsme.sphinxext module to work with the function exposed by the
``wsme.pecan`` adapter.
* Allow promotion of ``int`` to ``float`` on float attributes (Doug Hellman)
* Add a ``samples_slot`` option to the ``.. autotype`` directive to
choose where the data samples whould be inserted (Doug Hellman).
* Add ``sample()`` to ArrayType and DictType (Doug Hellman).
* New syntax for object arrays as GET parameters, without brackets. Ex:
``?o.f1=a&o.f1=b&o.f2=c&o.f2=d`` is an array of two objects:
[{'f1': 'a', 'f2': 'c']}, {'f1': 'b', 'f2': 'd']}.
* @signature (and its @wsexpose frontends) has a new parameter:
``ignore_extra_args``.
* Fix boolean as input type support in the soap implementation (Craig
McDaniel).
* Fix empty/nil strings distinction in soap (Craig McDaniel).
* Improved unittests code coverage.
* Ported the soap implementation to python 3.
* Moved non-core features (adapters, sphinx extension) to the ``wsmeext`` module.
* Change the GET parameter name for passing the request body as a parameter
is now from 'body' to '__body__'
* The soap, extdirect and sqlalchemy packages have been merged into the main
package.
* Changed the documentation theme to "Cloud".
0.4 (2012-10-15)
----------------
* Automatically converts unicode strings to/from ascii bytes.
* Use d2to1 to simplify setup.py.
* Implements the SPORE specification.
* Fixed a few things in the documentation
0.4b1 (2012-09-14)
------------------
* Now supports Python 3.2
* String types handling is clearer.
* New :class:`wsme.types.File` type.
* Supports cross-referenced types.
* Various bugfixes.
* Tests code coverage is now over 95%.
* RESTful protocol can now use the http method.
* UserTypes can now be given a name that will be used in the
documentation.
* Complex types can inherit :class:`wsme.types.Base`. They will
have a default constructor and be registered automatically.
* Removed the wsme.wsgi.adapt function if favor of
:meth:`wsme.WSRoot.wsgiapp`
Extensions
~~~~~~~~~~
wsme-soap
* Function names now starts with a lowercase letter.
* Fixed issues with arrays (issue #3).
* Fixed empty array handling.
wsme-sqlalchemy
This new extension makes it easy to create webservices on top
of a SQLAlchemy set of mapped classes.
wsme-extdirect
* Implements server-side DataStore
(:class:`wsmeext.extdirect.datastore.DataStoreController`).
* Add Store and Model javascript definition auto-generation
* Add Store server-side based on SQLAlchemy mapped classes
(:class:`wsmeext.extdirect.sadatastore.SADataStoreController`).
0.3 (2012-04-20)
----------------
* Initial Sphinx integration.
0.3b2 (2012-03-29)
------------------
* Fixed issues with the TG1 adapter.
* Now handle dict and UserType types as GET/POST params.
* Better handling of application/x-www-form-urlencoded encoded POSTs
in rest protocols.
* :class:`wsattr` now takes a 'default' parameter that will be returned
instead of 'Unset' if no value has been set.
0.3b1 (2012-01-19)
------------------
* Per-call database transaction handling.
* :class:`Unset` is now imported in the wsme module
* Attributes of complex types can now have a different name in
the public api and in the implementation.
* Complex arguments can now be sent as GET/POST params in the rest
protocols.
* The restjson protocol do not nest the results in an object anymore.
* Improved the documentation
* Fix array attributes validation.
* Fix date|time parsing errors.
* Fix Unset values validation.
* Fix registering of complex types inheriting form already
registered complex types.
* Fix user types, str and None values encoding/decoding.
0.2.0 (2011-10-29)
------------------
* Added batch-calls abilities.
* Introduce a :class:`UnsetType` and a :data:`Unset` constant
so that non-mandatory attributes can remain unset (which is
different from null).
* Fix: If a complex type was only used as an input type, it was
not registered.
* Add support for user types.
* Add an Enum type (which is a user type).
* The 'binary' type is now a user type.
* Complex types:
- Fix inspection of complex types with inheritance.
- Fix inspection of self-referencing complex types.
- wsattr is now a python Descriptor, which makes it possible
to retrieve the attribute definition on a class while
manipulating values on the instance.
- Add strong type validation on assignment (made possible by
the use of Descriptors).
* ExtDirect:
- Implements batch calls
- Fix None values conversion
- Fix transaction result : 'action' and 'method' were missing.
0.1.1 (2011-10-20)
------------------
* Changed the internal API by introducing a CallContext object.
It makes it easier to implement some protocols that have
a transaction or call id that has to be returned. It will also
make it possible to implement batch-calls in a later version.
* More test coverage.
* Fix a problem with array attribute types not being registered.
* Fix the mandatory / default detection on function arguments.
* Fix issues with the SOAP protocol implementation which should now
work properly with a suds client.
* Fix issues with the ExtDirect protocol implementation.
0.1.0 (2011-10-14)
------------------
* Protocol insertion order now influence the protocol selection
* Move the soap protocol implementation in a separate lib,
WSME-Soap
* Introduce a new protocol ExtDirect in the WSME-ExtDirect lib.
0.1.0a4 (2011-10-12)
--------------------
* Change the way framework adapters works. Now the adapter modules
have a simple adapt function that adapt a :class:`wsme.WSRoot`
instance. This way a same root can be integrated in several
framework.
* Protocol lookup now use entry points in the group ``[wsme.protocols]``.
0.1.0a3 (2011-10-11)
--------------------
* Add specialised WSRoot classes for easy integration as a
WSGI Application (:class:`wsme.wsgi.WSRoot`) or a
TurboGears 1.x controller (:class:`wsme.tg1.WSRoot`).
* Improve the documentation.
* More unit tests and code-coverage.
0.1.0a2 (2011-10-07)
--------------------
* Added support for arrays in all the protocols
0.1.0a1 (2011-10-04)
--------------------
Initial public release.