doc/changes/3.15.rst
author Denis Laxalde <denis.laxalde@logilab.fr>
Thu, 21 Mar 2019 14:33:54 +0100
changeset 12530 9d88e1177c35
parent 10504 3755cd64fff8
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:
10502
bdcd35e575fd [doc] reformat changes files headers
David Douard <david.douard@logilab.fr>
parents: 10491
diff changeset
     1
3.15 (12/04/2012)
bdcd35e575fd [doc] reformat changes files headers
David Douard <david.douard@logilab.fr>
parents: 10491
diff changeset
     2
=================
8158
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     3
8362
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
     4
New functionnalities
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
     5
--------------------
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
     6
8364
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
     7
* Add Zmq server, based on the cutting edge ZMQ (http://www.zeromq.org/) socket
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
     8
  library.  This allows to access distant instance, in a similar way as Pyro.
8362
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
     9
8364
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    10
* Publish/subscribe mechanism using ZMQ for communication among cubicweb
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    11
  instances.  The new zmq-address-sub and zmq-address-pub configuration variables
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    12
  define where this communication occurs.  As of this release this mechanism is
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    13
  used for entity cache invalidation.
8362
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
    14
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
    15
* Improved WSGI support. While there is still some caveats, most of the code
9390
41795de3d48a [doc] update 3.18 release notes
Julien Cristau <julien.cristau@logilab.fr>
parents: 8401
diff changeset
    16
  which was twisted only is now generic and allows related functionalities to work
8362
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
    17
  with a WSGI front-end.
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
    18
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
    19
* Full undo/transaction support : undo of modification has eventually been
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
    20
  implemented, and the configuration simplified (basically you activate it or not
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
    21
  on an instance basis).
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
    22
8364
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    23
* Controlling HTTP status code used is not much more easier :
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    24
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    25
  - `WebRequest` now has a `status_out` attribut to control the response status ;
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    26
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    27
  - most web-side exceptions take an optional ``status`` argument.
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    28
10504
3755cd64fff8 [doc] small rst fixes and cleanups in changelog files
David Douard <david.douard@logilab.fr>
parents: 10502
diff changeset
    29
8158
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    30
API changes
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    31
-----------
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    32
8190
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    33
* The base registry implementation has been moved to a new
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    34
  `logilab.common.registry` module (see #1916014). This includes code from :
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    35
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    36
  * `cubicweb.vreg` (the whole things that was in there)
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    37
  * `cw.appobject` (base selectors and all).
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    38
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    39
  In the process, some renaming was done:
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    40
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    41
  * the top level registry is now `RegistryStore` (was `VRegistry`), but that
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    42
    should not impact cubicweb client code ;
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    43
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    44
  * former selectors functions are now known as "predicate", though you still use
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    45
    predicates to build an object'selector ;
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    46
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    47
  * for consistency, the `objectify_selector` decoraror has hence be renamed to
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    48
    `objectify_predicate` ;
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    49
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    50
  * on the CubicWeb side, the `selectors` module has been renamed to
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    51
    `predicates`.
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    52
8364
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    53
  Debugging refactoring dropped the more need for the `lltrace` decorator.  There
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    54
  should be full backward compat with proper deprecation warnings.  Notice the
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    55
  `yes` predicate and `objectify_predicate` decorator, as well as the
8190
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    56
  `traced_selection` function should now be imported from the
2a3c1b787688 [vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8188
diff changeset
    57
  `logilab.common.registry` module.
8158
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    58
8364
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    59
* All login forms are now submitted to <app_root>/login. Redirection to requested
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    60
  page is now handled by the login controller (it was previously handle by the
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    61
  session manager).
8362
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
    62
8364
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    63
* `Publisher.publish` has been renamed to `Publisher.handle_request`. This
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    64
  method now contains generic version of logic previously handled by
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    65
  Twisted. `Controller.publish` is **not** affected.
8158
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    66
10504
3755cd64fff8 [doc] small rst fixes and cleanups in changelog files
David Douard <david.douard@logilab.fr>
parents: 10502
diff changeset
    67
8158
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    68
Unintrusive API changes
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    69
-----------------------
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    70
8364
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    71
* New 'ldapfeed' source type, designed to replace 'ldapuser' source with
8188
1867e252e487 [repository] ldap-feed source. Closes #2086984
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8158
diff changeset
    72
  data-feed (i.e. copy based) source ideas.
8158
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    73
8364
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    74
* New 'zmqrql' source type, similar to 'pyrorql' but using ømq instead of Pyro.
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    75
8401
a9efb25337da small doc updates
Florent Cayré <florent.cayre@logilab.fr>
parents: 8368
diff changeset
    76
* A new registry called `services` has appeared, where you can register
8368
062c9c7fe502 [doc] 3.15 services api description
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8364
diff changeset
    77
  server-side `cubicweb.server.Service` child classes. Their `call` method can be
062c9c7fe502 [doc] 3.15 services api description
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8364
diff changeset
    78
  invoked from a web-side AppObject instance using new `self._cw.call_service`
062c9c7fe502 [doc] 3.15 services api description
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8364
diff changeset
    79
  method or a server-side one using `self.session.call_service`. This is a new
062c9c7fe502 [doc] 3.15 services api description
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8364
diff changeset
    80
  way to call server-side methods, much cleaner than monkey patching the
062c9c7fe502 [doc] 3.15 services api description
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8364
diff changeset
    81
  Repository class, which becomes a deprecated way to perform similar tasks.
8158
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    82
8401
a9efb25337da small doc updates
Florent Cayré <florent.cayre@logilab.fr>
parents: 8368
diff changeset
    83
* a new `ajax-func` registry now hosts all remote functions (i.e. functions
8364
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    84
  callable through the `asyncRemoteExec` JS api). A convenience `ajaxfunc`
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    85
  decorator will let you expose your python function easily without all the
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    86
  appobject standard boilerplate. Backward compatibility is preserved.
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    87
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    88
* the 'json' controller is now deprecated in favor of the 'ajax' one.
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    89
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    90
* `WebRequest.build_url` can now take a __secure__ argument. When True cubicweb
b360112424d2 [doc] improved 3.15 blog using developpers'contributions
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8363
diff changeset
    91
  try to generate an https url.
8158
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    92
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    93
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    94
User interface changes
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    95
----------------------
2ee254e74382 [schema] restrictive email address read permission. Closes #2148141
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    96
8362
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
    97
A new 'undohistory' view expose the undoable transactions and give access to undo
4ac28926cd15 [doc] improve 3.15 release blog
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 8190
diff changeset
    98
some of them.