v1.0 Release notes
In this release, we fully integrated MiniWoB++ with Gymnasium, which provides a standardized API for reinforcement learning. All MiniWoB++ environments can be easily instantiated using gymnasium.make
and can be transformed via wrappers. The observations and actions are now fully typed and can likewise be transformed.
Additionally, we expanded the set of possible actions on web pages to include mouse dragging, scrolling, and pressing key combinations. Many aspects of the action space, such as the allowed key combinations or scrolling duration, can be customized. Finally, we added 18 environments from the hidden test set.
Breaking Changes
The upgrade to Python 3 and integration with Gymnasium means that old code that uses MiniWoB++ is likely to break. We recommend updating the code as follows (see the Basic Usage page for an example):
- Update the code to Python 3.8+.
- Environment instantiation:
env = MiniWoBEnvironment('click-test-2')
→env = gymnasium.make('miniwob/click-test-2-v1')
- Running multiple instances in parallel is no longer supported. The observation returned by
env.reset()
andenv.step(action)
is now a single observation instead of a list. Similarly, theaction
argument inenv.step(action)
should be a single action. - The
env.reset(seed)
method now returns(observation, info)
instead of justobservation
. The observation is a Python dict defined by the observation space. - The
action
inenv.step(action)
should be a Python dict defined by the action space. Theenv.step(action)
method now returns(observation, reward, terminated, truncated, info)
, though the addedtruncated
is always False.
A less recommended option is to use the Legacy Release of MiniWoB++, which is written in Python 2.
New Features and Improvements
- Updated the code to Python 3.8+ and Selenium 4.5 (#7)
- Integrate the code with Gymnasium. This includes registering the environments and redefining the action and observation spaces (#12, #20, #43)
- Implemented more actions such as mouse dragging, scrolling, and pressing key combinations (#46)
- Added ActionSpaceConfig, which allows selecting a subset of allowed actions and configuring each action type (#25)
- Added presets for ActionSpaceConfig, which configure the action space following previous works on MiniWoB++ (#65)
- Added 18 environments from the hidden test set (#69)
- Added code standardization enforcement, including full type annotation (#9, #16)
- Added integration tests, including a check for seed determinism (#13, #18)
- Added the project to PyPI (#56, #61)
Bug Fixes
- Made the environments fully deterministic for a given random seed unless impossible (#18)
- Fixed issues with screenshots not being scaled correctly (#45)
- Renamed environments to reduce confusion: drag-item → drag-circle and drag-shape → drag-single-shape (#21, #69).
Documentation Updates
- Added a documentation site with guides on how to use the API and the description of each environment (#22, #23, #31, #47, #50).
- Updated README.md, LICENSE, and CONTRIBUTING.md (#2, #47, #50)
- Added templates for GitHub issues and pull requests (#8)
- Added logo and banner (#35)
- Added a project roadmap (#59)
Contributors
This release includes contributions from: @elliottower, @jjshoots, @jkterry1, @mgoulao, @ppasupat, @pseudo-rnd-thoughts, @rodrigodelazcano, @younik