7092903ba1
Modern docs! This fixes a couple of issues introduced in the previous patches and generally cleans up a lot of mess. Change-Id: Ib964c16251bce12fe498b13455ed3515ef205916 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
459 lines
12 KiB
ReStructuredText
459 lines
12 KiB
ReStructuredText
Changes
|
|
=======
|
|
|
|
1.0.0 (future)
|
|
--------------
|
|
|
|
* Remove support for turbogears
|
|
* Remove support for cornice
|
|
* Remove support for ExtDirect
|
|
* Remove support for SOAP
|
|
* Remove support for the SPORE protocol
|
|
* Remove SQLAlchemy support. It has never actually worked to begin with.
|
|
|
|
0.9.2 (2017-02-14)
|
|
------------------
|
|
|
|
TODO.
|
|
|
|
0.9.1 (2017-01-04)
|
|
------------------
|
|
|
|
Fix packaging issues.
|
|
|
|
0.9.0 (2017-01-04)
|
|
------------------
|
|
|
|
TODO.
|
|
|
|
0.8.0 (2015-08-25)
|
|
------------------
|
|
|
|
Changes that may break your app:
|
|
|
|
* Returns 400 if unexpected attributes are added to complex types (#1277571).
|
|
|
|
Other changes:
|
|
|
|
* Returns 415 when Content-Type is invalid (#1419110)
|
|
* Returns 400 if a complex input type is not a json object (#1423634)
|
|
* Fix error reports with ArrayType and DictType invalid inputs (#1428185, #1428628)
|
|
* Update README
|
|
|
|
0.7.0 (2015-05-13)
|
|
------------------
|
|
|
|
* Ensure UserType objects are converted to basetype
|
|
* Convert built-in types when passed as strings
|
|
* Multiple protocol accept or content-type matching
|
|
* Raise an InvalidInput if you get a ValueError from JSON data
|
|
* Remove unsupported python versions from setup.cfg
|
|
* Clean up setup.py and add requirements.txt
|
|
* Add full MIT license
|
|
* Fix i18n when formatting exception
|
|
* Cleanup up logging
|
|
* Make it possible to use the Response to return a non-default return type
|
|
* several fixes for SOAP protocol
|
|
|
|
0.6.4 (2014-11-20)
|
|
------------------
|
|
|
|
- Include tests in the source distribution
|
|
|
|
0.6.3 (2014-11-19)
|
|
------------------
|
|
|
|
- Disable universal wheels
|
|
|
|
0.6.2 (2014-11-18)
|
|
------------------
|
|
|
|
* Flask adapter complex types now supports flask.ext.restful
|
|
* Allow disabling complex types auto-register
|
|
* Documentation edits
|
|
* Various documentation build fixes
|
|
* Fix passing Dict and Array based UserType as params
|
|
|
|
0.6.1 (2014-05-02)
|
|
------------------
|
|
|
|
* Fix error: variable 'kw' referenced before assignment
|
|
* Fix default handling for zero values
|
|
* Fixing spelling mistakes
|
|
* A proper check of UuidType
|
|
* pecan: cleanup, use global vars and staticmethod
|
|
* args_from_args() to work with an instance of UserType
|
|
|
|
0.6 (2014-02-06)
|
|
----------------
|
|
|
|
* Add 'readonly' parameter to wsattr
|
|
* Fix typos in documents and comments
|
|
* Support dynamic types
|
|
* Support building wheels (PEP-427)
|
|
* Fix a typo in the types documentation
|
|
* Add IntegerType and some classes for validation
|
|
* Use assertRaises() for negative tests
|
|
* Remove the duplicated error message from Enum
|
|
* Drop description from 403 flask test case
|
|
* Fix SyntaxWarning under Python 3
|
|
|
|
0.5b6 (2013-10-16)
|
|
------------------
|
|
|
|
* Add improved support for HTTP response codes in cornice apps.
|
|
|
|
* Handle mandatory attributes
|
|
|
|
* Fix error code returned when None is used in an Enum
|
|
|
|
* Handle list and dict for body type in REST protocol
|
|
|
|
* Fix Sphinx for Python 3
|
|
|
|
* Add custom error code to ClientSideError
|
|
|
|
* Return a ClientSideError if unable to convert data
|
|
|
|
* Validate body when using Pecan
|
|
|
|
|
|
0.5b5 (2013-09-16)
|
|
------------------
|
|
|
|
More packaging fixes.
|
|
|
|
0.5b4 (2013-09-11)
|
|
------------------
|
|
|
|
Fixes some release-related files for the stackforge release process.
|
|
No user-facing bug fixes or features over what 0.5b3 provides.
|
|
|
|
0.5b3 (2013-09-04)
|
|
------------------
|
|
|
|
The project moved to stackforge. Mind the new URLs for the repository, bug
|
|
report etc (see the documentation).
|
|
|
|
* Allow non-default status code return with the pecan adapter
|
|
(Angus Salked).
|
|
|
|
* Fix returning objects with object attributes set to None on rest-json
|
|
& ExtDirect.
|
|
|
|
* Allow error details to be set on the Response object (experimental !).
|
|
|
|
* Fix: Content-Type header is not set anymore when the return type is None
|
|
on the pecan adapter.
|
|
|
|
* Support unicode message in ClientSideError (Mehdi Abaakouk).
|
|
|
|
* Use pbr instead of d2to1 (Julien Danjou).
|
|
|
|
* Python 3.3 support (Julien Danjou).
|
|
|
|
* Pecan adapter: returned status can now be set on exceptions (Vitaly
|
|
Kostenko).
|
|
|
|
* TG adapters: returned status can be set on exceptions (Ryan
|
|
Petrello).
|
|
|
|
* six >= 1.4.0 support (Julien Danjou).
|
|
|
|
* Require ordereddict from pypi for python < 2.6 (Ryan Petrello).
|
|
|
|
* Make the code PEP8 compliant (Ryan Petrello).
|
|
|
|
0.5b2 (2013-04-18)
|
|
------------------
|
|
|
|
* 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.
|