From: Sergey Matveev Date: Tue, 24 Nov 2020 13:22:21 +0000 (+0300) Subject: Updated README X-Git-Tag: v0.2.0^0 X-Git-Url: http://www.git.cypherpunks.ru/?p=goredo.git;a=commitdiff_plain;h=d3e2eb3b4a6461c9ab10bc326a5fff4d42f84a03 Updated README --- diff --git a/README b/README index d7149f1..10d87c1 100644 --- a/README +++ b/README @@ -27,12 +27,12 @@ or: > < NOTES *goredo-notes* -* "all" target is used by default +* "all" target is default * stdout is always captured, but no target is created if it was empty * empty targets are considered always out of date -* .do's arguments are relative paths +* .do's $3 is relative path to the file in same directory * .do search goes up to / by default, but can be limited with either - REDO_TOP_DIR environment variable, or by having .redo/top file in it + $REDO_TOP_DIR environment variable, or by having .redo/top file in it * target's completion messages are written after they finish * executable .do is run as is, non-executable is run with /bin/sh -e[x] * tracing (-x) can be done only for non-executable .do @@ -53,7 +53,7 @@ FEATURES *goredo-features* * verbose debug messages, including out-of-date determination, PIDs, lock and jobserver acquirings/releases * displaying of each target's execution time -* each target's stderr can be displayed with the PID +* each target's stderr can be prefixed with the PID * optional statusline with currently running/waiting/done jobs * target's stderr can be stored on the disk with TAI64N timestamp prefixes for each line. To convert them to localtime you can use either @@ -63,11 +63,11 @@ FEATURES *goredo-features* < COMMANDS *goredo-commands* -* redo-ifchange, redo-ifcreate, redo-always (useful with redo-stamp) -* redo -- same as redo-ifchange, but forcefully and *sequentially* run +* redo-ifchange, redo-ifcreate, redo-always +* redo -- same as redo-ifchange, but forcefully and sequentially run specified targets * redo-log -- display TAI64N timestamped last stderr of the target -* redo-stamp -- record stamp dependency. Nothing more, just dummy +* redo-stamp -- record stamp dependency. Nothing more, dummy * redo-cleanup -- removes either temporary, log files, or everything related to goredo * redo-whichdo -- .do search paths for specified target (similar to @@ -87,7 +87,7 @@ COMMANDS *goredo-commands* ../default.o.do * redo-dot -- dependency DOT graph generator. For example to visualize your dependencies with GraphViz: > - $ redo target [...] # to assure that .redo is filled up + $ redo target [...] # to assure that **/.redo/*.dep are filled up $ redo-dot target [...] > whatever.dot $ dot -Tpng whatever.dot > whatever.png # possibly add -Gsplines=ortho < @@ -96,24 +96,24 @@ FAQ *goredo-faq* Hashing and stamping~ All targets are checksummed if their ctime differs from the previous -ones. apenwarr/redo gives many reasons why every time checksumming is -bad, but in my opinion in practice all of his reasons do not apply. +one. apenwarr/redo gives many reasons why every time checksumming is +bad, but in my opinion in practice all of them do not apply. * Aggregate targets and willing to be out-of-date ones just must not produce empty output files. apenwarr/*, redo-c and goredo implementations consider non existing file as an out-of-date target -* If you really wish to produce an empty target file, just: touch $3 +* If you really wish to produce an empty target file, just touch $3 DJB's proposal with both stdout and $3 gives that ability to control your desired behaviour. Those who does not capture stdout -- failed. Those who creates an empty file if no stdout was written -- failed. -redo is a tool for helping people. Literally all targets can be safely +redo is a tool to help people. Literally all targets can be safely "redo-stamp < $3"-ed, reducing false positive out-of-dates. Of course, -with the correct working with stdout/$3 and placing necessary results in -$3, instead of just silently feeding them in redo-stamp. +with the correct stdout/$3 working and placing necessary results in $3, +instead of just silently feeding them in redo-stamp. -redo implementations are already automatically records -ifchange on .do +redo implementations are already automatically record -ifchange on .do files and -ifcreate on non-existing .do files. So why they can not record redo-stamp the same way implicitly? No, Zen of Python does not applicable there, because -ifchange/-ifcreate contradict it already. @@ -136,11 +136,20 @@ deal with it, probably it was just his inaccuracy mistake. If you really want to get rid of that dependency knowledge for foo/bar target, then just remove foo/.redo/bar.dep. + Troubles with go get installation?~ + +Because either your OS, or golang.org's proxies have no trust to +go.cypherpunks.ru's CA? Try setting GOPRIVATE=go.cypherpunks.ru/goredo +environment variable to skip sum.golang.org and proxy.golang.org usage. +Clone repository manually and verify its signed tag. There is no way to +disable forced TLS usage and no way to be sure that everyone uses same +trust anchors. + STATE *goredo-state* Dependency and build state is kept inside .redo subdirectory in each -directory touched related the build. Each corresponding target has its -own, recreated with every rebuild, .dep file. It is recfile +directory related the build. Each corresponding target has its own, +recreated with every rebuild, .dep file. It is recfile (https://www.gnu.org/software/recutils/), that could have various dependency information (dep.rec with the schema included): > @@ -159,6 +168,10 @@ dependency information (dep.rec with the schema included): > Type: stamp Hash: 5bbdf635932cb16b9127e69b6f3872577efed338f0a4ab6f2c7ca3df6ce50cc9 < +USAGE *goredo-usage* + +Run any of the command above with the -help. + LICENCE~ This program is free software: you can redistribute it and/or modify