# Changelog
## 0.1.0.0
* Start again, replacing the earlier prototype, with the project layout,
linting and CI of either-n
* Depend on filepather 0.7, in this repository, for FilePather and Tracked
build steps
* Add Document.Build.Build: Build and Command, running builds, running
processes, and the assertions requireInput, requireDirectory and
requirePath
* Add Document.Build.Error: BuildError and CommandLine, with prisms,
lenses, exit codes and classy optics, including BuildCycle for a chain of
build steps that would go round in a cycle, and OutputNotInDirectory for a
build step that makes a file outside the output directory, and
ShallowRepository for a git history that is too shallow to give the last
commit of each file
* Add operations for PDF (Document.Build.Pdf), LibreOffice
(Document.Build.LibreOffice), pandoc (Document.Build.Pandoc), images
(Document.Build.Image), git (Document.Build.Git), hashes
(Document.Build.Hash), string replacement (Document.Build.Replace) and
files (Document.Build.File), every one a FilePather value; operations
that take several input files (pdfJoin, pdfConcatenate, pdftk,
imageAppend) take the directory they are in
* Add Document.Build.Operations, which exports every operation
* Add Document.Build.Project: projectPath, placeholders from environment
variables and of each file, from the last commit to change it rather than
of the repository, placeholder aliases, prepareFile, and project fonts
* Add Document.Build.Context: the Directories of a build and the Context
that rules run in, as data with optics, Rules, buildStep, and combinators
that choose the files rules apply to
* Add Document.Build.Rules: rules that prepare, convert, join, split,
count, extract pages of and resize the files of a project, archive files
and write the tree of output files, each with its settings as arguments,
and no defaults
* Add Document.Build.Documents: build and buildProject, which run rules over
the directories of a project until they make no more files, then once
more when the build is complete
* Add Document.Build.Output: the tree of output files of a build, with the
hash, git details, page count and image information of each file, in JSON
and an HTML page
* Add build.hs, the build file of a set of projects, a cabal script with
the settings of every project, and exceptions for some
* Add hedgehog property tests for the laws of the optics, doctests, and
criterion benchmarks