]> Cypherpunks.ru repositories - goredo.git/blob - doc/news.texi
Acquire jobserver's token prior to opening the lockfile
[goredo.git] / doc / news.texi
1 @node News
2 @cindex news
3 @unnumbered News
4
5 @anchor{Release 1_25_0}
6 @section Release 1.25.0
7 @itemize
8 @item
9     Target's lock file requires a token from the jobserver now. So
10     amount of simultaneously opened lock files depends on job slots
11     available.
12 @end itemize
13
14 @anchor{Release 1_24_0}
15 @section Release 1.24.0
16 @itemize
17 @item
18     @command{redo-cleanup tmp} also removes temporarily (@code{$3})
19     created directories.
20 @end itemize
21
22 @anchor{Release 1_23_0}
23 @section Release 1.23.0
24 @itemize
25 @item
26     @command{redo-ifchange}'s @option{-f} option forces each target
27     rebuilding. Comparing to @command{redo}, it will parallelize the
28     process.
29 @item
30     Inode's number is also stored as dependency information, just to
31     prevent possible @code{ctime} collision of two files.
32 @item
33     Performance optimization: do not use target's temporary output file
34     at all, if its hash equals to already existing target's one. Just
35     touch existing target file instead.
36 @end itemize
37
38 @anchor{Release 1_22_0}
39 @section Release 1.22.0
40 @itemize
41 @item
42     @code{flock} locks replaced with POSIX @code{fcntl} ones.
43     They could be more portable.
44 @item
45     @command{redo-depfix} command appeared, that traverses through all
46     @file{.redo} directories and their dependency files, checks if
47     corresponding targets has the same content but different
48     @code{ctime}/@code{mtime} values and rewrites dependencies with that
49     updated inode information.
50 @item
51     With @env{$REDO_STOP_IF_MODIFIED=1} environment variable redo will
52     stop and fail if it meet externally modified file. By default user
53     is only warned about it, but building continues for convenience.
54 @end itemize
55
56 @anchor{Release 1_21_0}
57 @section Release 1.21.0
58 @itemize
59 @item
60     @env{$REDO_INODE_NO_TRUST} is replaced with @env{$REDO_INODE_TRUST}
61     environment variable, that takes either @code{none}, or @code{ctime}
62     (the default one), or @code{mtime} (new one). Check documentation's
63     separate page about that option.
64 @end itemize
65
66 @anchor{Release 1_20_0}
67 @section Release 1.20.0
68 @itemize
69 @item
70     Print warning message if both ifcreate and ifchange records were
71     discovered after the target is done.
72 @end itemize
73
74 @anchor{Release 1_19_0}
75 @section Release 1.19.0
76 @itemize
77 @item
78     Skip target itself, when searching for corresponding @file{.do}
79     file. For example @file{default.do} must use @file{../default.do}
80     instead of the self.
81 @end itemize
82
83 @anchor{Release 1_18_0}
84 @section Release 1.18.0
85 @itemize
86 @item
87     Fix regression of known OODs passing since 1.3.0, that leads to
88     rebuilding of already built targets.
89 @end itemize
90
91 @anchor{Release 1_17_0}
92 @section Release 1.17.0
93 @itemize
94 @item
95     If @command{redo*} process is killed, then it sends @code{SIGTERM}
96     to all his children too, properly terminating the whole job queue.
97 @end itemize
98
99 @anchor{Release 1_16_0}
100 @section Release 1.16.0
101 @itemize
102 @item
103     Unexistent targets are considered always out-of-date, as it should be.
104 @item
105     Do not panic if @env{$REDO_LOGS=1} and we were unable to start the command.
106 @end itemize
107
108 @anchor{Release 1_15_0}
109 @section Release 1.15.0
110 @itemize
111 @item
112     Explicitly check if @code{$1} target is touched and then fail.
113     Previously we check if @code{$1} was only altered.
114 @end itemize
115
116 @anchor{Release 1_14_0}
117 @section Release 1.14.0
118 @itemize
119 @item
120     Fixed @command{redo-ifcreate}'s targets proper relative paths to the target.
121 @end itemize
122
123 @anchor{Release 1_13_0}
124 @section Release 1.13.0
125 @itemize
126 @item
127     Use @file{.log-rec} extension, instead of @file{.log.rec}, that
128     won't collide with already existing @file{.log} and @file{.rec} in
129     @file{.redo} directory.
130 @end itemize
131
132 @anchor{Release 1_12_0}
133 @section Release 1.12.0
134 @itemize
135 @item
136     Fix possible lack of success finish message printing if any of
137     targets fail.
138 @end itemize
139
140 @anchor{Release 1_11_0}
141 @section Release 1.11.0
142 @itemize
143 @item
144     Fix nasty bug with incorrect @file{.redo/tgt.rec} files renaming.
145 @end itemize
146
147 @anchor{Release 1_10_0}
148 @section Release 1.10.0
149 @itemize
150 @item
151     @command{redo-cleanup} now also cleans @file{.redo/tgt.log.rec} files.
152 @item
153     Recursive logs do not require @file{.redo/tgt.rec} existence anymore.
154 @end itemize
155
156 @anchor{Release 1_9_0}
157 @section Release 1.9.0
158 @itemize
159 @item
160     Do not enable command line options not applicable to the command.
161     For example @option{-j} option is only applicable to @command{redo}
162     and @command{redo-ifchange} commands.
163 @item
164     @itemize
165     @item @option{-dry-run} option is renamed to @option{-n}
166     @item @option{-logs} option is renamed to @option{-k}
167     @item @option{-silent} option is renamed to @option{-s}
168     @end itemize
169 @item
170     When @code{stderr} logs are kept, all environment variables, working
171     directory, command line arguments, start/finish times, duration,
172     participated PIDs, return codes are saved in corresponding
173     @file{.redo/tgt.log.rec} file. Some of them can be viewed with
174     @option{-c} option to @command{redo-log}.
175 @item
176     @command{redo-log}'s @option{-r} option allows recursive, indented
177     viewing of the whole redo commands invocations for the given target
178     in serialized way.
179 @end itemize
180
181 @anchor{Release 1_8_0}
182 @section Release 1.8.0
183 @itemize
184 @item
185     Fixed possibly wrong relative path record of the dependency, when
186     redo commands are run in different directory from the @file{.do}.
187 @item
188     Fixed possible failing in @command{redo-sources} if no @file{.dep}
189     is found.
190 @end itemize
191
192 @anchor{Release 1_7_0}
193 @section Release 1.7.0
194 @itemize
195 @item
196     Optional compatibility (through @env{$REDO_MAKE=@{bmake|gmake@}})
197     with either NetBSD's bmake or GNU Make jobserver protocols, being
198     able to tightly integrate @command{goredo} with the @command{make}.
199 @end itemize
200
201 @anchor{Release 1_6_0}
202 @section Release 1.6.0
203 @itemize
204 @item
205     @command{redo-affects} command appeared, that shows all targets that
206     will be affected by changing the specified ones.
207 @end itemize
208
209 @anchor{Release 1_5_0}
210 @section Release 1.5.0
211 @itemize
212 @item
213     @command{redo-ood}, @command{redo-sources} and
214     @command{redo-targets} can optionally take list of targets to apply
215     the command on, to narrow the result.
216 @item
217     @command{redo-sources} mistakenly missed @file{.do} files in the output.
218 @item
219     @command{redo-sources} now recursively searches for all source
220     files, not the "first" depth level ones.
221 @end itemize
222
223 @anchor{Release 1_4_1}
224 @section Release 1.4.1
225 @itemize
226 @item
227     Even more simpler statusline cleaning function.
228 @end itemize
229
230 @anchor{Release 1_4_0}
231 @section Release 1.4.0
232 @itemize
233 @item
234     Fixed proper @option{-xx} and @env{$REDO_TRACE} workability, that
235     previously was not applied to all targets.
236 @item
237     Simpler statusline cleaning function, does not leading to whitespace
238     junk after long lines.
239 @item
240     Updated dependant libraries.
241 @end itemize
242
243 @anchor{Release 1_3_0}
244 @section Release 1.3.0
245 @itemize
246 @item
247     Experimental @command{redo-sources}, @command{redo-targets} and
248     @command{redo-ood} commands.
249 @item
250     Repetitive OOD determination optimization: pass all already known to
251     be OOD targets to redoing targets.
252 @end itemize
253
254 @anchor{Release 1_2_0}
255 @section Release 1.2.0
256 @itemize
257 @item
258     Dependency files @file{.dep} extension changed to @file{.rec}, to
259     reflect its recfile format nature and editors file type better
260     determination.
261 @item
262     Reduce number of file descriptors kept open (1 instead of 4) while
263     waiting for job slot token.
264 @end itemize
265
266 @anchor{Release 1_1_0}
267 @section Release 1.1.0
268 @itemize
269 @item
270     @command{redo-cleanup} has @option{-dry-run} option.
271 @end itemize
272
273 @anchor{Release 1_0_0}
274 @section Release 1.0.0
275 @itemize
276 @item
277     @code{Size} is stored in the state, for faster OOD detection.
278     Previous @command{goredo} state files won't work.
279 @item
280     Setting of @env{$REDO_INODE_NO_TRUST} environment variable brings no
281     trust to file inode's information (except for its size), forcing its
282     checksum checking.
283 @item
284     @command{redo-whichdo} resembles @code{apenwarr/redo}'s one behaviour more.
285 @end itemize
286
287 @anchor{Release 0_12_3}
288 @section Release 0.12.3
289 @itemize
290 @item
291     Use an updated @code{lukechampine.com/blake3} with possibly working
292     arm64 macOS fix.
293 @end itemize
294
295 @anchor{Release 0_12_2}
296 @section Release 0.12.2
297 @itemize
298 @item
299     Try to fix failing @code{lukechampine.com/blake3} on arm64 macOS.
300 @item
301     Fixed tests permissions in the tarball.
302 @end itemize
303
304 @anchor{Release 0_12_1}
305 @section Release 0.12.1
306 @itemize
307 @item
308     Tarball uses @file{vendor} directory without @env{$GOPATH}
309     overriding. @command{goredo} and its dependencies anyway uses Go
310     1.12+ versions, that have @file{vendor}-ing support.
311 @end itemize
312
313 @anchor{Release 0_12_0}
314 @section Release 0.12.0
315 @itemize
316 @item
317     Do not forget to save even output-less target as a dependency.
318 @item
319     @option{-debug} option renamed to shorter @option{-d}.
320 @end itemize
321
322 @anchor{Release 0_11_0}
323 @section Release 0.11.0
324 @itemize
325 @item
326     Previously @env{$REDO_JOBS} overrided even explicitly specified
327     @option{-j} option. Fix that behaviour -- command line options must
328     precede environment variables.
329 @item @url{https://github.com/BLAKE3-team/BLAKE3, BLAKE3} replaces
330     BLAKE2b hashing algorithm for even better performance.
331 @end itemize
332
333 @anchor{Release 0_10_0}
334 @section Release 0.10.0
335 @itemize
336 @item Initial tarballed release.
337 @end itemize