2.9.2
    * Change Go's module namespace and related dependencies from
      go.cypherpunk.su to go.stargrave.org.

2.9.1
    * Fix possible panic.

2.9.0
    * Warn if non-top target did not write anything.
      Idea was borrowed from redo-sh.
    * Clean up temporary files if got SIGINT or SIGTERM signals.

2.8.0
    * Fix always-OOD .do-targets with nearby default.do.

2.7.0
    * Proper .do file searching during source file determination.

2.6.5
    * Fix file's executable bit check, which may lead to inadmissible
      /bin/sh run in case of symbolic links presence.
    * Fix proper mtime's nanoseconds storage.

2.6.4
    * Fix possible NFS locking issue.
    * Updated dependant libraries.

2.6.3
    * Updated dependant libraries. Should fix workability on modern OpenBSD.

2.6.2
    * Integration tests do not depend on non-portable "stat" command.

2.6.1
    * Integration tests do not depend on Python or Git.

2.6.0
    * Omit possible obtrusive error of non-existent .dep file opening of
      the failed target.

2.5.0
    * Prevent rare race in the code, where externally modified target
      may panic the program.

2.4.0
    * Continue regression fixing of redo-whichdo.

2.3.0
    * Fix regressions in redo-whichdo happened after huge refactoring.

2.2.0
    * Prefix target's output lines with the name of the target.

2.1.0
    * Mistakenly path to .do file was not absolute and OS can refuse to
      run it because it is not in $PATH.

2.0.0
    * Huge quantity of performance optimisations.
    * Fixed possible unexpected lock file closing.
    * When resulting target has the same contents, it does not replace
      already existing one. That was done previously. But now it also
      copies the file's mode flags to the target (for example making it
      executable).
    * If redo-* command runs under control of another (top-level) redo,
      then it does not parse the flags as options and treat each
      argument as a target, allowing passing the targets with dashes in
      the beginning.
    * Prevented possible concurrent stderr writing by multiple running
      targets.
    * redo-depfix command now always rewrites dependency files and
      calculates checksums of the files.
    * Own binary format is used for dependency files (.dep), instead of
      recfile (.rec) one. It is several times smaller and much faster to
      parse. You must run redo-depfix to convert all existing
      .redo/*.rec files to that binary format.
    * redo-dep2rec command appeared, that can convert .dep to recfile on
      stdout.

1.32.0
    * Omit printing of the "resource deadlock avoided" warning when
      trying to take the lock.

1.31.0
    * Fixed possible race when target can be built more than once.
    * Print out finished targets much more quickly.

1.30.0
    * Fixed wrong OOD-cache value of source file dependency.
    * Targets could be rebuilt without any reason.

1.29.0
    * Fix possible error when two always-ed targets are run simultaneously.
    * Updated dependant libraries.

1.28.0
    * Do not remove .lock files, that leads to possible races between
      running targets. Although nncp-cleanup lock can be used to
      cleanup.
    * Updated dependant libraries.

1.27.1
    * Fixed lack of .redo.-prefix in temporary file names.

1.27.0
    * Improved out-of-date check and .do files search performance,
      because of caching their results.

1.26.0
    * Debug output contained colour-related attribute even if
      $NO_COLOR=1 was set.
    * Updated dependant libraries.

1.25.0
    * Target's lock file requires a token from the jobserver now. So
      amount of simultaneously opened lock files depends on job slots
      available.

1.24.0
    * "redo-cleanup tmp" also removes temporary ($3) created
      directories.

1.23.0
    * redo-ifchange's -f option forces each target rebuilding. Similarly
      to redo, it will parallelize the process.
    * Inode's number is also stored as dependency information, just to
      prevent possible ctime collision of two files.
    * Performance optimization: do not use target's temporary output
      file at all, if its hash equals to already existing target's one.
      Just touch existing target file instead.

1.22.0
    * "flock" locks replaced with POSIX "fcntl" ones. They could be more
      portable.
    * redo-depfix command appeared, that traverses through all .redo
      directories and their dependency files, checks if corresponding
      targets has the same content but different ctime/mtime values and
      rewrites dependencies with that updated inode information.
    * With $REDO_STOP_IF_MODIFIED=1 environment variable redo will stop
      and fail if it meet externally modified file. By default user is
      only warned about it, but building continues for convenience.

1.21.0
    * $REDO_INODE_NO_TRUST is replaced with $REDO_INODE_TRUST
      environment variable, that takes either "none", or "ctime" (the
      default one), or "mtime" (new one). Check documentation's separate
      page about that option.

1.20.0
    Print warning message if both ifcreate and ifchange records were
    discovered after the target is done.

1.19.0
    * Skip target itself, when searching for corresponding .do file.
      For example default.do must use ../default.do instead of the self.

1.18.0
    * Fix regression of known OODs passing since 1.3.0, that leads to
      rebuilding of already built targets.

1.17.0
    * If redo* process is killed, then it sends SIGTERM to all his
      children too, properly terminating the whole job queue.

1.16.0
    * Non-existent targets are considered always out-of-date, as it should be.
    * Do not panic if $REDO_LOGS=1 and we were unable to start the command.

1.15.0
    * Explicitly check if $1 target is touched and then fail.
      Previously we check if $1 was only altered.

1.14.0
    * Fixed redo-ifcreate's targets proper relative paths to the target.

1.13.0
    * Use .log-rec extension, instead of .log.rec, that won't collide
      with already existing .log and .rec in .redo directory.

1.12.0
    * Fix possible lack of success finish message printing if any of
      targets fail.

1.11.0
    * Fix nasty bug with incorrect .redo/tgt.rec files renaming.

1.10.0
    * redo-cleanup now also cleans .redo/tgt.log.rec files.
    * Recursive logs do not require .redo/tgt.rec existence anymore.

1.9.0
    * Do not enable command line options not applicable to the command.
      For example -j option is only applicable to redo and redo-ifchange
      commands.
    * -dry-run option is renamed to -n
    * -logs option is renamed to -k
    * -silent option is renamed to -s
    * When stderr logs are kept, all environment variables, working
      directory, command line arguments, start/finish times, duration,
      participated PIDs, return codes are saved in corresponding
      .redo/tgt.log.rec file. Some of them can be viewed with -c option
      to redo-log.
    * redo-log's -r option allows recursive, indented viewing of the
      whole redo commands invocations for the given target in serialized
      way.

1.8.0
    * Fixed possibly wrong relative path record of the dependency,
      when redo commands are run in different directory from the .do.
    * Fixed possible failing in redo-sources if no .dep is found.

1.7.0
    * Optional compatibility (through $REDO_MAKE={bmake|gmake}) with
      either NetBSD's bmake or GNU Make jobserver protocols, being able
      to tightly integrate goredo with the make.

1.6.0
    * redo-affects command appeared, that shows all targets that will be
      affected by changing the specified ones.

1.5.0
    * redo-ood, redo-sources and redo-targets can optionally take list
      of targets to apply the command on, to narrow the result.
    * redo-sources mistakenly missed .do files in the output.
    * redo-sources now recursively searches for all source files, not
      the "first" depth level ones.

1.4.1
    * Even more simpler statusline cleaning function.

1.4.0
    * Fixed proper -xx and $REDO_TRACE workability, that previously was
      not applied to all targets.
    * Simpler statusline cleaning function, does not leading to
      whitespace junk after long lines.
    * Updated dependant libraries.

1.3.0
    * Experimental redo-sources, redo-targets and redo-ood commands.
    * Repetitive OOD determination optimization: pass all already known
      to be OOD targets to redoing targets.

1.2.0
    * Dependency files .dep extension changed to .rec, to reflect its
      recfile format nature and editors file type better determination.
    * Reduce number of file descriptors kept open (1 instead of 4) while
      waiting for job slot token.

1.1.0
    * redo-cleanup gained -dry-run option.

1.0.0
    * "Size" is stored in the state, for faster OOD detection. Previous
      goredo state files won't work.
    * Setting of $REDO_INODE_NO_TRUST environment variable brings no
      trust to file inode's information (except for its size), forcing
      its checksum checking.
    * redo-whichdo resembles apenwarr/redo's one behaviour more.

0.12.3
    * Use an updated lukechampine.com/blake3 with possibly working
      arm64 macOS fix.

0.12.2
    * Try to fix failing lukechampine.com/blake3 on arm64 macOS.
    * Fixed tests permissions in the tarball.

0.12.1
    * Tarball uses vendor directory without $GOPATH overriding. goredo
      and its dependencies anyway uses Go 1.12+ versions, that have
      vendor-ing support.

0.12.0
    * Do not forget to save even output-less target as a dependency.
    * -debug option renamed to shorter -d.

0.11.0
    * Previously $REDO_JOBS override even explicitly specified -j
      option. Fix that behaviour -- command line options must precede
      environment variables.
    * BLAKE3 replaces BLAKE2b hashing algorithm for even better
      performance.

0.10.0
    * Initial tarballed release.
