[Cubicweb] [ANNOUNCE] cubicweb 3.22.0

Julien Cristau julien.cristau at logilab.fr
Tue Jan 5 10:10:51 CET 2016


Dear all,

I'm happy to announce the release of cubicweb 3.22.0.  Many thanks to
all contributors!  According to mercurial, code changes were contributed
by: Arthur Lutz, Aurelien Campeas, Christophe de Vienne, David Douard,
Denis Laxalde, Dimitri Papadopoulos, Erica Marco, Jean-Pierre Vergnes,
Julien Cristau, Jérôme Roy, Rabah Meradi, Rémi Cardona, Samuel Trégouët
and Sylvain Thénault.

The main changes since the 3.21.0 release in July are listed below (also
available at https://docs.cubicweb.org/changes/3.22.html).

Note that this new release requires a lockstep upgrade of the
logilab-database, yams and rql libraries.

Enjoy,
Julien

3.22 (4 January 2016)
=====================

New features
------------

* a huge amount of changes were done towards python 3.x support (as yet
  incomplete).  This introduces a new dependency on six, to handle
  python2/python3 compatibility.

* new cubicweb.dataimport.massive_store module, a postgresql-specific store
  using the COPY statement to accelerate massive data imports.  This
  functionality was previously part of cubicweb-dataio (there are some API
  differences with that previous version, however).

* cubes custom sql scripts are executed before creating tables.  This allows
  them to create new types or extensions.

* the ``ejsonexport`` view can be specialized using the new ``ISerializable``
  entity adapter.  By default, it will return an entity's (non-Bytes and
  non-Password) attributes plus the special ``cw_etype`` and ``cw_source``
  keys.

* cubes that define custom final types are now handled by the ``add_cube``
  migration command.

* synchronization of external sources can be triggered from the web interface
  by suitably privileged users with a new ``cw.source-sync`` action.

User-visible changes
--------------------

* the ldapfeed source now depends on the `ldap3` module instead of
  `python-ldap`.

* replies don't get an ``Expires`` header by default.  However when they do,
  they also get a coherent ``Cache-Control``.

* data files are regenerated at each request, they are no longer cached by
  ``cubicweb.web.PropertySheet``.  Requests for data files missing the instance
  hash are handled with a redirection instead of a direct reply, to allow
  correct cache-related reply headers.

API changes
-----------

* ``config.repository()`` creates a new Repository object each time, instead of
  returning a cached object.  WARNING: this may cause unexpected issues if
  several repositories end up being used.

* migration scripts, as well as other scripts executed by ``cubicweb-ctl
  shell``, are loaded with the print_function flag enabled (for backwards
  compatibility, if that fails they are re-loaded without that flag)

* the ``cw_fti_index_rql_queries`` method on entity classes is replaced by
  ``cw_fti_index_rql_limit``, a generator which yields ``ResultSet`` objects
  containing entities to be indexed.  By default, entities are returned 1000 at
  a time.

* ``IDownloadableAdapter`` API is clarified: ``download_url``,
  ``download_content_type`` and ``download_file_name`` return unicode objects,
  ``download_data`` returns bytes.

* the ``Repository.extid2eid()`` entry point for external sources is deprecated.
  Imports should use one of the stores from the ``cubicweb.dataimport`` package
  instead.

* the ``cubicweb.repoapi.get_repository()`` function's ``uri`` argument should
  no longer be used.

* the generic datafeed xml parser is deprecated in favor of the "store" API
  introduced in cubicweb 3.21.

* the session manager lives in the ``sessions`` registry instead of ``components``.

* ``TZDatetime`` attributes are returned as timezone-aware python datetime
  objects.  WARNING: this will break client applications that compare or use
  arithmetic involving timezone-naive datetime objects.

* creation_date and modification_date attributes for all entities are now
  timezone-aware (``TZDatetime``) instead of localtime (``Datetime``).  More
  generally, the ``Datetime`` type should be considered as deprecated.

Deprecated code drops
---------------------

* the ``cubicweb.server.hooksmanager`` module was removed

* the ``Repository.pinfo()`` method was removed

* the ``cubicweb.utils.SizeConstrainedList`` class was removed
-- 
Julien Cristau          <julien.cristau at logilab.fr>
Logilab		        http://www.logilab.fr/
Informatique scientifique & gestion de connaissances
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.cubicweb.org/pipermail/cubicweb/attachments/20160105/c1fce6be/attachment.sig>


More information about the Cubicweb mailing list