redo-0.42 is released

69 views
Skip to first unread message

Avery Pennarun

unread,
Jul 24, 2019, 3:43:26 AM7/24/19
to redo
Hi all,

After a bit of delay (I'm starting a startup again... :)) I've finally
tagged redo-0.42, which is mostly bugfixes and additional docs since
0.41. People have been running almost exactly this code from master
for a long time, so I believe it's very stable. I recommend everyone
using 0.41 to upgrade soon.

Most of the changes are portability fixes to non-Linux OSes, which are
apparently getting more popular lately among redo users.

Also of interest is that 'redo -x' and 'redo -v' now only apply to the
toplevel redo target you're running. That is, if you 'redo -x all',
it'll run only all.do in -x mode, not all the things that all.do
calls. This makes it less crazy to debug very deep hierarchies. If you
want -x to apply recursively, just pass it twice: 'redo -xx all'.

This is the first version of redo to include the new 'redoconf'
library, which you can use instead of autoconf for detecting your
build environment and compiling (mostly C/C++) programs. It was
previously announced on this mailing list, and there's a tutorial for
it here: https://redo.readthedocs.io/en/latest/cookbook/redoconf-simple/

You can expect redoconf to evolve incompatibly over time; however, the
idea (like with autoconf) is to completely copy it into your project
when you use it. Old redoconf versions should continue to work
forever, because the redo API is intended to be backward compatible
forever. You can upgrade redoconf in your project in the future,
adjust your build system to compensate for any changes, and release it
safely to all your users.

Comments are always welcome!


Eric Anderson (1):
cookbook/container: add missing PS1 to sh example

Martin Mosegaard Amdisen (1):
cookbook/container: minor proofreading

Michael Raitza (1):
Fix builder: Reinstate stderr instead of opening /dev/tty

Avery Pennarun (54):
mkdocs: enforce sufficiently new version, and use mkdocs-exclude.
cookbook/container: example of building+running docker containers.
cookbook/container: remove unexplained "exec >&2" lines.
cookbook/container: skip on missing cpio and missing kvm kernel image.
cookbook/container: some minor clarifications.
Better handling if parent closes REDO_CHEATFDS or MAKEFLAGS fds.
docs/cookbook/container: don't delete *.out and *.code during build.
mkdocs: include additional hljs languages.
cookbook/container/kvm: better handling of \r\n line endings.
mkdocs: exclude more generated files from cookbook/container.
Merge remote-tracking branch 'origin/master'
mkdocs: exclude more generated file types.
Experimental new redoconf C/C++ build/autoconfiguration system.
redoconf: avoid sed -E in _objlist().
redoconf: clock_gettime() detection needs to depend on -lrt.
redoconf: better handling of required vs optional detectors.
redoconf: posix.rc: fix abort when timespec is not available.
Fix some build problems on MacOS X.
minimal/do: remove dependency on 'seq' command.
Precompiled headers: supply "-x c-header" or "-x c++-header" if available.
docs/cookbook/c/allconfig.do: avoid need for '&' backgrounding.
mkdocs: don't bother to include cookbook/c/out.*/ dirs.
redoconf: move -Wl,-rpath flags to shlib.rc and add -Wl,-z,origin.
minimal/do: remove dependency on 'seq' command.
Certain redo post-build failures would still mark a target as built.
Overridden files were accidentally getting reclassified as static.
If redo searched all the way up to /default.do, it would run
./default.do instead.
Explicitly reject target/source filenames with newlines in them.
redo-ifchange regression: if REDO_LOG is not set, assume it's 1.
builder.py: atomically replace the log for a given target.
Merge branch 'master' into redoconf
redoconf: assorted minor fixes.
redoconf: a stub rc_include() now sources ./redoconf.rc automatically.
Merge branch 'redoconf'
logs.py: don't print (unchanged) lines with --no-log unless DEBUG.
Change -x/-v to only affect top-level targets by default, not recursively.
redo-log: sometimes print a (resumed) line after ending a level
of recursion.
Minor clarifications to redo install instructions.
shelltest.od: warning 84 (W84) triggered on *all* shells, not just posh.
Work around ancient shells where >$3 does not implicitly quote $3.
docs/cookbook/container: update docker image builder.
docs/cookbook/redoconf-simple: a simple redoconf C++ project.
builder.py: create temp log file in the same directory as the final one.
Unset CDPATH if it is set.
redo-log: "(resumed)" lines didn't print as often as they should.
Fix minor pylint warnings.
redoconf/configure.sh: use "cmp -s" to silence output.
cookbook/container/default.sha256.do: use explicit close_fds=False.
Fix more problems with "/usr/bin/env python" picking python3.
Merge remote-tracking branch 'origin/experimental/dockrepo'
Oops, redo/whichpython.do would fail if python2.7 didn't exist.
Disable docker container test from toplevel 'redo test'
t/103-unicode: workaround unicode normalization on newer macOS.
t/shelltest.od: Add a new preliminary test for IFS= behaviour.

Have fun,

Avery
Reply all
Reply to author
Forward
0 new messages