doc/changes/3.27.rst
author Laurent Peuch <cortex@worlddomination.be>
Wed, 29 May 2019 20:29:07 +0200
changeset 12751 30b205676182
parent 12750 74b473f288d5
child 12754 22ece66dcd47
permissions -rw-r--r--
[pyramid/ctl] add a new option to activate the debugtoolbar (-t) While this toolbar isn't yet very integrated with CW, it integrates an inline debugging shell like werkzeug for flask or django_extensions which greatly helps debugging on exception. It can already be manually activated by writting "pyramid.includes = pyramid_debugtoolbar" but it's hidden somewhere in the documentation and not very accessible and annoying to do. Closes #17219765

3.27 (not yet released)
=======================

New features
------------

* Tests can now be run concurrently across multiple processes. You can use
  `pytest-xdist`_ for that. For tests using `PostgresApptestConfiguration` you
  should be aware that `startpgcluster()` can't run concurrently. Workaround is
  to call pytest with ``--dist=loadfile`` to use a single test process per test
  module or use an existing database cluster and set ``db-host`` and
  ``db-port`` of ``devtools.DEFAULT_PSQL_SOURCES['system']`` accordingly.

.. _pytest-xdist: https://github.com/pytest-dev/pytest-xdist

* on `cubicweb-ctl create` and `cubicweb-ctl pyramid`, if it doesn't already
  exist in the instance directory, the `pyramid.ini` file will be generated
  with the needed secrets.

* add a --pdb flag to all cubicweb-ctl command to launch (i)pdb if an exception
  occurs during a command execution.

* the --loglevel and --dbglevel flags are available for all cubicweb-ctl
  instance commands (and not only the ``pyramid`` one)

* following "only in foreground" behavior all commands logs to stdout by
  default from now on. To still log to a file pass ``log_to_file=True`` to
  ``CubicWebConfiguration.config_for``

* add a new migration function `update_bfss_path(old_path, new_path)` to update
  the path in Bytes File-System Storage (bfss).

* on every request display request path and selected controller in CLI

* migration interactive mode improvements:

  * when an exception occurs, display the full traceback instead of only the exception

  * on migration p(db) choice, launch ipdb if it's installed

  * on migration p(db) choice, give the traceback to pdb if it's available,
    this mean that the (i)pdb interactive session will be on the stack of
    the exception instead of being on the stack where pdb is launched which
    will allow the user to access all the relevant context of the exception
    which otherwise is lost

* on DBG_SQL and/or DBG_RQL, if pygments is installed, syntax highlight sql/rql
  debug output

* add a new '-t/--toolbar' option the pyramid command to activate the pyramid debugtoolbar

Backwards incompatible changes
------------------------------

* Standardization on the way to launch a cubicweb instance, from now on the
  only way to do that will be the used the ``pyramid`` command. Therefore:

   * ``cubicweb-ctl`` commands "start", "stop", "restart", "reload" and "status"
     have been removed because they relied on the Twisted web server backend that
     is no longer maintained nor working with Python 3.

   * Twisted web server support has been removed.

   * ``cubicweb-ctl wsgi`` has also been removed.

* Support for legacy cubes (in the 'cubes' python namespace) has been dropped.
  Use of environment variables CW_CUBES_PATH and CUBES_DIR is removed.

* Python 2 support has been dropped.

* Exceptions in notification hooks aren't catched-all anymore during tests so
  one can expect tests that seem to pass (but were actually silently failing)
  to fail now.

* All "cubicweb-ctl" command only accept one instance argument from now one
  (instead of 0 to n)

* 'pyramid' command will always run in the foreground now, by consequence the
  option ``--no-daemon`` has been removed.

* DBG_MS flag has been removed since it is not used anymore

* transactions db logs where displayed using the logging
  (debug/info/warning...) mechanism, now it is only displayed if the
  corresponding DBG_OPS flag is used

Deprecated code drops
---------------------

Most code deprecated until version 3.25 has been dropped.