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