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
* allow to specify the instance id for any instance command using the
CW_INSTANCE global variable instead of or giving it as a cli argument
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.