doc/3.14.rst
changeset 10491 c67bcee93248
parent 10490 76ab3c71aff2
child 10492 68c13e0c0fc5
equal deleted inserted replaced
10490:76ab3c71aff2 10491:c67bcee93248
     1 Whats new in CubicWeb 3.14
       
     2 ==========================
       
     3 
       
     4 First notice CW 3.14 depends on yams 0.34 (which is incompatible with prior
       
     5 cubicweb releases regarding instance re-creation).
       
     6 
       
     7 API changes
       
     8 -----------
       
     9 
       
    10 * `Entity.fetch_rql` `restriction` argument has been deprecated and should be
       
    11   replaced with a call to the new `Entity.fetch_rqlst` method, get the returned
       
    12   value (a rql `Select` node) and use the RQL syntax tree API to include the
       
    13   above-mentionned restrictions.
       
    14 
       
    15   Backward compat is kept with proper warning.
       
    16 
       
    17 * `Entity.fetch_order` and `Entity.fetch_unrelated_order` class methods have been
       
    18   replaced by `Entity.cw_fetch_order` and `Entity.cw_fetch_unrelated_order` with
       
    19   a different prototype:
       
    20 
       
    21   - instead of taking (attr, var) as two string argument, they now take (select,
       
    22     attr, var) where select is the rql syntax tree beinx constructed and var the
       
    23     variable *node*.
       
    24 
       
    25   - instead of returning some string to be inserted in the ORDERBY clause, it has
       
    26     to modify the syntax tree
       
    27 
       
    28   Backward compat is kept with proper warning, BESIDE cases below:
       
    29 
       
    30   - custom order method return **something else the a variable name with or
       
    31     without the sorting order** (e.g. cases where you sort on the value of a
       
    32     registered procedure as it was done in the tracker for instance). In such
       
    33     case, an error is logged telling that this sorting is ignored until API
       
    34     upgrade.
       
    35 
       
    36   - client code use direct access to one of those methods on an entity (no code
       
    37     known to do that).
       
    38 
       
    39 * `Entity._rest_attr_info` class method has been renamed to
       
    40   `Entity.cw_rest_attr_info`
       
    41 
       
    42   No backward compat yet since this is a protected method an no code is known to
       
    43   use it outside cubicweb itself.
       
    44 
       
    45 * `AnyEntity.linked_to` has been removed as part of a refactoring of this
       
    46   functionality (link a entity to another one at creation step). It was replaced
       
    47   by a `EntityFieldsForm.linked_to` property.
       
    48 
       
    49   In the same refactoring, `cubicweb.web.formfield.relvoc_linkedto`,
       
    50   `cubicweb.web.formfield.relvoc_init` and
       
    51   `cubicweb.web.formfield.relvoc_unrelated` were removed and replaced by
       
    52   RelationField methods with the same names, that take a form as a parameter.
       
    53 
       
    54   **No backward compatibility yet**. It's still time to cry for it.
       
    55   Cubes known to be affected: tracker, vcsfile, vcreview.
       
    56 
       
    57 * `CWPermission` entity type and its associated require_permission relation type
       
    58   (abstract) and require_group relation definitions have been moved to a new
       
    59   `localperms` cube. With this have gone some functions from the
       
    60   `cubicweb.schemas` package as well as some views. This makes cubicweb itself
       
    61   smaller while you get all the local permissions stuff into a single,
       
    62   documented, place.
       
    63 
       
    64   Backward compat is kept for existing instances, **though you should have
       
    65   installed the localperms cubes**. A proper error should be displayed when
       
    66   trying to migrate to 3.14 an instance the use `CWPermission` without the new
       
    67   cube installed. For new instances / test, you should add a dependancy on the
       
    68   new cube in cubes using this feature, along with a dependancy on cubicweb >=
       
    69   3.14.
       
    70 
       
    71 * jQuery has been updated to 1.6.4 and jquery-tablesorter to 2.0.5. No backward
       
    72   compat issue known.
       
    73 
       
    74 * Table views refactoring : new `RsetTableView` and `EntityTableView`, as well as
       
    75   rewritten an enhanced version of `PyValTableView` on the same bases, with logic
       
    76   moved to some column renderers and a layout. Those should be well documented
       
    77   and deprecates former `TableView`, `EntityAttributesTableView` and `CellView`,
       
    78   which are however kept for backward compat, with some warnings that may not be
       
    79   very clear unfortunatly (you may see your own table view subclass name here,
       
    80   which doesn't make the problem that clear). Notice that `_cw.view('table',
       
    81   rset, *kwargs)` will be routed to the new `RsetTableView` or to the old
       
    82   `TableView` depending on given extra arguments. See #1986413.
       
    83 
       
    84 * `display_name` don't call .lower() anymore. This may leads to changes in your
       
    85   user interface. Different msgid for upper/lower cases version of entity type
       
    86   names, as this is the only proper way to handle this with some languages.
       
    87 
       
    88 * `IEditControlAdapter` has been deprecated in favor of `EditController`
       
    89   overloading, which was made easier by adding dedicated selectors called
       
    90   `match_edited_type` and `match_form_id`.
       
    91 
       
    92 * Pre 3.6 API backward compat has been dropped, though *data* migration
       
    93   compatibility has been kept. You may have to fix errors due to old API usage
       
    94   for your instance before to be able to run migration, but then you should be
       
    95   able to upgrade even a pre 3.6 database.
       
    96 
       
    97 * Deprecated `cubicweb.web.views.iprogress` in favor of new `iprogress` cube.
       
    98 
       
    99 * Deprecated `cubicweb.web.views.flot` in favor of new `jqplot` cube.
       
   100 
       
   101 
       
   102 Unintrusive API changes
       
   103 -----------------------
       
   104 
       
   105 * Refactored properties forms (eg user preferences and site wide properties) as
       
   106   well as pagination components to ease overridding.
       
   107 
       
   108 * New `cubicweb.web.uihelper` module with high-level helpers for uicfg.
       
   109 
       
   110 * New `anonymized_request` decorator to temporary run stuff as an anonymous
       
   111   user, whatever the currently logged in user.
       
   112 
       
   113 * New 'verbatimattr' attribute view.
       
   114 
       
   115 * New facet and form widget for Integer used to store binary mask.
       
   116 
       
   117 * New `js_href` function to generated proper javascript href.
       
   118 
       
   119 * `match_kwargs` and `match_form_params` selectors both accept a new
       
   120   `once_is_enough` argument.
       
   121 
       
   122 * `printable_value` is now a method of request, and may be given dict of
       
   123    formatters to use.
       
   124 
       
   125 * `[Rset]TableView` allows to set None in 'headers', meaning the label should be
       
   126   fetched from the result set as done by default.
       
   127 
       
   128 * Field vocabulary computation on entity creation now takes `__linkto`
       
   129   information into accounet.
       
   130 
       
   131 * Started a `cubicweb.pylintext` pylint plugin to help pylint analyzing cubes.
       
   132 
       
   133 
       
   134 RQL
       
   135 ---
       
   136 
       
   137 * Support for HAVING in 'SET' and 'DELETE' queries.
       
   138 
       
   139 * new `AT_TZ` function to get back a timestamp at a given time-zone.
       
   140 
       
   141 * new `WEEKDAY` date extraction function
       
   142 
       
   143 
       
   144 User interface changes
       
   145 ----------------------
       
   146 
       
   147 * Datafeed source now present an history of the latest import's log, including
       
   148   global status and debug/info/warning/error messages issued during
       
   149   imports. Import logs older than a configurable amount of time are automatically
       
   150   deleted.
       
   151 
       
   152 * Breadcrumbs component is properly kept when creating an entity with '__linkto'.
       
   153 
       
   154 * users and groups management now really lead to that (i.e. includes *groups*
       
   155   management).
       
   156 
       
   157 * New 'jsonp' controller with 'jsonexport' and 'ejsonexport' views.
       
   158 
       
   159 
       
   160 Configuration
       
   161 ------------
       
   162 
       
   163 * Added option 'resources-concat' to make javascript/css files concatenation
       
   164   optional.