Repository navigation
feat(openenv)!: make OpenEnv an optional extra with no version cap - #342
Merged
Merged
Conversation
OpenEnv ships a minor release a week, so a two-minor cap expires every two weeks and holds every install of the framework to an old OpenEnv. openenv moves from the core dependencies to an `openenv` extra with a floor and no cap, as verifiers declares it, and a weekly workflow runs the OpenEnv tests against the floor, OpenEnv's latest release and its main branch. agent_env.openenv without the extra names it, and a plain install no longer pulls OpenEnv's 55 packages (gradio, pandas, numpy). BREAKING CHANGE: agent_env.openenv needs `pip install 'agentenv-framework[openenv]'`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The explorer (agent-env up) imports fastapi, which core had only through openenv since the explorer extra was retired; with openenv optional, a plain install could no longer import it. fastapi joins the core dependencies at the explorer extra's old floor, and a test imports the explorer with every extra's own modules blocked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep it simple: the normal jobs test the OpenEnv that uv.lock pins, and a break a new OpenEnv release brings is fixed when it's found. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # uv.lock
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
OpenEnv becomes an optional extra,
agentenv-framework[openenv], with a floor and no cap. The normal jobs keep testing the OpenEnv thatuv.lockpins, Dependabot's weekly lock update brings new OpenEnv releases through them, and a break a release brings is fixed when it's found.Why:
openenv>=0.9,<0.11would expire with 0.11, likely this week.openenv importboth live on OpenEnv's current releases.openenv>=0.4.1, no cap.agent_env.openenvimports OpenEnv.Changes
pyproject.toml:openenvleaves the core dependencies for anopenenvextra,openenv>=0.9with no cap, anddevinstalls the extra.uv.lockkeeps openenv 0.10.0.fastapibecomes a core dependency (>=0.110, the retiredexplorerextra's floor). The explorer (agent-env up) imports it, and since feat(openenv): serve every bundle task as an OpenEnv env #230 retired that extra, core had it only through openenv.agent_env.openenv: without the extra, importing it raisesImportError: agent_env.openenv requires pip install 'agentenv-framework[openenv]', as thesmolprovider does for its extra.tst/unit/test_optional_extras_stay_optional.pynow also checks that importingagent_env.openenvwithout the extra names the extra, and that the explorer imports with every extra's own modules blocked. Without thefastapiline, that second test fails withNo module named 'fastapi'. The OpenEnv server joins the not-core modules there, beside the Sail and Smol providers. A package whose__init__needs its extra no longer counts as a core import failure while the walker lists modules.openenv/row describes the extra, andTHIRD_PARTY_NOTICES.mdnames theopenenvextra. Its 196 entries are unchanged, and they matchuv exportwith the named extras exactly.Breaking:
agent_env.openenvnow needspip install 'agentenv-framework[openenv]'. A plain install no longer pulls OpenEnv's 55 packages (gradio, pandas, numpy and others); measured, a fresh venv is 232 MB without the extra and 441 MB with it.Test plan
pytest tst/unit packages/agentenv-protocol/tests: 10802 passed, 64 skipped.tst/unit/openenvagainst openenv 0.9.0 (the floor), 0.10.0 (the latest release) andmain(0.10.1.dev0): 27 passed each time.tst/unit/test_runtime_dependencies_are_imported.pyandtst/unit/test_optional_extras_stay_optional.py: 41 passed.agent-env --helpworks, andimport agent_env.openenvnames the extra. The venv is 232 MB.[openenv]:build_appimports, with openenv 0.10.0.ruff check.tst/unit/openenvandtst/integration/openenvagainst openenv 0.9.0 (the floor), 0.10.0 andmain(0.10.1.dev0) passed 34 of 34 each. The workflow that ran them was then dropped to keep CI simple.🤖 Generated with Claude Code


Confidence Score: 5/5
The PR appears safe to merge, with the documented requirement to install the `openenv` extra.Summary
OpenEnv moves from a required dependency to the
openenvextra.No actionable new issues were found. The review used the full PR diff because the previous and current heads have different merge bases with the target commit. No previous review threads were supplied. Tests were not run during this review.
Reviews (3) · Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." · Reviewed by Greptile