0.24

 - port to dose3 7.0.0
 - remove parallel graph computation as it is undeterministic

0.23

 - update for newer versions of pyflaks, pycodestyle and black
 - port to dose3 6.0.1
 - replace parmap by parany -- see https://github.com/rdicosmo/parmap/issues/46
 - git repository location changed to
   https://salsa.debian.org/debian-bootstrap-team/botch/

0.22

 - update for changes in pygraphviz, networkx, dose3, pycodestyle,
   jquery-tablesorter, argparse
 - format and check python code with black

0.21

 - switch from pep8 to pycodestyle
 - update tests for gringo 5.1.0 release
 - support for gcc >= 6.2.0

0.20

 - botch-dose2html: The --packages option can now be specified more than once
   to supply multiple Packages files
 - botch-extract-scc, botch-graph-ancestors, botch-graph-descendants,
   botch-graph-neighborhood, botch-graph-shortest-path, botch-graph2text: These
   tools previously allowed one to select vertices by supplying multiple
   options to a single argument (--vertex or similar). This meant that these
   arguments had to come *after* all positional arguments so that they would
   not be confused with them. This inconvenience is now fixed by allowing to
   specify these options more than once instead.

0.19

This is mostly a bugfix release. User-visible changes are:

 - botch-create-graph: rename option --num_cores to -j, --jobs
 - clean-repository.ml: add --progress option
 - botch-y-u-b-d-transitive-essential runs botch-create-graph with
   --deb-drop-b-d-indep

0.18

 - add options --timers, --ignoresrclessbin, --online, --sapsb and
   --allowsrcmismatch to botch-cross
 - botch-print-stats doesn't prettify the JSON anymore. Pipe its output to
   a tool like ydump to restore the old behaviour. This change is due to OCaml
   string length limitations, especially on 32 bit architectures.
 - change --drop-b-d-indep to --deb-drop-b-d-indep to comply with dose3
 - remove --noarchall option from botch-bin2src. To not turn Architecture:all
   packages into their source packages, use grep-dctrl to filter the input.
   This way, even more complex filters can be applied. A fitting filter to
   remove Architecture:all packages with grep-dctrl would be:
       grep-dctrl --not -X -FArchitecture all
 - update to work with dose >= 5.0.1
 - the --tmp option of botch-native, botch-cross, botch-y-u-no-bootstrap and
   botch-y-u-b-d-transitive-essential now implies --keep
 - botch-optuniv doesn't implicitly start from the essential set anymore but
   instead starts from the foreground packages. This also introduces the --fg
   and --bg options and makes the botch-optuniv interface more similar to the
   one of botch-create-graph or botch-src2bin.

0.17

 - add new test case "misc" for testing of various botch tools
 - botch-multiarch-interpreter-problem: add --html option and output text by
   default
 - The mysterious test case failure that prompted "update test cases to build
   with latest Debian Sid" in version 0.16 is finally fixed and understood.
   This was a bug in clasp 3.1.3-1 which was fixed in 3.1.3-2 so those changes
   are now reverted with this version.
 - add option --wwwroot to botch-dose2html

0.16

 - update test cases to build with latest Debian Sid
 - botch-dose2html: allow --timestamp argument to contain a freeform string

0.15

 - update to work with dose >= 4.0 (hard version requirement)
 - botch-y-u-b-d-transitive-essential: allow to limit output to a single
   package
 - botch-y-u-no-bootstrap: add --allowsrcmismatch option

0.14

 - all tools by default now *keep* Build-Depends-Indep dependencies. The old
   option --keep-indep has been replaced by --drop-b-d-indep
 - add botch-graph-sinks and botch-graph-sources
 - allow general graph tools to read both: GraphML and dot
 - add options --outfnameattr and --outfnameverts to botch-extract-scc
 - rename botch-extract-neighborhood to botch-graph-neighborhood
 - add botch-filter-src-builds-for
 - add botch-graph2text
 - add botch-y-u-no-bootstrap
 - add --keep option to botch-cross
 - prevent botch-native and botch-cross to accidentally remove the user's home
   directory by requiring output directories to be empty
 - add botch-y-u-b-d-transitive-essential
 - botch-remove-virtual-disjunctions: add --remove-nonvirtual option

0.13

 - botch-bin2src by default now turns *all* binary packages into their source
   packages, including Architecture:all packages. To restore the old behavior,
   pass the --noarchall option. This also means that the --all option is
   dropped.

0.12

 - add botch-graph-ancestors, botch-graph-descendants,
   botch-graph-shortest-path and botch-graph-tred
 - botch-graphml2dot and botch-extract-neighborhood:
      * read/write from/to standard input/output if positional arguments are
        omitted
 - botch-extract-neighborhood:
      * allow finer grained selection of center vertex using the --target
        option
 - botch-graphml2dot:
      * print name/arch/version in dot output

0.11

 - json/html output: instead of printing cudf package names, print in Debian
   format
 - go back to using sysvinit-core to provide init because it's the only init
   system working on all arches and because the choice has no influence
   otherwise (sysvinit uses udev and systemd uses initscripts)
 - add --timestamp option to dose2html and do not print timestamps by default
 - improve dose2html output by printing vpkg information
 - make compatible with python3-networkx 1.9.1
 - calcportmetric: make output sorted

0.10

 - add botch-buildgraph2packages
 - remove botch-build-closure
 - adjust to dose3.3-2

0.9

 - create-graph: generate minimal installation sets
 - allow parallel creation of dependency graphs

0.8

 - use systemd-sysv instead of sysvinit-core in the minimal build system

0.7

 - make botch-create-graph include Essential:yes packages in installation sets
 - replace gitorious urls with gitlab.mister-muffin.de

0.6

 - make the ocaml tools parse input graphML in sorted order to behave the same
   way independent of nodes and edges order in the input graphML

0.5

 - botch-remove-virtual-disjunctions: update man page
 - use Multi-Arch:no instead of the wrong "none"
 - upgrade to dose3 3.3
 - use pyyaml CLoader by default to reduce memory requirement from 233 times
   the input file size to 65 times the input file size
   https://bitbucket.org/xi/pyyaml/issue/37
 - add botch-buildcheck-more-problems
 - add botch-distcheck-more-problems
 - add botch-multiarch-interpreter-problem
 - botch-cross-problems/botch-dose2html:
      * rename botch-cross-problems to botch-dose2html
      * rearrange the columns and group and sort
      * display a top 10 summary of the results at the top
      * remove --online
      * add --desc, --btsuser and --btstag to become more generic
      * do not output custom json for botch-fix-cross-problems
      * add --srcsdir and --packages to allow generation of individual source
        package pages
      * add --wnpp to allow retrieving RFH, RFA and O bugs
      * display if packages are arch:all
 - botch-fix-cross-problems: instead of investing our own json format, re-use
   the dose yaml format

0.4

 - Makefile: use botch-graph-difference to compare graphs when testing
 - find-fvs: make output independent from input graph order
 - run pylint3 and pep8 in test target and make all Python scripts compliant
 - graph-difference: rewrite and simplify comparison algorithm
 - make build-closure and clean-repository a bit more verbose

0.3

 - Makefile: fix test and install target for arches without ocamlopt

0.2

 - botch-cross/native: move to tools directory
 - botch-cross/native: fall back to *.d.byte tools if *.native is not available
 - botch-cross/native: use system version of botch-download-pkgsrc
 - add man page for botch-download-pkgsrc
 - fix man page generation for tools/*.sh files and delete two useless scripts in the process
 - add tools/build-order-from-zero.py

0.1

 - initial release
