=============
Release Notes
=============

dev-branch
----------

* Oct 7 2025: Allow to sort columns with ``--order`` option.
* Oct 7 2025: New column type M (monitor), which prints useful information about running tasks.
* Oct 7 2025: If the task is not using subworkers, the workers column no longer displays -0/1

* Made ``tb merge stat`` to be a nice well formatted cross-tabulated table.

* Merge statuses ``Diff`` and ``Status`` are now nice Enums

* Add large file support, allow ``tb merge copy`` to take ``--lfs`` allowing
  expert users to symlink source or destination of various large files/file patterns.

* Add release notes

* Allow to run workflows both by specifying either file or the Python import path:
  e.g. ``tb workflow -m c2db.workflows.core``.

* Fix all mypy errors.

* Add ``tb merge`` subcommand. This is a complete infrastructure bringing Taskblaster
  closer to distributed repository format. Users are allowed to merge repositories,
  which would be useful for example calculating parts of the project in different supercomputers
  or distributing work between users.

* Move most of the Click options decorators to `tb.cli.options` module.

* Allow to add columns to the default ``ls`` pattern. Now ``tb ls -co+`` adds output
  to the default listing, instead of user having to copy paste ``tb ls -cosirITf``.

* Add ``--ready`` option which allows ``tb ls`` and ``tb run`` to select only tasks
  that are ready to run, e.g.  ``tb run --ready "tree/*/results'`` .
  Very useful to quickly run result collecting tasks while other heavy calculations are
  still running. Previously, without ``--ready`` option Taskblaster would start also to
  run the unfinished heavy calculations which are ancestors of some of the ``results``
  tasks.

* Bug fix: Do not attempt to sync workers on read only repositories.

* Add ``--workflow MODULE/FILE`` option to ``tb run`` and ``tb workers submit`` commands.
  This allows workers to automatically submit newly created work, and also procees with
  dynamical workflows when workers run out of work.

* Add ``--rerun`` and ``--resubmit`` options to ``tb unrun``. It is sometimes difficult to
  select the exact list which ``tb unrun`` utilizes, and to that end it is useful to perform
  immediate automatic ``tb submit`` or ``tb run`` command to those exact tasks.

* Add ``tb special wait`` command, which is useful for automated scripts. It waits until there
  is no more work to be done.

* When cleaning empty directories during ``tb unrun``, always preserve the current
  working directory. This prevents users from getting a stale file handle.

* Bug fix: Fix ``tb workflow --silent`` option.

* Allow to set ``SPHINXBLASTER_TEMP`` folder to control the temporary folders upon building the documentation.
  Add better error messages when execution of taskblaster commands fail during the documentation building.

master branch
--------------

* Added documentation about how to connect multiple workflows :ref:`how_to_cross_reference`.

* Updated ``external_file`` to ``external_data`` and allowed it to support also directories.

* Added ``--no-remove`` option to ``tb unrun``.  Tasks that are created dynamically such that
  their existence depends on another task are normally removed when that task is unrun.
  This option allows to only unrun them.

* Added ``--conflict-states`` option to ``tb unrun`` to allow to unrun only tasks which
  are in a confict state.

* Added ``--filter-task=FUNCTION`` to ``tb unrun`` to allow filtering of tasks
  which should be unrun.

* Added ``--only-descendants`` to ``tb unrun`` to allow only to run descendants of whatever
  trees are selected as the input.

* Added ``tb special rename-object`` expert method to allow renaming of already serialized
  objects.

* Added ``tb special amend`` expert method to allow a cheap way of correcting outputs of heavy tasks
  without having to rerun them.
  
* Allow to create records of tasks whose ancestor tasks are not done.

* Solve deprecation of sqlite3 default datetime converter

* Bug fix: Initialize all tables when creating the repository (to allow to merge to empty repos)

* Allow tasks to run with no MPI even though MPI is detected (useful for example for VASP and QE).

* Add a Collect-class which helps to read results from finished Taskblaster trees.  

Taskblaster 0.2
---------------

* Stable version, the taskblaster article is based on this version.
