]> Cypherpunks.ru repositories - goredo.git/blobdiff - doc/news.texi
Fix lack of .redo-prefix in temporary files
[goredo.git] / doc / news.texi
index 0c29352c6349a04a57494d899c71980a580c6ee8..2e4a72b29a4fcc174f6cf0018267f4498ba685b7 100644 (file)
 @node News
+@cindex news
 @unnumbered News
 
-@anchor{Release 1.4.0}
+@anchor{Release 1_27_1}
+@section Release 1.27.1
+@itemize
+@item
+    Fixed lack of @file{.redo.}-prefix in temporary file names.
+@end itemize
+
+@anchor{Release 1_27_0}
+@section Release 1.27.0
+@itemize
+@item
+    Improved out-of-date check and @file{.do} files search performance,
+    because of caching their results.
+@end itemize
+
+@anchor{Release 1_26_0}
+@section Release 1.26.0
+@itemize
+@item
+    Debug output contained colour-related attribute even if
+    @env{$NO_COLOR=1} was set.
+@item
+    Updated dependant libraries.
+@end itemize
+
+@anchor{Release 1_25_0}
+@section Release 1.25.0
+@itemize
+@item
+    Target's lock file requires a token from the jobserver now. So
+    amount of simultaneously opened lock files depends on job slots
+    available.
+@end itemize
+
+@anchor{Release 1_24_0}
+@section Release 1.24.0
+@itemize
+@item
+    @command{redo-cleanup tmp} also removes temporarily (@code{$3})
+    created directories.
+@end itemize
+
+@anchor{Release 1_23_0}
+@section Release 1.23.0
+@itemize
+@item
+    @command{redo-ifchange}'s @option{-f} option forces each target
+    rebuilding. Comparing to @command{redo}, it will parallelize the
+    process.
+@item
+    Inode's number is also stored as dependency information, just to
+    prevent possible @code{ctime} collision of two files.
+@item
+    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.
+@end itemize
+
+@anchor{Release 1_22_0}
+@section Release 1.22.0
+@itemize
+@item
+    @code{flock} locks replaced with POSIX @code{fcntl} ones.
+    They could be more portable.
+@item
+    @command{redo-depfix} command appeared, that traverses through all
+    @file{.redo} directories and their dependency files, checks if
+    corresponding targets has the same content but different
+    @code{ctime}/@code{mtime} values and rewrites dependencies with that
+    updated inode information.
+@item
+    With @env{$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.
+@end itemize
+
+@anchor{Release 1_21_0}
+@section Release 1.21.0
+@itemize
+@item
+    @env{$REDO_INODE_NO_TRUST} is replaced with @env{$REDO_INODE_TRUST}
+    environment variable, that takes either @code{none}, or @code{ctime}
+    (the default one), or @code{mtime} (new one). Check documentation's
+    separate page about that option.
+@end itemize
+
+@anchor{Release 1_20_0}
+@section Release 1.20.0
+@itemize
+@item
+    Print warning message if both ifcreate and ifchange records were
+    discovered after the target is done.
+@end itemize
+
+@anchor{Release 1_19_0}
+@section Release 1.19.0
+@itemize
+@item
+    Skip target itself, when searching for corresponding @file{.do}
+    file. For example @file{default.do} must use @file{../default.do}
+    instead of the self.
+@end itemize
+
+@anchor{Release 1_18_0}
+@section Release 1.18.0
+@itemize
+@item
+    Fix regression of known OODs passing since 1.3.0, that leads to
+    rebuilding of already built targets.
+@end itemize
+
+@anchor{Release 1_17_0}
+@section Release 1.17.0
+@itemize
+@item
+    If @command{redo*} process is killed, then it sends @code{SIGTERM}
+    to all his children too, properly terminating the whole job queue.
+@end itemize
+
+@anchor{Release 1_16_0}
+@section Release 1.16.0
+@itemize
+@item
+    Unexistent targets are considered always out-of-date, as it should be.
+@item
+    Do not panic if @env{$REDO_LOGS=1} and we were unable to start the command.
+@end itemize
+
+@anchor{Release 1_15_0}
+@section Release 1.15.0
+@itemize
+@item
+    Explicitly check if @code{$1} target is touched and then fail.
+    Previously we check if @code{$1} was only altered.
+@end itemize
+
+@anchor{Release 1_14_0}
+@section Release 1.14.0
+@itemize
+@item
+    Fixed @command{redo-ifcreate}'s targets proper relative paths to the target.
+@end itemize
+
+@anchor{Release 1_13_0}
+@section Release 1.13.0
+@itemize
+@item
+    Use @file{.log-rec} extension, instead of @file{.log.rec}, that
+    won't collide with already existing @file{.log} and @file{.rec} in
+    @file{.redo} directory.
+@end itemize
+
+@anchor{Release 1_12_0}
+@section Release 1.12.0
+@itemize
+@item
+    Fix possible lack of success finish message printing if any of
+    targets fail.
+@end itemize
+
+@anchor{Release 1_11_0}
+@section Release 1.11.0
+@itemize
+@item
+    Fix nasty bug with incorrect @file{.redo/tgt.rec} files renaming.
+@end itemize
+
+@anchor{Release 1_10_0}
+@section Release 1.10.0
+@itemize
+@item
+    @command{redo-cleanup} now also cleans @file{.redo/tgt.log.rec} files.
+@item
+    Recursive logs do not require @file{.redo/tgt.rec} existence anymore.
+@end itemize
+
+@anchor{Release 1_9_0}
+@section Release 1.9.0
+@itemize
+@item
+    Do not enable command line options not applicable to the command.
+    For example @option{-j} option is only applicable to @command{redo}
+    and @command{redo-ifchange} commands.
+@item
+    @itemize
+    @item @option{-dry-run} option is renamed to @option{-n}
+    @item @option{-logs} option is renamed to @option{-k}
+    @item @option{-silent} option is renamed to @option{-s}
+    @end itemize
+@item
+    When @code{stderr} logs are kept, all environment variables, working
+    directory, command line arguments, start/finish times, duration,
+    participated PIDs, return codes are saved in corresponding
+    @file{.redo/tgt.log.rec} file. Some of them can be viewed with
+    @option{-c} option to @command{redo-log}.
+@item
+    @command{redo-log}'s @option{-r} option allows recursive, indented
+    viewing of the whole redo commands invocations for the given target
+    in serialized way.
+@end itemize
+
+@anchor{Release 1_8_0}
+@section Release 1.8.0
+@itemize
+@item
+    Fixed possibly wrong relative path record of the dependency, when
+    redo commands are run in different directory from the @file{.do}.
+@item
+    Fixed possible failing in @command{redo-sources} if no @file{.dep}
+    is found.
+@end itemize
+
+@anchor{Release 1_7_0}
+@section Release 1.7.0
+@itemize
+@item
+    Optional compatibility (through @env{$REDO_MAKE=@{bmake|gmake@}})
+    with either NetBSD's bmake or GNU Make jobserver protocols, being
+    able to tightly integrate @command{goredo} with the @command{make}.
+@end itemize
+
+@anchor{Release 1_6_0}
+@section Release 1.6.0
+@itemize
+@item
+    @command{redo-affects} command appeared, that shows all targets that
+    will be affected by changing the specified ones.
+@end itemize
+
+@anchor{Release 1_5_0}
+@section Release 1.5.0
+@itemize
+@item
+    @command{redo-ood}, @command{redo-sources} and
+    @command{redo-targets} can optionally take list of targets to apply
+    the command on, to narrow the result.
+@item
+    @command{redo-sources} mistakenly missed @file{.do} files in the output.
+@item
+    @command{redo-sources} now recursively searches for all source
+    files, not the "first" depth level ones.
+@end itemize
+
+@anchor{Release 1_4_1}
+@section Release 1.4.1
+@itemize
+@item
+    Even more simpler statusline cleaning function.
+@end itemize
+
+@anchor{Release 1_4_0}
 @section Release 1.4.0
 @itemize
 @item
-    Fixed proper @option{-xx} and @env{REDO_TRACE} workability, that
+    Fixed proper @option{-xx} and @env{$REDO_TRACE} workability, that
     previously was not applied to all targets.
 @item
     Simpler statusline cleaning function, does not leading to whitespace
     Updated dependant libraries.
 @end itemize
 
-@anchor{Release 1.3.0}
+@anchor{Release 1_3_0}
 @section Release 1.3.0
 @itemize
 @item
     be OOD targets to redoing targets.
 @end itemize
 
-@anchor{Release 1.2.0}
+@anchor{Release 1_2_0}
 @section Release 1.2.0
 @itemize
 @item
     waiting for job slot token.
 @end itemize
 
-@anchor{Release 1.1.0}
+@anchor{Release 1_1_0}
 @section Release 1.1.0
 @itemize
 @item
     @command{redo-cleanup} has @option{-dry-run} option.
 @end itemize
 
-@anchor{Release 1.0.0}
+@anchor{Release 1_0_0}
 @section Release 1.0.0
 @itemize
 @item
     @code{Size} is stored in the state, for faster OOD detection.
     Previous @command{goredo} state files won't work.
 @item
-    Setting of @env{REDO_INODE_NO_TRUST} environment variable brings no
+    Setting of @env{$REDO_INODE_NO_TRUST} environment variable brings no
     trust to file inode's information (except for its size), forcing its
     checksum checking.
 @item
     @command{redo-whichdo} resembles @code{apenwarr/redo}'s one behaviour more.
 @end itemize
 
-@anchor{Release 0.12.3}
+@anchor{Release 0_12_3}
 @section Release 0.12.3
 @itemize
 @item
     arm64 macOS fix.
 @end itemize
 
-@anchor{Release 0.12.2}
+@anchor{Release 0_12_2}
 @section Release 0.12.2
 @itemize
 @item
     Fixed tests permissions in the tarball.
 @end itemize
 
-@anchor{Release 0.12.1}
+@anchor{Release 0_12_1}
 @section Release 0.12.1
 @itemize
 @item
-    Tarball uses @file{vendor} directory without @env{GOPATH}
+    Tarball uses @file{vendor} directory without @env{$GOPATH}
     overriding. @command{goredo} and its dependencies anyway uses Go
     1.12+ versions, that have @file{vendor}-ing support.
 @end itemize
 
-@anchor{Release 0.12.0}
+@anchor{Release 0_12_0}
 @section Release 0.12.0
 @itemize
 @item
     @option{-debug} option renamed to shorter @option{-d}.
 @end itemize
 
-@anchor{Release 0.11.0}
+@anchor{Release 0_11_0}
 @section Release 0.11.0
 @itemize
 @item
-    Previously @env{REDO_JOBS} overrided even explicitly specified
+    Previously @env{$REDO_JOBS} overrided even explicitly specified
     @option{-j} option. Fix that behaviour -- command line options must
     precede environment variables.
 @item @url{https://github.com/BLAKE3-team/BLAKE3, BLAKE3} replaces
     BLAKE2b hashing algorithm for even better performance.
 @end itemize
 
-@anchor{Release 0.10.0}
+@anchor{Release 0_10_0}
 @section Release 0.10.0
 @itemize
 @item Initial tarballed release.