microsoft / microsoft/agent-governance-toolkit
CONTRIBUTING's `pip install -e "agent-mesh[dev]"` cannot resolve: agent_hypervisor>=5.0.0 is not on PyPI
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 6.3k
- Forks
- 1.1k
- Avg merge
- 5d 11h
- Merged PRs (30d)
- 142
Description
Package
agent-mesh (agentmesh-platform), plus CONTRIBUTING.md
Description
CONTRIBUTING.md line 56 tells a new contributor to run:
pip install -e "agent-mesh[dev]"
That command cannot succeed outside CI. The dev extra pins agent_hypervisor>=5.0.0,<6.0, and PyPI tops out at the pre-consolidation 3.7.0:
ERROR: Could not find a version that satisfies the requirement
agent-hypervisor<6.0,>=5.0.0; extra == "dev" (from agentmesh-platform[dev])
(from versions: 2.0.0, ..., 3.6.0, 3.7.0)
ERROR: No matching distribution found for agent-hypervisor<6.0,>=5.0.0
CI already knows this and works around it. .github/workflows/ci.yml pre-installs the local stub before the dev extra runs, with a comment that explains the whole thing:
agent-mesh's dev extra pins agent_hypervisor>=5.0.0 (its ring tests exercise the hypervisor). PyPI tops out at the pre-consolidation 3.7.0 wheel, which ships real code that would collide with the
hypervisortop-level package force-included by -core. Satisfy the pin from the local dep-only stub so pip never falls back to PyPI
pip install --no-cache-dir --no-deps -e agent-governance-python/agent-hypervisor
So the knowledge exists. It lives in a comment inside a workflow file, which is not where somebody following CONTRIBUTING.md will look, and the documented command fails before they get that far.
The reason this is worth an issue rather than a note is the second-order failure. A contributor who hits the resolver error and reaches for the obvious fix makes things worse rather than better:
- relaxing the pin, or installing
agent-hypervisor==3.7.0from PyPI, installs real code into the top-levelhypervisorpackage that-coreforce-includes; - per the CI comment that is a collision, so the environment does not fail loudly at install time, it fails later and confusingly at import or test time;
- nothing in the error message points at any of this.
An install error that teaches you the wrong fix costs more than one that just stops.
Only agent-mesh is affected. I checked every pyproject.toml under agent-governance-python/ and it is the only package declaring a monorepo sibling at a version PyPI cannot satisfy. The neighbouring agentrust-trace>=0.5.1,<0.6.0 pin resolves fine.
Possible resolutions
Roughly in order of effort, and any one of them closes it:
- Document the ordering in
CONTRIBUTING.md. One line before theagent-mesh[dev]instruction, saying the localagent-hypervisorstub has to be installed first and why. Cheapest, and it puts the CI comment where contributors read. - A bootstrap target (
make dev-agent-mesh, or ascripts/entry) that performs the two steps in order, so the documented path is a command rather than a procedure. - Move the sibling pin out of the published
devextra, since it is a monorepo-internal build requirement rather than something a wheel consumer can resolve. Largest change and I have not thought through what it breaks for the ring tests, so I mention it only for completeness.
Happy to send the PR for (1), which is the option I would pick if it is not already on somebody's list.
How does this impact your work?
I maintain an open-source recorder that ingests AGT FileAuditSink output, and I was setting up a local environment to generate the test vectors in #3732. Losing the time is not the point. The point is that the wrong fix is more discoverable than the right one, so this is a trap for exactly the drive-by contributor the repo presumably wants.
Steps to Reproduce
- Clone the repository.
cd agent-governance-python/agent-meshpython -m venv .venv && .venv/bin/pip install -e ".[dev]"- Resolution fails on
agent_hypervisor>=5.0.0,<6.0. - Works if
pip install --no-deps -e ../agent-hypervisoris run first, which is what CI does.
Reproduced on Python 3.14 / Windows, though nothing about it looks platform specific.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the agent-mesh setup command around line 56 of CONTRIBUTING.md and compare it with the local stub installation and explanatory comment in .github/workflows/ci.yml. Confirm the contributor instructions avoid the unsatisfiable PyPI resolution and that a fresh environment can complete the documented setup without installing the conflicting PyPI package.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, developer-experience, documentation
- Issue type
- Bug
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100