|
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 as 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. |