                              CHANGELOG
                              `````````

Version 1.10.0 -- 2021-07-11
----------------------------

- "aux" key added to run API
    This is intended for users to fill out their own custom data when
    processing the run.json file. The run.json file has a tightly
    specified schema that allows for no additions, but the "aux" key
    provides a way to add arbitrary data to a run.

- UI improvements
    The parallelism graph now shows the number of processing cores as a
    horizontal line, and the job memory usage section of the dashboard
    now displays a message if no memory trace was captured.



Version 1.9.0 -- 2021-06-29
---------------------------

- Manual pages
    Litani now has work-in-progress documentation, currently including
    man pages for the three most commonly-used subcommands

- Gnuplot dependency is now optional
    This is to support users who run Litani in minimal containers

- Improved usability of output directory symlink
    Litani init now prints the path to the symlink by default, unless
    the new --no-print-out-dir flag was passed



Version 1.8.0 -- 2021-06-24
---------------------------

- Job pool
    Users can now add jobs to a particular "job pool", which limits the
    parallelism of those jobs. Multiple pools can be created, each with
    their own parallelism limits. This is intended to inhibit the
    parallelism of jobs that use a contended resource, like disk I/O or
    network bandwidth.

- UI improvement on pipeline page
    Each job on the pipeline page now has a hyperlink to that job,
    making it easy to link to particularly interesting jobs hosted on
    the web.

- Memory profiler
    Litani can now profile the memory of particular jobs and display
    graphs of those jobs' memory use on the dashboard. This can be
    helpful when deciding when to place particular jobs into a job pool.

- Parallelism measurement
    Litani now tracks how many jobs are running in parallel at any one
    moment, and displays that as a graph on the dashboard. This can be
    helpful when trying to increase CPU core utilization or trying to
    use cloud resources as efficiently as possible.



Version 1.7.1 -- 2021-05-13
---------------------------

- This minor release fixes a bug with the graph renderer.


Version 1.7.0 -- 2021-05-12
---------------------------

- The --outcome-table flag can be used to specify a JSON file that
  Litani uses to decide whether a job was successful.

- The --output-directory flag can be used to specify where Litani should
  write its output files.

- The --output-symlink flag can be used to create a symbolic link to the
  output directory.

- The --output-prefix flag is an alternative to --output-directory that
  specifies a directory, into which Litani will create a unique
  directory for writing its output files.

- Litani now displays a table of contents on each pipeline page. Each
  entry in the table of contents is a hyperlink that points to a job on
  the page.

- Litani now renders each pipeline as a graph and displays that graph on
  the pipeline page, allowing users to see the dependency layout of all
  the jobs in the pipeline.


Version 1.6.0 -- 2021-03-10
---------------------------

This release fixes a bug where litani would crash when given the
`--timeout` option.


Version 1.5.0 -- 2021-03-08
---------------------------

- The implementation of directory locking no longer releases the lock
  upon creation. This fixes a problem where external processes could
  release a lock that a different process had acquired.


Version 1.4.0 -- 2021-03-02
---------------------------

- lib.litani now exposes a LockableDirectory API that can be used to
  lock directories against concurrent access by more than one process.
  External processes can use this API to lock report directories while
  reading or copying them.

- Litani now touches a file called `.litani-expired` in HTML report
  directories as soon as a new report directory has been written, and
  after the `html` symbolic link has been updated to point to the new
  directory. Litani then deletes all report directories that are both
  expired and unlocked.


Version 1.3.0 -- 2021-02-24
---------------------------

- Litani now has a top-level command called `print-capabilities` that
  prints out a list of features in either human or machine-readable format.
  The intention is that any new API-changing features will be accompanied by a
  new entry in this list


Version 1.2.0 -- 2021-02-24
---------------------------

- Litani now renders the HTML directory atomically. The `html` directory is now
  a symbolic link that is updated only after the report has been completely
  written.
- Added dark mode for all report pages


Version 1.1.0 -- 2021-02-03
---------------------------

- Added a new top-level command, `litani graph`. This dumps a
  Graphviz-formatted graph to stdout that describes the dependency graph
  of the jobs that have been added so far.
