Skip to content

Releases: Farama-Foundation/PettingZoo

PettingZoo 1.24.3

18 Jan 17:37
ba8dbe9
Compare
Choose a tag to compare

PettingZoo 1.24.3 Release Notes:

This is a minor release with some minor bugfixes, improvements, documentation updates. Most notably, we have added a state function to the multiwalker env, and fixed a bug causing wrappers to clear custom attributes from underlying environments, see #1140 for more information.

We have also added a dictionary, mapping from env name to env modules for each environment type, accessible as follows: from pettingzoo.mpe import mpe_environments. These mapping are combined to make a list of all environments: from pettingzoo.utils.all_modules import all_environments, both mappings containing keys such as mpe/simple_adversary_v3. For more information, see #1155

New Features and Improvements

  • feature/provide access to wrapped attr (#1140)
  • Adding state function to multiwalker (#1149)
  • Add mappings from env name to env module (e.g., mpe_environments) in addition to all_environments (#1155)

Bug Fixes

  • Fix ray requirements for tutorial (#1139)
  • Fix MPE SimpleEnv continuous actions to move in the same direction as discrete case (#1144)

Documentation Updates

  • Add MATS Gym to 3rd party env list (#1152)
  • Fix the comments for check_for_winner (#1148)
  • Include AgileRL tutorials in tutorials list in README.md (#1137)
  • Added single quotes around pip install arguments with square brackets (#1153)
  • Add single quotes around all pip install extras (#1154)

Contributors

This release includes contributions from: @elliottower, @ffelten, @axelbr, @shahofblah, @helpingstar and @nicku-a

Many thanks to our contributors, as well as many past contributors who have made this possible. We would also like to thank everyone who has helped out with bug reports or feature suggestions, which are critical to our development. We are always welcoming new contributors, if you are interested please join our Discord server at https://discord.gg/nhvKkYa6qX

Full Changelog: 1.24.2...1.24.3

PettingZoo 1.24.2

16 Nov 15:12
a8fea61
Compare
Choose a tag to compare

PettingZoo 1.24.2 Release Notes:

This release includes three new tutorials from AgileRL, as well as a number of bugfixes, testing improvements, and documentation updates.

New Features and Improvements

  • AgileRL tutorials: MATD3, MADDPG, and DQN self-play/curriculum learning (#1086, #1124, #1128)
    • These are now our most highly performant and actively maintained tutorials, visit the AgileRL discord questions/troubleshooting
  • Add multi-episode wrapper for AEC and parallel envs (#1105)
    • This can be used for example, for evaluating the results of multiple rounds of Texas Hold'em Poker, rather than a single hand

Bug Fixes

  • Check parallel_seed_test for all envs, fix seed_test to actually use num_cycles arg (#1088)
  • Fix hanabi not rendering on env.step(), clean up code (#1087)
  • Clean up parallel_api_test (#1095)
  • Update CONTRIBUTING.md to include testing requirements (#1097)
  • Update parallel_test.py to support Ray RLLib MultiAgentEnv (#1096)
  • Bugfixes for RLCard environments: render fps, black screen flashing (#1103)
  • Allow parallel envs to have other optional keys in info/obs dicts (e.g., "common") (#1110)
  • Dead variable removal + macOS pygame fix (#1107)
  • Update Ray tutorials to RLlib 2.7.0 by (#1112)
  • Change AEC last() to assert agent is not None, accounting for non-string AgentID's (#1120)
  • Fix typo simple_reference docstring, fix workflows to use python 3.11 by default (#1128)
  • Fix minor bug in TerminateIllegal wrapper indexing empty info dict (#1129)
  • Fix a rendering bug of MPE environment by (#1130)
  • Fix agent indexing bug in SB3 tutorials (#1133)
  • Fix seed test to work with action_mask in info, add tests to ensure info action masking works (#1134)
  • Fix bug with generated_agents custom AgentID tests (#1135)

Documentation Updates

  • Update documentation testing (#1089, #1090)
  • Fix broken documentation links (#1092)
  • Fix typo in environment creation docs (#1116)

Contributors

This release includes contributions from: @elliottower, @nicku-a, @mikepratt1, @xixinzhang, @umutucak, @jjshoots, @chrisyeh96, @Fernadoo, and @Kchour

Many thanks to our contributors, as well as many past contributors who have made this possible. We would also like to thank everyone who has helped out with bug reports or feature suggestions, which are critical to our development. We are always welcoming new contributors, if you are interested please join our Discord server at https://discord.gg/nhvKkYa6qX

Full Changelog: 1.24.1...1.24.2

PettingZoo 1.24.1

04 Sep 05:17
e5f03f7
Compare
Choose a tag to compare

PettingZoo 1.24.1 Release Notes:

This is a hotfix release to fix compatibility issues with Shimmy, due to an unintentional typevar deletion.

Other changes include: minor fixes to the knights_archers_zombies environment, improved CI testing (including using pytest-xdist to utilize parallelization), and new documentation testing using pytest-markdown-docs, ensuring that every codeblock in our documentation runs successfully--including environment usage scripts.

Environment creation documentation has also improved and made more beginner-friendly. The Environment Creation Tutorial has also been renamed to Custom Environment Tutorial, to avoid confusion with the Getting Started section's Environment Creation page.

Bug Fixes

  • Add back ObsDict and ActionDict to env.py (#1077)
    • These definitions were mistakenly removed in the previous release, apologies for the inconveniences
  • Fix rendering FPS and manual control script for knights_archers_zombies (#1080)
  • Clean up duplicated python tests, add additional parameter combination tests (#1074)

Documentation Updates

  • Add doctesting for all codeblocks in documentation, including usage scripts (#1083)
  • Update environment creation tutorials (#1082, #1084)

Full Changelog: 1.24.0...1.24.1

PettingZoo 1.24.0

22 Aug 16:12
ab6e543
Compare
Choose a tag to compare

PettingZoo 1.24.0 Release Notes:

This release includes support for Python 3.11, many updates to Classic environments (including updated Chess and Hanabi environment versions, and rendering for all RLCard envs), and many bugfixes, testing expansion, documentation updates.

We are also excited to announce 3 tutorials for Stable-Baselines3, updated RLlib tutorials (#1051), and an updated CleanRL multi-agent Atari tutorial including WandB and TensorBoard integration.

Co-released in order to make this release possible are SuperSuit 3.9.0 and Shimmy 1.2.0, fixing Stable-Baselines3 and OpenSpiel compatibility, respectively.

Breaking Changes

  • Python 3.7 is no longer supported, as it has reached end-of-life (link)
  • We have deprecated chess_v5 in favor of updated chess_v6
  • We have deprecated hanabi_v4 in favor of hanabi_v5

New Features and Improvements

  • Python 3.11 support (#1029)
  • Permit AgentIDs other than str (#1071)
    • It is now acceptable to use other types such as integers as AgentIDs
  • Add Stable-Baselines3 tutorial (#1015, #1017), with examples for:
  • Add updated CleanRL multi-agent Atari example (#1033)
    • Adapted to work with Gymnasium and current PettingZoo/SuperSuit
    • Full training script with CLI/logging and integration with WandB and TensorBoard
  • Update Chess to v6:
    • Add checks for insufficient material, 50-moves and 3-fold repetition (#997)
    • Fix to white perspective, fix observation bug, add documentation (#1004)
    • En passant represenation (see docstring) has been made consistent with Leela Chess Zero (#1004)
    • Update python-chess version from 1.7.0 to 1.9.4 (#1026)
  • Update Hanabi to v5:
    • Now depends on Shimmy's OpenSpielCompatibility wrapper (#948)
    • OpenSpiel is better tested, superior performance due to C++ implementation, and removes dependency on unmaintained Hanabi Learning Environment
    • First update in over 2 years, fixed a large number of issues and brought up to current code standards
  • Add rendering for Gin Rummy, Leduc Holdem, and Tic-Tac-Toe (#1054)
  • Adapt AssertOutOfBounds wrapper to work with all environments, rather than discrete only (#1046)
  • Add additional pre-commit hooks, doctests to match Gymnasium (#1012)

Bug Fixes

  • Fix Pistonball to only render if render_mode is not None (#1014)
  • Fix Connect Four not switching to next agent after termination (#1020)
  • Fix classic environments screen sizes, add type hints, fix pre-commit (#998)
  • Fix all environments to render at correct FPS, clean up pygame code (#999)
  • Fix SuperSuit integration for SB3 tutorials (#1031)
  • Update CleanRL tutorial requirements to most recent SuperSuit/PettingZoo versions (#1019)
  • Update RLlib tutorial requirements to most recent SuperSuit/PettingZoo versions by (#1018)
  • Fix typo in Waterworld documentation (#1058)

Documentation Updates

Contributors

This release includes contributions from: @elliottower, @DmytroIvasiuk, @jacob975, @dylwil3, @Jammf, @Bamboofungus, @BertrandDecoster, @murtazarang and @pimpale.

Many thanks to our contributors, as well as many past contributors who have made this possible. We would also like to thank everyone who has helped out with bug reports or feature suggestions, which are critical to our development. We are always welcoming new contributors, if you are interested please join our Discord server at https://discord.gg/nhvKkYa6qX

Full Changelog: 1.23.1...1.24.0

PettingZoo 1.23.1

24 May 00:36
d187345
Compare
Choose a tag to compare

PettingZoo 1.23.1 Release Notes:

This release is a small hotfix to fix compatibility issues with Shimmy and other small bugs.

Bug Fixes:

  • Fix bug in API test test_action_flexibility() (#986)
    • Fixes tests for Shimmy's OpenSpiel wrapper
  • Remove ParrellEnv.seed() (#987)
  • Update RLlib requirements (#992)

Documentation Updates:

  • Add info about aec and parallel APIs to homepage (#985)
  • Create CITATION.cff (#990)
  • Added Carla gym to third_party_envs.md (#991)

Full Changelog: 1.23.0...1.23.1

PettingZoo 1.23.0

15 May 19:38
bb9625f
Compare
Choose a tag to compare

PettingZoo 1.23.0 Release Notes:

This release finishes the process of standardizing the PettingZoo API to fully match Gymnasium. The deprecated env.seed() method has been removed in favor of env.reset(seed=seed), and the return_info argument from reset() has been removed—info is now always returned on reset.

New features include full support for serialization using Pickle, and updated testing: pickle tests, improved API test, and re-written seed test (matching Gymnasium). The library has also been updated to use pyproject.toml, to make installation more consistent and reliable, and to comply with PEP 621 standards.

This release includes significant documentation updates: full installation and usage examples for each environment type (Atari, Butterfly, Classic, MPE, SISL), 9+ new third-party-environments, new action masking documentation, new LangChain tutorial, updated CleanRL, Tianshou, and RLlib tutorials, and more.

Breaking Changes:

To ensure full consistency between the PettingZoo and Gymnasium API’s, the following changes have been made:

The deprecated environment seed() method has been fully removed.

  • To seed an environment, call env.reset(seed=0)

The return_info argument has been removed from the reset() function.

  • Calls toreset() will now always return observation and info.

New Features and Improvements

  • Action masking is now supported using either observation[action_mask] or info[action_mask], with documentation and examples (#953)
  • Replace setup.py with pyproject.toml (#875)
  • Remove return_info argument from reset() (#890)
  • Add type hinting for utils and base environments (#964)
  • Add aec_wrapper_fn to match parallel_wrapper_fn (#879)
  • Update SISL Waterworld environment to increase maximum acceleration, for smoother behavior (#882)
  • Update MPE simple_spread agent reward (#894), update all MPE envs to update position before velocity, matching the original paper (#970)

Bug Fixes:

  • Rename BaseParallelWraper to BaseParallelWrapper (fixed typo) (#876, #908)
  • Removed casting actions to int in parallel_to_aec conversion (#975)
  • Fix broken Tianshou tutorial and update dependencies (#980)
  • Fix an issue where MPE envs would render black screen when using the rgb_array mode (#874)
  • Fix failing CI tests in GitHub workflows (#886)
  • Fix minor linting issues with pre-commit hooks (#835)
  • Resolve a large number of pytest warnings (#897)
  • Remove unnecessary lines in MPE code (#891)
  • Update Tianshou and CleanRL tutorials to work with the new API changes (#984)

Documentation Updates:

  • Add full installation and usage examples for each environment type (#906)
  • Update Third-Party Environments with two new custom board game environments (gobblet-rl and cathedral-rl) (#907)
  • Add full documentation for wrappers (including Shimmy compatibility wrappers) (#904, #942)
  • Add LangChain tutorial (#979)
  • Updated EnvironmentCreation tutorial (#903, #972)
  • Updated Tianshou Tutorial (#980)
  • Update README with getting started information (#950)
  • Add installation instructions to Getting Started documentation page (#968)
  • Update docs contributing README (#883)
  • Update homepage to include video demonstrating environments, cleanup homepage text, add logo (#954, #960)

Full Changelog: 1.22.3...1.23.0

1.22.4

20 Mar 14:50
c90ada3
Compare
Choose a tag to compare

This release has been yanked due to breaking API changes. We are working hard to address this in the next release.

What's Changed

Bug Fixes:

Documentation Updates:

Full Changelog: 1.22.3...1.22.4

1.22.3

28 Dec 01:04
bbf00cc
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.22.2...1.22.3

1.22.2

11 Nov 19:29
d5bf681
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.22.1...1.22.2

1.22.1

25 Oct 15:53
5ce6dc3
Compare
Choose a tag to compare

What's Changed

Full Changelog: 1.22.0...1.22.1