Eris maintains an up-to-date set of reports for every file in a codebase.
Find a file
Andrew Hamilton ed6457a0f0 replace eris-worker subprocess with ProcessPoolExecutor; guard sweep generators against empty _entries
- Rewrite worker.py: each Worker uses a ProcessPoolExecutor(max_workers=1),
  tools run via loop.run_in_executor() in a forked OS subprocess
- Remove create_process(), main(), stdin/stdout IPC, os.killpg
- Remove eris-worker entry point from [project.scripts] in pyproject.toml
- Update tests/worker_test.py for new Worker API
- Guard _sweep_up/_sweep_down against IndexError when _entries is empty;
  keep cursor_position() try/except for stale y after row deletion
2026-07-30 11:35:12 +10:00
eris replace eris-worker subprocess with ProcessPoolExecutor; guard sweep generators against empty _entries 2026-07-30 11:35:12 +10:00
packaging fix package names for Fedora 44 and Arch; pin Dockerfile base images to current distro releases 2026-07-30 11:34:30 +10:00
tests replace eris-worker subprocess with ProcessPoolExecutor; guard sweep generators against empty _entries 2026-07-30 11:35:12 +10:00
.gitignore Update uv.lock version, gitignore build/ 2026-07-28 09:39:02 +10:00
.python-version add .python-version for uv python 3.14 auto-download 2026-07-28 11:36:21 +10:00
BUGS Update TODO and BUGS. 2021-12-15 08:58:45 +10:00
install Now using uv instead of pipx 2025-06-04 22:54:51 +10:00
LICENSE Update license. 2022-01-01 11:15:13 +10:00
pyproject.toml replace eris-worker subprocess with ProcessPoolExecutor; guard sweep generators against empty _entries 2026-07-30 11:35:12 +10:00
README.md convert indented code blocks to fenced for copy-to-clipboard 2026-07-28 12:22:24 +10:00
test-all packaging: Fix test-all after moving tests 2024-12-28 18:22:15 +10:00
TODO Update TODO and BUGS. 2021-12-15 08:58:45 +10:00
uv.lock regenerate uv.lock after lscolors dep fix (termstr inline git+ tag) 2026-07-29 09:21:01 +10:00

Eris Codebase Monitor

Summary

Eris maintains an up to date set of reports for every file in a codebase.

Installation

Debian / Ubuntu / Fedora / Arch / Alpine

Install uv first if you don't have it.

Use uv to install eris:

uv tool install --python 3.14 git+https://forgejo.tail556789.ts.net/ahamilton/eris@2026.7.28

Then use eris to install all the tools it uses:

eris --install-all-tools

Then to run:

eris
eris-webserver <project>  # Or a simple web interface.

Tools

File types(103) Tools(63)
.* contents • metadata • git_diff • git_blame • git_log
.py python_syntax • python_unittests • pytest • pydoc • mypy • python_coverage • pycodestyle • pyflakes • pylint • python_gut • python_mccabe • bandit • black • isort
.pl .pm .t perl_syntax • perldoc
.p6 .pm6 perl6_syntax
.pod .pod6 perldoc
.c .h c_syntax_gcc • cppcheck
.cc .cpp .hpp cpp_syntax_gcc • cppcheck
.rb ruby_syntax • rubocop
.rs rustfmt • clippy
.lua lua_syntax • lua_check
.js .ts js_syntax • typescript_check
.php php8_syntax
.go go_vet • godoc
.bash .sh .dash .ksh shellcheck
.wat wat_syntax_check
.wasm wasm_validate • wasm_objdump
.pdf pdf2txt
.html .htm html_syntax • html2text • elinks
.yaml .yml yamllint
.md .epub .docx .odt .rst pandoc
.zip .jar .apk .egg .whl zipinfo
.tar.gz .tgz tar_gz
.tar.bz2 tar_bz2
.7z 7z
.xz unxz
.a ar • nm
.o objdump_headers • objdump_disassemble • readelf
.so nm
.deb dpkg_contents • dpkg_info
.rpm rpm
.png .jpg .jpeg .gif .bmp .tif .tiff .tga .ico .xpm mediainfo • pil
.svg .svgz cairosvg
.mkv .mka .mks .ogg .ogm .avi .wav .mpeg .mpg .vob .mp4 .mpgv .mpv .m1v .m2v .mp2 .mp3 .asf .wma .wmv .qt .mov .rm .rmvb .ra .ifo .ac3 .dts .aac .flac .aiff .aifc .au .iff .flv .srt .ssa .ass .sami mediainfo
.iso isoinfo