News
****

Release 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.

Release 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.

Release 1.20.0
==============

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

Release 1.19.0
==============

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

Release 1.18.0
==============

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

Release 1.17.0
==============

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

Release 1.16.0
==============

   • Unexistent 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.

Release 1.15.0
==============

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

Release 1.14.0
==============

   • Fixed "redo-ifcreate"’s targets proper relative paths to the
     target.

Release 1.13.0
==============

   • Use ".log-rec" extension, instead of ".log.rec", that won’t collide
     with already existing ".log" and ".rec" in ".redo" directory.

Release 1.12.0
==============

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

Release 1.11.0
==============

   • Fix nasty bug with incorrect ".redo/tgt.rec" files renaming.

Release 1.10.0
==============

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

Release 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.

Release 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.

Release 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".

Release 1.6.0
=============

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

Release 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.

Release 1.4.1
=============

   • Even more simpler statusline cleaning function.

Release 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.

Release 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.

Release 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.

Release 1.1.0
=============

   • "redo-cleanup" has "-dry-run" option.

Release 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.

Release 0.12.3
==============

   • Use an updated "lukechampine.com/blake3" with possibly working
     arm64 macOS fix.

Release 0.12.2
==============

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

Release 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.

Release 0.12.0
==============

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

Release 0.11.0
==============

   • Previously "$REDO_JOBS" overrided even explicitly specified "-j"
     option.  Fix that behaviour – command line options must precede
     environment variables.
   • BLAKE3 (https://github.com/BLAKE3-team/BLAKE3) replaces BLAKE2b
     hashing algorithm for even better performance.

Release 0.10.0
==============

   • Initial tarballed release.
