doc/changes/3.24.rst
author Denis Laxalde <denis.laxalde@logilab.fr>
Thu, 21 Mar 2019 14:33:54 +0100
changeset 12530 9d88e1177c35
parent 11844 8fb3ab72d7a9
permissions -rw-r--r--
Remove Twisted web server Twisted web server is not used anymore and has been superseded by pyramid many years ago. Furthermore, our usage is not compatible with Python 3. So we drop the "etwist" sub-package. As a consequence, "all-in-one" configuration type gets dropped as it was Twisted-specific. We resurrect it in cubicweb/pyramid/config.py by only keeping options used by the "pyramid". Similarly, we introduce a AllInOneCreateHandler in cubicweb/pyramid/pyramidctl.py that is basically the one that lived in cubicweb/etwist/twctl.py and is used to create the "all-in-one" instance. Added a TODO here about "pyramid.ini" that could be generated at the end of bootstrap() method. In cubicweb/devtools/httptest.py, CubicWebServerTC is now equivalent to CubicWebWsgiTC and the latter is dropped.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11844
8fb3ab72d7a9 [doc] Add 3.24 release date and reference in index pages
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11809
diff changeset
     1
3.24 (2 November 2016)
8fb3ab72d7a9 [doc] Add 3.24 release date and reference in index pages
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11809
diff changeset
     2
======================
11688
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     3
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     4
New features
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     5
------------
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     6
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     7
* Various bits of a CubicWeb application configuration can be now be
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     8
  overridden through environments variables matching configuration option
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     9
  names prefixed by ``CW_`` (for instance ``CW_BASE_URL``).
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    10
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    11
* Cubes are now standard Python packages named as ``cubicweb_<cubename>``.
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    12
  They are not anymore installed in ``<prefix>/share/cubicweb/cubes``. Their
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    13
  discovery by CubicWeb is handled by a new setuptools entry point
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    14
  ``cubicweb.cubes``. A backward compatibility layer is kept for "legacy"
2fdcaf86716e [doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    15
  cubes.
11806
5fdc92be3ba7 [doc] Add some words in changelog about pyramid support in core + fix its title
Florent Cayré <florent.cayre@gmail.com>
parents: 11688
diff changeset
    16
5fdc92be3ba7 [doc] Add some words in changelog about pyramid support in core + fix its title
Florent Cayré <florent.cayre@gmail.com>
parents: 11688
diff changeset
    17
* Pyramid support made it into CubicWeb core. Applications that use it
5fdc92be3ba7 [doc] Add some words in changelog about pyramid support in core + fix its title
Florent Cayré <florent.cayre@gmail.com>
parents: 11688
diff changeset
    18
  should now declare the `cubicweb[pyramid]` dependency instead of
5fdc92be3ba7 [doc] Add some words in changelog about pyramid support in core + fix its title
Florent Cayré <florent.cayre@gmail.com>
parents: 11688
diff changeset
    19
  `cubicweb-pyramid`.
11809
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    20
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    21
* New `NullStore` class in ``cubicweb.dataimport.stores`` as new base class for
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    22
  every store, and allowing to test your dataimport chain without actually
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    23
  importing anything.
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    24
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    25
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    26
Major changes
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    27
-------------
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    28
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    29
There has been several important changes to the core internals of CubicWeb:
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    30
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    31
* Dropped `asource` and `extid` columns from the `entities` table as well as the
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    32
  index on the `type` column, for a sensible optimization on both massive data
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    33
  insertion and database size / index rebuilding.
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    34
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    35
* Dropped the `moved_entities` table and related mecanism to remember that an
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    36
  entity has been moved from a source to the system database - this is now the
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    37
  responsability of source's parser to detect this (usually by remembering its
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    38
  original external id as `cwuri`).
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    39
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    40
* Dropped the original 'give me an eid for this extid, but call me back on
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    41
  another line if it has to be created' mecanism on which the ``cwxmlparser`` was
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    42
  relying, in favor of parsers using the dataimport API. This includes dropping
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    43
  the ``cwxmlparser``. If you're using it, you'll have to write a specific
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    44
  parser, examples to come.
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    45
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    46
* Dropped source mapping handling (schema, views, logic) with its client
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    47
  the ``cwxmlparser``. This is not worth the burden, specific parsers should be
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    48
  preferred.
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    49
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    50
The above changes lead to the following API changes:
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    51
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    52
* `req.entity_metas(eid)` doesn't return anymore a 'type' nor 'source' keys, use
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    53
  `req.entity_type(eid)` instead or 'cw_source' relation to get those
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    54
  information,
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    55
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    56
* deprecated `entity.cw_metainformation()`, which doesn't return anymore it's
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    57
  'source' key,
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    58
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    59
* dropped `repository.type_and_source_from_eid(eid, cnx)`,
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    60
  `repository.extid2eid(...)` and `source.eid_type_source(cnx, eid)`,
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    61
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    62
* dropped `source.support_entity(etype)` and `source.support_relation(rtype)`,
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    63
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    64
* dropped 'cw_source' key from default JSON representation of an entity,
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    65
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    66
* dropped `source_uris()` and `handle_deletion(...)` method from datafeed parser
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    67
  base class, deletion of entities is now the responsability of specific
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    68
  implementation (see ``ldapparser`` for example),
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    69
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    70
* entities from external source are always displayed in the UI with a link
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    71
  to the local entity, not the original one simplifying `entity.absolute_url()`
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    72
  implementation and allowing to drop `use_ext_eid` argument of
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    73
  `entity.rest_path()` (though it's still supported for backward compat).
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    74
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    75
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    76
Changes to the massive store
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    77
-----------------------------
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    78
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    79
Several improvments have been done to ``cubicweb.dataimport.massive_store``,
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    80
with among the more important ones:
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    81
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    82
* Extended store API to provide more control to end-users:
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    83
  `fill_entities_table`, `fill_relation_table`, `fill_meta_relation_table`.
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    84
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    85
* Dropped `on_commit` / `on_rollback` arguments of the constructor.
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    86
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    87
* Use a slave specific temporary table for entities insertion as for relations
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    88
  (should improve concurrency when using in master/slaves mode).
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    89
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    90
* Delay dropping of constraint to the `finish` method, avoiding performance
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    91
  problem that was occuring because indexes were dropped at store creation time.
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    92
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    93
* Consider the given metadata generator when looking for which metadata tables
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    94
  should have their constraints dropped.
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    95
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    96
* Don't drop index on `entities.eid`, it's too costly to rebuild on database
11365e5c11d7 [doc] Add my 3.24 release notes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11806
diff changeset
    97
  with some million of entities.