# HG changeset patch # User Sylvain Thénault # Date 1478678862 -3600 # Node ID 11365e5c11d74f9546ec8cba8edb46461abb5410 # Parent 4a387179fa337b174ecec613a84a68a95c2515e5 [doc] Add my 3.24 release notes diff -r 4a387179fa33 -r 11365e5c11d7 doc/changes/3.24.rst --- a/doc/changes/3.24.rst Tue Nov 08 18:37:47 2016 +0100 +++ b/doc/changes/3.24.rst Wed Nov 09 09:07:42 2016 +0100 @@ -17,3 +17,81 @@ * Pyramid support made it into CubicWeb core. Applications that use it should now declare the `cubicweb[pyramid]` dependency instead of `cubicweb-pyramid`. + +* New `NullStore` class in ``cubicweb.dataimport.stores`` as new base class for + every store, and allowing to test your dataimport chain without actually + importing anything. + + +Major changes +------------- + +There has been several important changes to the core internals of CubicWeb: + +* Dropped `asource` and `extid` columns from the `entities` table as well as the + index on the `type` column, for a sensible optimization on both massive data + insertion and database size / index rebuilding. + +* Dropped the `moved_entities` table and related mecanism to remember that an + entity has been moved from a source to the system database - this is now the + responsability of source's parser to detect this (usually by remembering its + original external id as `cwuri`). + +* Dropped the original 'give me an eid for this extid, but call me back on + another line if it has to be created' mecanism on which the ``cwxmlparser`` was + relying, in favor of parsers using the dataimport API. This includes dropping + the ``cwxmlparser``. If you're using it, you'll have to write a specific + parser, examples to come. + +* Dropped source mapping handling (schema, views, logic) with its client + the ``cwxmlparser``. This is not worth the burden, specific parsers should be + preferred. + +The above changes lead to the following API changes: + +* `req.entity_metas(eid)` doesn't return anymore a 'type' nor 'source' keys, use + `req.entity_type(eid)` instead or 'cw_source' relation to get those + information, + +* deprecated `entity.cw_metainformation()`, which doesn't return anymore it's + 'source' key, + +* dropped `repository.type_and_source_from_eid(eid, cnx)`, + `repository.extid2eid(...)` and `source.eid_type_source(cnx, eid)`, + +* dropped `source.support_entity(etype)` and `source.support_relation(rtype)`, + +* dropped 'cw_source' key from default JSON representation of an entity, + +* dropped `source_uris()` and `handle_deletion(...)` method from datafeed parser + base class, deletion of entities is now the responsability of specific + implementation (see ``ldapparser`` for example), + +* entities from external source are always displayed in the UI with a link + to the local entity, not the original one simplifying `entity.absolute_url()` + implementation and allowing to drop `use_ext_eid` argument of + `entity.rest_path()` (though it's still supported for backward compat). + + +Changes to the massive store +----------------------------- + +Several improvments have been done to ``cubicweb.dataimport.massive_store``, +with among the more important ones: + +* Extended store API to provide more control to end-users: + `fill_entities_table`, `fill_relation_table`, `fill_meta_relation_table`. + +* Dropped `on_commit` / `on_rollback` arguments of the constructor. + +* Use a slave specific temporary table for entities insertion as for relations + (should improve concurrency when using in master/slaves mode). + +* Delay dropping of constraint to the `finish` method, avoiding performance + problem that was occuring because indexes were dropped at store creation time. + +* Consider the given metadata generator when looking for which metadata tables + should have their constraints dropped. + +* Don't drop index on `entities.eid`, it's too costly to rebuild on database + with some million of entities.