docs: add [all] extra and document ilspycmd as external prerequisite - #150
Merged
Conversation
ilspycmd is ILSpy's .NET global tool (dotnet tool install -g ilspycmd), not a PyPI package -- it cannot be expressed as a pip dependency, and adding it to optional-dependencies would break `pip install agentdecompile[all]` for everyone (confirmed: pip/uv cannot resolve it under any name). Added an [all] extra bundling the real pip-installable optional features (currently `semantic`) and documented ilspycmd installation separately in the README as an external prerequisite. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ros3797gzvmswnJudQ1Znk
4 tasks
Two pre-existing CI failures on master, discovered while verifying the
swkotor.exe autonomous recovery loop end-to-end:
- tests/test_rewrite_queue.py's two concurrency tests create
multiprocessing.Process with the default start method, which is "spawn"
on macOS (vs "fork" on Linux). Spawn re-imports the target function in a
fresh interpreter rather than reusing the parent's loaded image -- this
fails on macOS CI with ModuleNotFoundError ("tests" package not reliably
importable by the fresh interpreter) and, for a locally-nested function,
AttributeError (can't pickle a <locals> function at all). Reproduced
locally on Linux via an explicit spawn context to confirm the exact
failure class, then fixed by forcing multiprocessing.get_context("fork")
explicitly (available on both Linux and macOS, the only two CI
platforms) and moving the previously-nested _writer to module level as
defense in depth.
- source_parity_synthesize.py: removed an unused `.state.now` import
(ruff F401), unrelated pre-existing dead import blocking the lint step.
601 unit tests pass; ruff clean.
Co-authored-by: Copilot <th3w1zard1@users.noreply.github.com>
bodencrouch
pushed a commit
that referenced
this pull request
Jul 30, 2026
# Conflicts: # pyproject.toml # tests/test_rewrite_queue.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ilspycmd(ILSpy's .NET/IL decompiler CLI) is a .NET global tool, not a PyPI package — confirmed viapip index versions ilspycmd(and plausible wrapper-package names), all resolve to "No matching distribution found."[project.optional-dependencies]would makepip install agentdecompile[all]fail dependency resolution for everyone, regardless of extras grouping.[all]extra bundling pip-installable optional features (currently justsemantic), and documenteddotnet tool install -g ilspycmdseparately in the README as an external prerequisite for .NET/IL decompilation.Test plan
uv pip install --dry-run -e ".[all]"resolves cleanlyilspycmdreference exists anywhere else in the codebase (grepped) — this is packaging/documentation only, not wiring up an existing integration🤖 Generated with Claude Code
https://claude.ai/code/session_01Ros3797gzvmswnJudQ1Znk