Make apenwarr/redo installable on windows and work with uv tool install
WSL (Windows Services for Linux) provides a Linux-kernel-compatible ABI
for userspace processes, but the current version doesn't not implement
fcntl() locks at all; it just always returns success. See
https://github.com/Microsoft/WSL/issues/1927.
This causes us three kinds of problem:
1. sqlite3 in WAL mode gives "OperationalError: locking protocol".
1b. Other sqlite3 journal modes also don't work when used by
multiple processes.
2. redo parallelism doesn't work, because we can't prevent the same
target from being build several times simultaneously.
3. "redo-log -f" doesn't work, since it can't tell whether the log
file it's tailing is "done" or not.
To fix #1, we switch the sqlite3 journal back to PERSIST instead of
WAL. We originally changed to WAL in commit
|
||
|---|---|---|
| bin | ||
| contrib/bash_completion.d | ||
| docs | ||
| minimal | ||
| redo | ||
| t | ||
| .gitignore | ||
| .pylintrc | ||
| all.do | ||
| clean.do | ||
| do | ||
| install.do | ||
| LICENSE | ||
| Makefile | ||
| MANIFEST.in | ||
| mkdocs.yml | ||
| README.md | ||
| setup.py | ||
| test.do | ||
redo - a recursive build system
Smaller, easier, more powerful, and more reliable than make.
This is an implementation of Daniel J. Bernstein's redo build system. He never released his version, so other people have implemented different variants based on his published specification.
This version, sometimes called apenwarr/redo, is probably the most advanced one, including parallel builds, improved logging, extensive automated tests, and helpful debugging features.
To build and test redo, run ./do -j10 test. To install it, run
DESTDIR=/tmp/testinstall PREFIX=/usr/local ./do -j10 install.
- View the documentation via readthedocs.org
- Visit the source code on github
- Discussions and support via the
mailing list (archives).
You can subscribe by sending any email message to
redo-list+subscribe@googlegroups.com(note the plus sign).