Add release notes page (#229)

This commit is contained in:
Mark Towers
2023-01-04 14:41:49 +00:00
committed by GitHub
parent 5d67eae4fb
commit 3469068c6d
22 changed files with 640 additions and 4 deletions

View File

@@ -29,9 +29,9 @@ title: Functional
## gymnasium.experimental.func2env.FunctionalJaxCompatibilityEnv
```{eval-rst}
.. autoclass:: gymasnium.experimental.func2env.FunctionalJaxCompatibilityEnv
.. autoclass:: gymnasium.experimental.func_jax_env.FunctionalJaxEnv
.. autofunction:: gymasnium.experimental.func2env.FunctionalJaxCompatibilityEnv.reset
.. autofunction:: gymasnium.experimental.func2env.FunctionalJaxCompatibilityEnv.step
.. autofunction:: gymasnium.experimental.func2env.FunctionalJaxCompatibilityEnv.render
.. autofunction:: gymnasium.experimental.func_jax_env.FunctionalJaxEnv.reset
.. autofunction:: gymnasium.experimental.func_jax_env.FunctionalJaxEnv.step
.. autofunction:: gymnasium.experimental.func_jax_env.FunctionalJaxEnv.render
```

View File

@@ -0,0 +1,55 @@
---
layout: "contents"
title: Release Notes
---
# Release Notes
```{toctree}
:hidden:
/release_notes/gymnasium_v0.27.0
/release_notes/gymnasium_v0.26.3
/release_notes/gymnasium_v0.26.2
/release_notes/gymnasium_v0.26.1
/release_notes/gymnasium_v0.26.0
/release_notes/gym_v0.26.2
/release_notes/gym_v0.26.1
/release_notes/gym_v0.26.0
/release_notes/gym_v0.25.2
/release_notes/gym_v0.25.1
/release_notes/gym_v0.25.0
/release_notes/gym_v0.24.1
/release_notes/gym_v0.24.0
/release_notes/gym_v0.23.1
/release_notes/gym_v0.23.0
/release_notes/gym_v0.22.0
/release_notes/gym_v0.21.0
/release_notes/gym_v0.20.0
/release_notes/gym_v0.19.0
```
## Gymnasium Release Notes
* [v0.27.0](/release_notes/gymnasium_v0.27.0)
* [v0.26.3](/release_notes/gymnasium_v0.26.3)
* [v0.26.2](/release_notes/gymnasium_v0.26.2)
* [v0.26.1](/release_notes/gymnasium_v0.26.1)
* [v0.26.0](/release_notes/gymnasium_v0.26.0)
## Gym Release Notes
* [v0.26.2](/release_notes/gym_v0.26.2)
* [v0.26.1](/release_notes/gym_v0.26.1)
* [v0.26.0](/release_notes/gym_v0.26.0)
* [v0.25.2](/release_notes/gym_v0.25.2)
* [v0.25.1](/release_notes/gym_v0.25.1)
* [v0.25.0](/release_notes/gym_v0.25.0)
* [v0.24.1](/release_notes/gym_v0.24.1)
* [v0.24.0](/release_notes/gym_v0.24.0)
* [v0.23.1](/release_notes/gym_v0.23.1)
* [v0.23.0](/release_notes/gym_v0.23.0)
* [v0.22.0](/release_notes/gym_v0.22.0)
* [v0.21.0](/release_notes/gym_v0.21.0)
* [v0.20.0](/release_notes/gym_v0.20.0)
* [v0.19.0](/release_notes/gym_v0.19.0)

View File

@@ -75,5 +75,6 @@ tutorials/*
:caption: Development
Github <https://github.com/Farama-Foundation/Gymnasium>
content/release_notes
Contribute to the Docs <https://github.com/Farama-Foundation/Gymnasium/blob/main/docs/README.md>
```

View File

@@ -0,0 +1,34 @@
---
layout: "contents"
title: Gym v0.19.0
---
# v0.19.0 Release Notes
Gym 0.19.0 is a large maintenance release, and the first since [@jkterry1](https://github.com/jkterry1) became the maintainer. There should be no breaking changes in this release.
## New features
* Added custom datatype argument to multidiscrete space ([@m-orsini](https://github.com/m-orsini))
* API compliance test added based on SB3 and PettingZoo tests ([@amtamasi](https://github.com/amtamasi))
* RecordEpisodeStatics works with VectorEnv ([@vwxyzjn](https://github.com/vwxyzjn))
## Bug fixes
* Removed unused dependencies, removed unnescesary dependency version requirements that caused installation issues on newer machines, added full requirements.txt and moved general dependencies to extras. Notably, "toy_text" is not a used extra. atari-py is now pegged to a precise working version pending the switch to ale-py ([@jkterry1](https://github.com/jkterry1))
* Bug fixes to rewards in FrozenLake and FrozenLake8x8; versions bumped to v1 ([@ZhiqingXiao](https://github.com/ZhiqingXiao))
* Removed remaining numpy depreciation warnings ([@super-pirata](https://github.com/super-pirata))
* Fixes to video recording ([@mahiuchun](https://github.com/mahiuchun), [@zlig](https://github.com/zlig))
* EZ pickle argument fixes ([@zzyunzhi](https://github.com/zzyunzhi), [@jamesborg46](https://github.com/jamesborg46))
* Other very minor (nonbreaking) fixes
## Other
* Removed small bits of dead code ([@jkterry1](https://github.com/jkterry1))
* Numerous typo, CI and documentation fixes (mostly [@cclauss](https://github.com/cclauss))
* New readme and updated third party env list ([@jkterry1](https://github.com/jkterry1))
* Code is now all flake8 compliant through black ([@cclauss](https://github.com/cclauss))
**Full Changelog**: https://github.com/openai/gym/compare/0.18.3...0.19.0
**Github Release**: https://github.com/openai/gym/releases/tag/0.19.0

View File

@@ -0,0 +1,40 @@
---
layout: "contents"
title: Gym v0.20.0
---
# v0.20.0 Release Notes
## Major Change
* Replaced Atari-Py dependency with ALE-Py and bumped all versions. This is a massive upgrade with many changes, please see the [full explainer](https://brosa.ca/blog/ale-release-v0.7) ([@JesseFarebro](https://github.com/JesseFarebro))
* Note that ALE-Py does not include ROMs. You can install ROMs in two lines of bash with ``AutoROM`` though (``pip3 install autorom and then autorom``), see https://github.com/PettingZoo-Team/AutoROM. This is the recommended approach for CI, etc.
## Breaking changes and new features:
* Add ``RecordVideo`` wrapper, deprecate ``monitor`` wrapper in favor of it and ``RecordEpisodeStatistics`` wrapper ([@vwxyzjn](https://github.com/vwxyzjn))
* Dependencies used outside of environments (e.g. for wrappers) are now in ``gym[other]`` ([@jkterry1](https://github.com/jkterry1))
* Moved algorithmic and unused toy-text envs (guessing game, hotter colder, nchain, roulette, kellycoinflip) to third party repos ([@jkterry1](https://github.com/jkterry1), [@Rohan138](https://github.com/Rohan138))
* Fixed flatten utility and flatdim in MultiDiscrete space ([@tristandeleu](https://github.com/tristandeleu))
* Add ``__setitem__`` to dict space ([@jfpettit](https://github.com/jfpettit))
* Large fixes to ``.contains`` method for box space ([@FirefoxMetzger](https://github.com/FirefoxMetzger))
* Made blackjack environment properly comply with Barto and Sutton book standard, bumped to v1 ([@RedTachyon](https://github.com/RedTachyon))
* Added ``NormalizeObservation`` and ``NormalizeReward`` wrappers ([@vwxyzjn](https://github.com/vwxyzjn))
* Add ``__getitem__`` and ``__len__`` to MultiDiscrete space ([@XuehaiPan](https://github.com/XuehaiPan))
* Changed ``.shape`` to be a property of box space to prevent unexpected behaviors ([@RedTachyon](https://github.com/RedTachyon))
## Bug fixes and upgrades
* Video recorder gracefully handles closing ([@XuehaiPan](https://github.com/XuehaiPan))
* Remaining unnecessary dependencies in setup.py are resolved ([@jkterry1](https://github.com/jkterry1))
* Minor acrobot performance improvements ([@TuckerBMorgan](https://github.com/TuckerBMorgan))
* Pendulum properly renders when 0 force is sent ([@Olimoyo](https://github.com/Olimoyo))
* Make observations dtypes be consistent with observation space dtypes for all classic control envs and bipedal-walker ([@RedTachyon](https://github.com/RedTachyon))
* Removed unused and long deprecated features in registration ([@Rohan138](https://github.com/Rohan138))
* Framestack wrapper now inherits from obswrapper ([@jfpettit](https://github.com/jfpettit))
* Seed method for ``spaces.Tuple`` and ``spaces.Dict`` now properly function, are fully stochastic, are fully featured and behave in the expected manner ([@XuehaiPan](https://github.com/XuehaiPan), [@RaghuSpaceRajan](https://github.com/RaghuSpaceRajan))
* Replace ``time()`` with ``perf_counter()`` for better measurements of short duration ([@zuoxingdong](https://github.com/zuoxingdong))
**Full Changelog**: https://github.com/openai/gym/compare/0.19.0...v0.20.0
**Github Release**: https://github.com/openai/gym/releases/tag/v0.20.0

View File

@@ -0,0 +1,26 @@
---
layout: "contents"
title: Gym v0.21.0
---
# v0.21.0 Release Notes
* The old Atari entry point that was broken with the last release and the upgrade to ALE-Py is fixed ([@JesseFarebro](https://github.com/JesseFarebro))
* Atari environments now give much clearer error messages and warnings ([@JesseFarebro](https://github.com/JesseFarebro))
* A new plugin system to enable an easier inclusion of third party environments has been added ([@JesseFarebro](https://github.com/JesseFarebro))
* Atari environments now use the new plugin system to prevent clobbered names and other issues ([@JesseFarebro](https://github.com/JesseFarebro))
* ``pip install gym[atari]`` no longer distributes Atari ROMs that the ALE (the Atari emulator used) needs to run the various games. The easiest way to install ROMs into the ALE has been to use [AutoROM](https://github.com/Farama-Foundation/AutoROM). Gym now has a hook to AutoROM for easier CI automation so that using ``pip install gym[accept-rom-license]`` calls AutoROM to add ROMs to the ALE. You can install the entire suite with the shorthand ``gym[atari, accept-rom-license]``. Note that as described in the name name, by installing ``gym[accept-rom-license]`` you are confirming that you have the relevant license to install the ROMs. ([@JesseFarebro](https://github.com/JesseFarebro))
* An accidental breaking change when loading saved policies trained on old versions of Gym with environments using the box action space have been fixed. ([@RedTachyon](https://github.com/RedTachyon))
* Pendulum has had a minor fix to it's physics logic made and the version has been bumped to v1 ([@RedTachyon](https://github.com/RedTachyon))
* Tests have been refactored into an orderly manner ([@RedTachyon](https://github.com/RedTachyon))
* Dict spaces now have standard dict helper methods ([@Rohan138](https://github.com/Rohan138))
* Environment properties are now forwarded to the wrapper ([@tristandeleu](https://github.com/tristandeleu))
* Gym now properly enforces calling reset before stepping for the first time ([@ahmedo42](https://github.com/ahmedo42))
* Proper piping of error messages to stderr ([@XuehaiPan](https://github.com/XuehaiPan))
* Fix video saving issues ([@zlig](https://github.com/zlig))
Also, Gym is compiling a list of third party environments to into the new documentation website we're working on. Please submit PRs for ones that are missing: https://github.com/openai/gym/blob/master/docs/third_party_environments.md
**Full Changelog**: https://github.com/openai/gym/compare/v0.20.0...v0.21.0
**Github Release**: https://github.com/openai/gym/releases/tag/v0.21.0

View File

@@ -0,0 +1,43 @@
---
layout: "contents"
title: Gym v0.22.0
---
# v0.22 Release Notes
This release represents the largest set of changes ever to Gym, and represents a huge step towards the plans for 1.0 outlined here: [#2524](https://github.com/openai/gym/pull/2524)
Gym now has a new comprehensive documentation site: https://www.gymlibrary.ml/ !
## API changes
* ``Env.reset`` now accepts three new arguments:
* ``options``: Usable for things like controlling curriculum learning without reinitializing the environment, which can be expensive ([@RedTachyon](https://github.com/RedTachyon))
* ``seed``: Environment seeds can be passed to this reset argument in the future. The old ``.seed()`` method is being deprecated in favor of this, though it will continue to function as before until the 1.0 release for backwards compatibility purposes ([@RedTachyon](https://github.com/RedTachyon))
* ``return_info``: when set to ``True``, reset will return obs, info. This currently defaults to ``False``, but will become the default behavior in Gym 1.0 ([@RedTachyon](https://github.com/RedTachyon))
* Environment names no longer require a version during registration and will suggest intelligent similar names ([@kir0ul](https://github.com/kir0ul), [@JesseFarebro](https://github.com/JesseFarebro))
* Vector environments now support terminal_observation in ``info`` and support batch action spaces ([@vwxyzjn](https://github.com/vwxyzjn), [@tristandeleu](https://github.com/tristandeleu))
## Environment changes
* The blackjack and frozen lake toy_text environments now have nice graphical rendering using PyGame ([@1b15](https://github.com/1b15))
* Moved robotics environments to gym-robotics package ([@seungjaeryanlee](https://github.com/seungjaeryanlee), [@Rohan138](https://github.com/Rohan138), [@vwxyzjn](https://github.com/vwxyzjn)) (per discussion in [#2456](https://github.com/openai/gym/pull/2456) (comment))
* The bipedal walker and lunar lander environments were consolidated into one class ([@andrewtanJS](https://github.com/andrewtanJS))
* Atari environments now use standard seeding API ([@JesseFarebro](https://github.com/JesseFarebro))
* Fixed large bug fixes in car_racing box2d environment, bumped version ([@carlosluis](https://github.com/carlosluis), [@araffin](https://github.com/araffin))
* Refactored all box2d and classic_control environments to use PyGame instead of Pyglet as issues with pyglet has been one of the most frequent sources of GitHub issues over the life of the gym project ([@andrewtanJS](https://github.com/andrewtanJS))
## Other changes
* Removed DiscreteEnv class, built in environments no longer use it ([@carlosluis](https://github.com/carlosluis))
* Large numbers of type hints added ([@ikamensh](https://github.com/ikamensh), [@RedTachyon](https://github.com/RedTachyon))
* Python 3.10 support
* Tons of additional code refactoring, cleanup, error message improvements and small bug fixes ([@vwxyzjn](https://github.com/vwxyzjn), [@Markus28](https://github.com/Markus28), [@RushivArora](https://github.com/RushivArora), [@jjshoots](https://github.com/jjshoots), [@XuehaiPan](https://github.com/XuehaiPan), [@Rohan138](https://github.com/Rohan138), [@JesseFarebro](https://github.com/JesseFarebro), [@Ericonaldo](https://github.com/Ericonaldo), [@AdilZouitine](https://github.com/AdilZouitine), [@RedTachyon](https://github.com/RedTachyon))
* All environment files now have dramatically improved readmes at the top (that the documentation website automatically pulls from)
* As part of the seeding changes, Gym's RNG has been modified to use the ``np.random.Generator`` as the RandomState API has been deprecated. The methods ``randint``, ``rand``, ``randn`` are replaced by ``integers``, ``random`` and ``standard_normal`` respectively. As a consequence, the random number generator has changed from ``MT19937`` to ``PCG64``.
**Full Changelog**: https://github.com/openai/gym/compare/v0.21.0...0.22.0
**Github Release**: https://github.com/openai/gym/releases/tag/0.22.0

View File

@@ -0,0 +1,20 @@
---
layout: "contents"
title: Gym v0.23.0
---
# v0.23.0 Release Notes
This release contains many bug fixes and a few small changes.
## Breaking changes
* Standardized render metadata variables ahead of render breaking change [@trigaten](https://github.com/trigaten)
* Removed deprecated monitor wrapper and associated dead code [@gianlucadecola](https://github.com/gianlucadecola)
* Unused striker and thrower MuJoCo envs moved to https://github.com/RushivArora/Gym-Mujoco-Archive [@RushivArora](https://github.com/RushivArora)
* Many minor bug fixes ([@vwxyzjn](https://github.com/vwxyzjn), [@RedTachyon](https://github.com/RedTachyon), [@rusu24edward](https://github.com/rusu24edward), [@Markus28](https://github.com/Markus28), [@dsctt](https://github.com/dsctt), [@andrewtanJS](https://github.com/andrewtanJS), [@tristandeleu](https://github.com/tristandeleu), [@duburcqa](https://github.com/duburcqa))
**Full Changelog**: https://github.com/openai/gym/compare/0.22.0...0.23.0
**Github Release**: https://github.com/openai/gym/releases/tag/0.23.0

View File

@@ -0,0 +1,20 @@
---
layout: "contents"
title: Gym v0.23.1
---
# v0.23.1 Release Notes
This release contains a few small bug fixes and no breaking changes.
* Make ``VideoRecorder`` backward-compatible to ``gym<0.23`` by [@vwxyzjn](https://github.com/@vwxyzjn) in [#2678](https://github.com/openai/gym/pull/2678)
* Fix issues with pygame event handling (which should fix support on windows and in jupyter notebooks) by [@andrewtanJS](https://github.com/@andrewtanJS) in [#2684](https://github.com/openai/gym/pull/2684)
* Add py.typed to package_data by [@micimize](https://github.com/@micimize) in [#2683](https://github.com/openai/gym/pull/2683)
* Fixes around 1500 warnings in CI [@pseudo-rnd-thoughts](https://github.com/@pseudo-rnd-thoughts)
* Deprecation warnings correctly display now [@vwxyzjn](https://github.com/@vwxyzjn)
* Fix removing striker and thrower [@RushivArora](https://github.com/@RushivArora)
* Fix small dependency warning error [@ZhiqingXiao](https://github.com/@ZhiqingXiao)
**Full Changelog**: https://github.com/openai/gym/compare/0.23.0...0.23.1
**Github Release**: https://github.com/openai/gym/releases/tag/0.23.1

View File

@@ -0,0 +1,36 @@
---
layout: "contents"
title: Gym v0.24.0
---
# v0.24.0 Release Notes
## Major changes
* Added v4 mujoco environments that use the new [deepmind mujoco](https://github.com/deepmind/mujoco) 2.2.0 module. This can be installed through ``pip install gym[mujoco]`` with the old bindings still being available using the ``v3`` environments and ``pip install gym[mujoco-py]``. These new ``v4`` environment should have the same training curves as ``v3``. For the Ant, we found that there was a contact parameter that was not applied in ``v3`` that can enabled in v4 however was found to produce significantly worse performance [see comment](https://github.com/openai/gym/pull/2762#issuecomment-1135362092) for more details. [@rodrigodelazcano](https://github.com/rodrigodelazcano)
* The vector environment step ``info`` API has been changes to allow hardware acceleration in the future. See [this PR](https://github.com/openai/gym/pull/2773) for the modified ``info`` style that now uses dictionaries instead of a list of environment info. If you still wish to use the list info style, then use the ``VectorListInfo`` wrapper. [@gianlucadecola](https://github.com/gianlucadecola)
* On ``gym.make``, the gym ``env_checker`` is run that includes calling the environment ``reset`` and ``step`` to check if the environment is compliant to the gym API. To disable this feature, run ``gym.make(..., disable_env_checker=True)``. [@RedTachyon](https://github.com/RedTachyon)
* Re-added ``gym.make("MODULE:ENV")`` import style that was accidentally removed in v0.22 [@arjun-kg](https://github.com/arjun-kg)
* ``Env.render`` is now order enforced such that ``Env.reset`` is required before ``Env.render`` is called. If this a required feature then set the ``OrderEnforcer`` wrapper ``disable_render_order_enforcing=True``. [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Added wind and turbulence to the Lunar Lander environment, this is by default turned off, use the ``wind_power`` and ``turbulence`` parameter. [@virgilt](https://github.com/virgilt)
* Improved the ``play`` function to allow multiple keyboard letter to pass instead of ascii value [@Markus28](https://github.com/Markus28)
* Added google style pydoc strings for most of the repositories [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) [@Markus28](https://github.com/Markus28)
* Added discrete car racing environment version through ``gym.make("CarRacing-v1", continuous=False)``
* Pygame is now an optional module for box2d and classic control environments that is only necessary for rendering. Therefore, install pygame using ``pip install gym[box2d]`` or ``pip install gym[classic_control]`` [@gianlucadecola](https://github.com/gianlucadecola) [@RedTachyon](https://github.com/RedTachyon)
* Fixed bug in batch spaces (used in ``VectorEnv``) such that the original space's seed was ignored [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Added ``AutoResetWrapper`` that automatically calls ``Env.reset`` when ``Env.step`` done is ``True`` [@balisujohn](https://github.com/balisujohn)
## Minor changes
* Bipedal Walker and Lunar Lander's observation spaces have non-infinite upper and lower bounds. [@jjshoots](https://github.com/jjshoots)
* Bumped the ALE-py version to ``0.7.5``
* Improved the performance of car racing through not rendering polygons off screen [@andrewtanJS](https://github.com/andrewtanJS)
* Fixed turn indicators that were black not red/white in Car racing [@jjshoots](https://github.com/jjshoots)
* Bug fixes for ``VecEnvWrapper`` to forward method calls to the environment [@arjun-kg](https://github.com/arjun-kg)
* Removed unnecessary try except on ``Box2d`` such that if ``Box2d`` is not installed correctly then a more helpful error is show [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Simplified the ``gym.registry`` backend [@RedTachyon](https://github.com/RedTachyon)
* Re-added python 3.6 support through backports of python 3.7+ modules. This is not tested or compatible with the mujoco environments. [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
**Full Changelog**: https://github.com/openai/gym/compare/0.23.1...0.24.0
**Github Release**: https://github.com/openai/gym/releases/tag/0.24.0

View File

@@ -0,0 +1,24 @@
---
layout: "contents"
title: Gym v0.24.1
---
# v0.24.1 Release Notes
This is a bug fix release for version 0.24.0
## Bugs fixed
* Replaced the environment checker introduced in V24, such that the environment checker will not call ``Env.step`` and ``Env.reset`` during ``gym.make``. This new version is a wrapper that will observe the data that ``Env.step`` and ``Env.reset`` returns on their first call and check the data against the environment checker. [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Fixed MuJoCo v4 arguments key callback, closing the environment in renderer and the ``mujoco_rendering.close`` method. [@rodrigodelazcano](https://github.com/rodrigodelazcano)
* Removed redundant warning in registration [@RedTachyon](https://github.com/RedTachyon)
* Removed maths operations from MuJoCo xml files [@quagla](https://github.com/quagla)
* Added support for unpickling legacy ``spaces.Box`` [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Fixed mujoco environment action and observation space docstring tables [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Disable wrappers from accessing ``_np_random`` property and ``np_random`` is now forwarded to environments [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Rewrite setup.py to add a ``"testing"`` meta dependency group [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Fixed docstring in ``rescale_action`` wrapper [@gianlucadecola](https://github.com/gianlucadecola)
**Full Changelog**: https://github.com/openai/gym/compare/0.24.0...0.24.1
**Github Release**: https://github.com/openai/gym/releases/tag/0.24.1

View File

@@ -0,0 +1,40 @@
---
layout: "contents"
title: Gym v0.25.0
---
# v0.25.0 Release notes
This release finally introduces all new API changes that have been planned for the past year or more, all of which will be turned on by default in a subsequent release. After this point, Gym development should get massively smoother. This release also fixes large bugs present in [0.24.0](https://github.com/openai/gym/releases/tag/0.24.0) and [0.24.1](https://github.com/openai/gym/releases/tag/0.24.1), and we highly discourage using those releases.
## API Changes
* ``Env.step`` - A majority of deep reinforcement learning algorithm implementations are incorrect due to an important difference in theory and practice as ``done`` is not equivalent to ``termination``. As a result, we have modified the ``step`` function to return five values: ``obs, reward, termination, truncation, info``. The full theoretical and practical reason (along with example code changes) for these changes will be explained in a soon-to-be-released blog post. The aim for the change to be backward compatible (for now), for issues, please put report the issue on github or the discord. [@arjun-kg](https://github.com/arjun-kg)
* ``Env.Render`` - The render API is changed such that the mode has to be specified during ``gym.make`` with the keyword ``render_mode``, after which, the render mode is fixed. For further details see https://younis.dev/blog/2022/render-api/ and [#2671](https://github.com/openai/gym/pull/2671). This has the additional changes
* with ``render_mode="human"`` you don't need to call ``.render()``, rendering will happen automatically on ``env.step()``
* with ``render_mode="rgb_array"``, ``.render()`` pops the list of frames rendered since the last ``.reset()``
* with ``render_mode="single_rgb_array"``, ``.render()`` returns a single frame, like before.
* ``Space.sample(mask=...)`` allows a mask when sampling actions to enable/disable certain actions from being randomly sampled. We recommend developers add this to the ``info`` parameter returned by ``Env.reset(return_info=True)`` and ``Env.step``. See [#2906](https://github.com/openai/gym/pull/2906) for example implementations of the masks or the individual spaces. We have added an example version of this in the taxi environment. [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Add ``Graph`` space for environments that use graph style observation or action spaces. Currently, the ``node`` and ``edge`` spaces can only be ``Box`` or ``Discrete`` spaces. [@jjshoots](https://github.com/jjshoots)
* Add ``Text`` space for Reinforcement Learning that involves communication between agents and have dynamic length messages (otherwise ``MultiDiscrete`` can be used). [@ryanrudes](https://github.com/ryanrudes) [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
## Bug fixes
* Fixed car racing termination where if the agent finishes the final lap, then the environment ends through truncation not termination. This added a version bump to Car racing to v2 and removed Car racing discrete in favour of ``gym.make("CarRacing-v2", continuous=False)`` [@araffin](https://github.com/araffin)
* In ``v0.24.0``, ``opencv-python`` was an accidental requirement for the project. This has been reverted. [@KexianShen](https://github.com/KexianShen) [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Updated ``utils.play`` such that if the environment specifies ``keys_to_action``, the function will automatically use that data. [@Markus28](https://github.com/Markus28)
* When rendering the blackjack environment, fixed bug where rendering would change the dealers top car. [@balisujohn](https://github.com/balisujohn)
* Updated mujoco docstring to reflect changes that were accidentally overwritten. [@Markus28](https://github.com/Markus28)
## Misc
* The whole project is partially type hinted using [pyright](https://github.com/microsoft/pyright) (none of the project files is ignored by the type hinter). [@RedTachyon](https://github.com/RedTachyon) [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) (Future work will add strict type hinting to the core API)
* Action masking added to the taxi environment (no version bump due to being backwards compatible) [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* The ``Box`` space shape inference is allows ``high`` and ``low`` scalars to be automatically set to ``(1,)`` shape. Minor changes to identifying scalars. [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Added option support in classic control environment to modify the bounds on the initial random state of the environment [@psc-g](https://github.com/psc-g)
* The ``RecordVideo`` wrapper is becoming deprecated with no support for ``TextEncoder`` with the new render API. The plan is to replace ``RecordVideo`` with a single function that will receive a list of frames from an environment and automatically render them as a video using [MoviePy](https://github.com/Zulko/moviepy). [@johnMinelli](https://github.com/johnMinelli)
* The gym ``py.Dockerfile`` is optimised from 2Gb to 1.5Gb through a number of optimisations [@TheDen](https://github.com/TheDen)
**Full Changelog**: https://github.com/openai/gym/compare/0.24.1...0.25.0
**Github Release**: https://github.com/openai/gym/releases/tag/0.25.0

View File

@@ -0,0 +1,30 @@
---
layout: "contents"
title: Gym v0.25.1
---
# 0.25.1 Release Notes
* Added rendering for CliffWalking environment [@younik](https://github.com/younik)
* ``PixelObservationWrapper`` only supports the new render API due to difficulty in supporting both old and new APIs. A warning is raised if the user is using the old API [@vmoens](https://github.com/vmoens)
## Bug fix
* Revert an incorrect edition on wrapper.FrameStack [@ZhiqingXiao](https://github.com/ZhiqingXiao)
* Fix reset bounds for mountain car [@psc-g](https://github.com/psc-g)
* Removed skipped tests causing bugs not to be caught [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Added backward compatibility for environments without metadata [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Fixed ``BipedalWalker`` rendering for RGB arrays [@1b15](https://github.com/1b15)
* Fixed bug in ``PixelObservationWrapper`` for using the new rendering [@younik](https://github.com/younik)
## Typos
* Rephrase observations' definition in Lunar Lander Environment [@EvanMath](https://github.com/EvanMath)
* Top-docstring in ``gym/spaces/dict.py`` [@Ice1187](https://github.com/Ice1187)
* Several typos in ``humanoidstandup_v4.py``, ``mujoco_env.py``, and ``vector_list_info.py`` [@timgates42](https://github.com/timgates42)
* Typos in passive environment checker [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Typos in Swimmer rotations [@lin826](https://github.com/lin826)
**Full Changelog**: https://github.com/openai/gym/compare/0.25.0...0.25.1
**Github Release**: https://github.com/openai/gym/releases/tag/0.25.1

View File

@@ -0,0 +1,26 @@
---
layout: "contents"
title: Gym v0.25.2
---
# v0.25.2 Release Notes
This is a fairly minor bug fix release.
## Bug Fixes
* Removes requirements for ``_TimeLimit.truncated`` in info for step compatibility functions. This makes the step compatible with Envpool [@arjun-kg](https://github.com/arjun-kg)
* As the ordering of ``Dict`` spaces matters when flattening spaces, updated the ``__eq__`` to account for the ``.keys()`` ordering. [@XuehaiPan](https://github.com/XuehaiPan)
* Allows ``CarRacing`` environment to be pickled. Updated all gym environments to be correctly pickled. [@RedTachyon](https://github.com/RedTachyon)
* Seeding ``spaces.Dict`` and ``spaces.Tuple`` spaces with integers can cause lower-specification computers to hang due to requiring 8Gb memory. Updated the seeding with integers to not require unique subseeds (subseed collisions are rare). For users that require unique subseeds for all subspaces, we recommend using a dictionary or tuple with the subseeds. [@olipinski](https://github.com/olipinski)
* Fixed the metaclass implementation for the new render api to allow custom environments to use metaclasses as well. [@YouJiacheng](https://github.com/YouJiacheng)
## Updates
* Simplifies the step compatibility functions to make them easier to debug. ``TimeLimit`` wrapper with the old step API favours terminated over truncated if both are true. This is as the old done step API can only encode 3 states (cannot encode ``terminated=True`` and ``truncated=True``) therefore we must encode to only ``terminated=True`` or ``truncated=True``. [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Add Swig as a dependency of Box2d [@kir0ul](https://github.com/kir0ul)
* Add type annotation for ``render_mode`` and ``metadata`` [@bkrl](https://github.com/bkrl)
**Full Changelog**: https://github.com/openai/gym/compare/0.25.1...0.25.2
**Github Release**: https://github.com/openai/gym/releases/tag/0.25.2

View File

@@ -0,0 +1,41 @@
---
layout: "contents"
title: Gym v0.26.0
---
# v0.26.0 Release Notes
This release is aimed to be the last of the major API changes to the core API. All previously "turned off" changes of the base API (step termination / truncation, reset info, no seed function, render mode determined by initialization) are now expected by default. We still plan to make breaking changes to Gym itself, but to things that are very easy to upgrade (environments and wrappers), and things that aren't super commonly used (the vector API). Once those aspects are stabilized, we'll do a proper 1.0 release and follow semantic versioning. Additionally, unless something goes terribly wrong with this release, and we have to release a patched version, this will be the last release of Gym for a while.
If you've been waiting for a "stable" release of Gym to upgrade your project given all the changes that have been going on, this is the one.
We also just wanted to say that we tremendously appreciate the communities patience with us as we've gone on this journey taking over the maintenance of Gym and making all of these huge changes to the core API. We appreciate your patience and support, but hopefully, all the changes from here on out will be much more minor.
## Breaking backward compatibility
These changes are true of all gym's internal wrappers and environments but for environments not updated, we provide the ``EnvCompatibility`` wrapper for users to convert old gym v21 / 22 environments to the new core API. This wrapper can be easily applied in ``gym.make`` and ``gym.register`` through the ``apply_api_compatibility`` parameters.
* ``Step`` Termination / truncation - The ``Env.step`` function returns 5 values instead of 4 previously (observations, reward, termination, truncation, info). A blog with more details will be released soon to explain this decision. [@arjun-kg](https://github.com/arjun-kg)
* Reset info - The ``Env.reset`` function returns two values (``obs`` and ``info``) with no ``return_info`` parameter for gym wrappers and environments. This is important for some environments that provided action masking information for each actions which was not possible for resets. [@balisujohn](https://github.com/balisujohn)
* No Seed function - While ``Env.seed`` was a helpful function, this was almost solely used for the beginning of the episode and is added to ``gym.reset(seed=...)``. In addition, for several environments like Atari that utilise external random number generators, it was not possible to set the seed at any time other than ``reset``. Therefore, ``seed`` is no longer expected to function within gym environments and is removed from all gym environments [@balisujohn](https://github.com/balisujohn)
* Rendering - It is normal to only use a single render mode and to help open and close the rendering window, we have changed ``Env.render`` to not take any arguments and so all render arguments can be part of the environment's constructor i.e., ``gym.make("CartPole-v1", render_mode="human")``. For more detail on the new API, see [blog post](https://younis.dev/blog/render-api/) [@younik](https://github.com/younik)
## Major changes
* Render modes - In ``v0.25``, there was a change in the meaning of render modes, i.e. ``"rgb_array"`` returned a list of rendered frames with ``"single_rgb_array"`` returned a single frame. This has been reverted in this release with ``"rgb_array"`` having the same meaning as previously to return a single frame with a new mode ``"rgb_array_list"`` returning a list of RGB arrays. The capability to return a list of rendering observations achieved through a wrapper applied during ``gym.make``. [#3040](https://github.com/openai/gym/pull/3040) [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) [@younik](https://github.com/younik)
* Added ``save_video`` function that uses ``MoviePy`` to render a list of RGB frames and updated ``RecordVideo`` to use this function. This removes support for recording ``ansi`` outputs. [#3016](https://github.com/openai/gym/pull/3016) [@younik](https://github.com/younik)
* Random Number Generator functions (``seeding.np_random``): ``rand``, ``randn``, ``randint``, ``get_state``, ``set_state``, ``hash_seed``, ``create_seed``, ``_bigint_from_bytes`` and ``_int_list_from_bigint`` have been removed. [@balisujohn](https://github.com/balisujohn)
* Bump ``ale-py`` to ``0.8.0`` which is compatibility with the new core API
* Added ``EnvAPICompatibility`` wrapper [@RedTachyon](https://github.com/RedTachyon)
## Minor changes
* Added improved ``Sequence``, ``Graph`` and ``Text`` sample masking [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Improved the ``gym.make`` and ``gym.register`` type hinting with ``entry_point`` being a necessary parameter of ``gym.register``. [#3041](https://github.com/openai/gym/pull/3041) [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Changed all URL to the new gym website https://www.gymlibrary.dev/ [@FieteO](https://github.com/FieteO)
* Fixed mujoco offscreen rendering with weight and height value > 500 [#3044](https://github.com/openai/gym/pull/3044) [@YouJiacheng](https://github.com/YouJiacheng)
* Allowed toy_text environment to render on headless machines [#3037](https://github.com/openai/gym/pull/3037) [@RedTachyon](https://github.com/RedTachyon)
* Renamed the motors in the mujoco swimmer envs [#3036](https://github.com/openai/gym/pull/3036) [@lin826](https://github.com/lin826)
**Full Changelog**: https://github.com/openai/gym/compare/0.25.2...0.26.0
**Github Release**: https://github.com/openai/gym/releases/tag/0.26.0

View File

@@ -0,0 +1,22 @@
---
layout: "contents"
title: Gym v0.26.1
---
# v0.26.1 Release Notes
This is a very minor bug fix release for 0.26.0
## Bug Fixes
* [#3072](https://github.com/openai/gym/pull/3072) - Previously mujoco was a necessary module even if only ``mujoco-py`` was used. This has been fixed to allow only ``mujoco-py`` to be installed and used. [@YouJiacheng](https://github.com/YouJiacheng)
* [#3076](https://github.com/openai/gym/pull/3076) - ``PixelObservationWrapper`` raises an exception if the ``env.render_mode`` is not specified. [@vmoens](https://github.com/vmoens)
* [#3080](https://github.com/openai/gym/pull/3080) - Fixed bug in ``CarRacing`` where the colour of the wheels were not correct [@foxik](https://github.com/foxik)
* [#3083](https://github.com/openai/gym/pull/3083) - Fixed ``BipedalWalker`` where if the agent moved backwards then the rendered arrays would be a different size. [@younik](https://github.com/younik)
## Spelling
* Fixed truncation typo in readme API example [@rdnfn](https://github.com/rdnfn)
* Updated pendulum observation space from angle to theta to make more consistent [@ikamensh](https://github.com/ikamensh)
**Full Changelog**: https://github.com/openai/gym/compare/0.26.0...0.26.1
**Github Release**: https://github.com/openai/gym/releases/tag/0.26.1

View File

@@ -0,0 +1,20 @@
---
layout: "contents"
title: Gym v0.26.2
---
# v0.26.2 Release Notes
This is another very minor bug release.
## Bugs Fixes
* As ``Env.reset`` returns ``(obs, info)`` then in the vector environments, this caused the final ``Env.step``'s info to be overwritten. Now, the final observation and info are contained within the info as ``"final_observation"`` and ``"final_info"`` [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Adds warnings when trying to render without specifying the render_mode [@younik](https://github.com/younik)
* Updates Atari Preprocessing such that the wrapper can be pickled [@vermouth1992](https://github.com/vermouth1992)
* Github CI was hardened to such that the CI just has read permissions [@sashashura](https://github.com/sashashura)
* Clarify and fix typo in ``GraphInstance`` [@ekalosak](https://github.com/ekalosak)
**Full Changelog**: https://github.com/openai/gym/compare/0.26.2...0.26.2
**Github Release**: https://github.com/openai/gym/releases/tag/0.26.2

View File

@@ -0,0 +1,14 @@
---
layout: "contents"
title: Gymnasium v0.26.0
---
# Gymnasium v0.26.0 Release Notes
This is the first release of Gymnasium, a maintained fork of OpenAI Gym
This release is identical to the Gym v0.26.0 except for the project name (Gymnasium) and Code of Conduct
Read [#12](https://github.com/Farama-Foundation/Gymnasium/issues/12) for the roadmap of changes
**Github Release**: https://github.com/Farama-Foundation/Gymnasium/releases/tag/v0.26.0

View File

@@ -0,0 +1,12 @@
---
layout: "contents"
title: Gymnasium v0.26.1
---
# v0.26.1 Release Notes
This Release is an upstreamed version of [Gym v26.1](https://github.com/openai/gym/releases/tag/0.26.1)
In addition, the [gym docs](https://github.com/farama-Foundation/gym-docs) repo has been merged in with the new website https://gymnasium.farama.org/
**Github Release**: https://github.com/Farama-Foundation/Gymnasium/releases/tag/v0.26.1

View File

@@ -0,0 +1,17 @@
---
layout: "contents"
title: Gymnasium v0.26.2
---
# v0.26.2 Release Notes
This Release is an upstreamed version of [Gym v0.26.2](https://github.com/openai/gym/releases/tag/0.26.2)
### Bugs Fixes
* As reset now returns (obs, info) then in the vector environments, this caused the final step's info to be overwritten. Now, the final observation and info are contained within the info as "final_observation" and "final_info" [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
* Adds warnings when trying to render without specifying the render_mode [@younik](https://github.com/younik)
* Updates Atari Preprocessing such that the wrapper can be pickled [@vermouth1992](https://github.com/vermouth1992)
* Github CI was hardened to such that the CI just has read permissions [@sashashura](https://github.com/sashashura)
* Clarify and fix typo in GraphInstance [@ekalosak](https://github.com/ekalosak)
**Github Release**: https://github.com/Farama-Foundation/Gymnasium/releases/tag/v0.26.2

View File

@@ -0,0 +1,33 @@
---
layout: "contents"
title: Gymnasium v0.26.3
---
# v0.26.3 Release Notes
Note: ale-py (atari) has not updated to Gymnasium yet. Therefore ``pip install gymnasium[atari]`` will fail, this will be fixed in ``v0.27``. In the meantime, use ``pip install shimmy[atari]`` for the fix.
## Bug Fixes
* Added Gym-Gymnasium compatibility converter to allow users to use Gym environments in Gymnasium by [@RedTachyon](https://github.com/RedTachyon) in https://github.com/Farama-Foundation/Gymnasium/pull/61
* Modify metadata in the ``HumanRendering`` and ``RenderCollection`` wrappers to have the correct metadata by [@RedTachyon](https://github.com/RedTachyon) in https://github.com/Farama-Foundation/Gymnasium/pull/35
* Simplified ``EpisodeStatisticsRecorder`` wrapper by [@DavidSlayback](https://github.com/DavidSlayback) in https://github.com/Farama-Foundation/Gymnasium/pull/31
* Fix integer overflow in MultiDiscrete.flatten() by [@olipinski](https://github.com/olipinski) in https://github.com/Farama-Foundation/Gymnasium/pull/55
* Re-add the ability to specify the XML file for Mujoco environments by [@Kallinteris-Andreas](https://github.com/Kallinteris-Andreas) in https://github.com/Farama-Foundation/Gymnasium/pull/70
## Documentation change
* Add a tutorial for training an agent in Blackjack by [@till2](https://github.com/till2) in https://github.com/Farama-Foundation/Gymnasium/pull/64
* A very long list of documentation updates by [@mgoulao](https://github.com/mgoulao), [@vairodp](https://github.com/vairodp), [@WillDudley](https://github.com/WillDudley), [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) and [@jjshoots](https://github.com/jjshoots)
**Full Changelog**: https://github.com/Farama-Foundation/Gymnasium/compare/v0.26.2...v0.26.3
## Thank you for the new contributors
* [@vairodp](https://github.com/vairodp) made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/41
* [@DavidSlayback](https://github.com/DavidSlayback) made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/31
* [@WillDudley](https://github.com/WillDudley) made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/51
* [@olipinski](https://github.com/olipinski) made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/55
* [@jjshoots](https://github.com/jjshoots) made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/58
* [@vmoens](https://github.com/vmoens) made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/60
* [@till2](https://github.com/till2) made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/64
* [@Kallinteris-Andreas](https://github.com/Kallinteris-Andreas) made their first contribution in https://github.com/Farama-Foundation/Gymnasium/pull/70
**Github Release**: https://github.com/Farama-Foundation/Gymnasium/releases/tag/v0.26.3

View File

@@ -0,0 +1,82 @@
---
layout: "contents"
title: Gymnasium v0.27.0
---
# v0.27.0 Release Notes
Gymnasium 0.27.0 is our first major release of Gymnasium. It has several significant new features, and numerous small bug fixes and code quality improvements as we work through our backlog. There should be no breaking changes beyond dropping Python 3.6 support and remove the mujoco ``Viewer`` class in favor of a ``MujocoRendering`` class. You should be able to upgrade your code that's using Gymnasium 0.26.x to 0.27.0 with little-to-no-effort.
Like always, our development roadmap is publicly available [here](https://github.com/Farama-Foundation/Gymnasium/issues/12) so you can follow our future plans. The only large breaking changes that are still planned are switching selected environments to use hardware accelerated physics engines and our long standing plans for overhauling the vector API and built-in wrappers.
This release notably includes an entirely new part of the library: ``gymnasium.experimental``. We are adding new features, wrappers and functional environment API discussed below for users to test and try out to find bugs and provide feedback.
## New Wrappers
These new wrappers, accessible in ``gymnasium.experimental.wrappers``, see the full list in https://gymnasium.farama.org/main/api/experimental/ are aimed to replace the wrappers in gymnasium v0.30.0 and contain several improvements
* (Work in progress) Support arbitrarily complex observation / action spaces. As RL has advanced, action and observation spaces are becoming more complex and the current wrappers were not implemented with this mind.
* Support for Jax-based environments. With hardware accelerated environments, i.e. Brax, written in Jax and similar PyTorch based programs, NumPy is not the only game in town anymore for writing environments. Therefore, these upgrades will use [Jumpy](https://github.com/farama-Foundation/jumpy), a project developed by Farama Foundation to provide automatic compatibility for NumPy, Jax and in the future PyTorch data for a large subset of the NumPy functions.
* More wrappers. Projects like [Supersuit](https://github.com/farama-Foundation/supersuit) aimed to bring more wrappers for RL, however, many users were not aware of the wrappers, so we plan to move the wrappers into Gymnasium. If we are missing common wrappers from the list provided above, please create an issue and we would be interested in adding it.
* Versioning. Like environments, the implementation details of wrappers can cause changes in agent performance. Therefore, we propose adding version numbers to all wrappers, i.e., ``LambaActionV0``. We don't expect these version numbers to change regularly and will act similarly to environment version numbers. This should ensure that all users know when significant changes could affect your agent's performance for environments and wrappers. Additionally, we hope that this will improve reproducibility of RL in the future, which is critical for academia.
* In v28, we aim to rewrite the VectorEnv to not inherit from Env, as a result new vectorized versions of the wrappers will be provided.
Core developers: [@gianlucadecola](https://github.com/gianlucadecola), [@RedTachyon](https://github.com/RedTachyon), [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts)
## Functional API
The ``Env`` class provides a very generic structure for environments to be written in allowing high flexibility in the program structure. However, this limits the ability to efficiently vectorize environments, compartmentalize the environment code, etc. Therefore, the ``gymnasium.experimental.FuncEnv`` provides a much more strict structure for environment implementation with stateless functions, for every stage of the environment implementation. This class does not inherit from ``Env`` and requires a translation / compatibility class for doing this. We already provide a ``FuncJaxEnv`` for converting jax-based ``FuncEnv`` to ``Env``. We hope this will help improve the readability of environment implementations along with potential speed-ups for users that vectorize their code.
This API is very experimental so open to changes in the future. We are interested in feedback from users who try to use the API which we believe will be in particular interest to users exploring RL planning, model-based RL and modifying environment functions like the rewards.
Core developers: [@RedTachyon](https://github.com/RedTachyon), [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts), [@balisujohn](https://github.com/balisujohn)
## Other Major changes
* Refactor Mujoco Rendering mechanisms to use a separate thread for OpenGL. Remove ``Viewer`` in favor of ``MujocoRenderer`` which offscreen, human and other render mode can use by [@rodrigodelazcano](https://github.com/rodrigodelazcano) in [#112](https://github.com/Farama-Foundation/Gymnasium/pull/112)
* Add deprecation warning to ``gym.make(..., apply_env_compatibility=True)`` in favour of ``gym.make("GymV22Environment", env_id="...")`` by [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) in [#125](https://github.com/Farama-Foundation/Gymnasium/pull/125)
* Add ``gymnasium.pprint_registry()`` for pretty printing the gymnasium registry by [@kad99kev](https://github.com/kad99kev) in [#124](https://github.com/Farama-Foundation/Gymnasium/pull/124)
* Changes discrete dtype to np.int64 such that samples are np.int64 not python ints. by [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) in [#141](https://github.com/Farama-Foundation/Gymnasium/pull/141)
* Add migration guide for OpenAI Gym v21 to v26 by [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) in https://github.com/Farama-Foundation/Gymnasium/pull/72
* Add complete type hinting of ``core.py`` for ``Env``, ``Wrapper`` and more by [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) in [#39](https://github.com/Farama-Foundation/Gymnasium/pull/39)
* Add complete type hinting for all spaces in ``gymnasium.spaces`` by [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) in [#37](https://github.com/Farama-Foundation/Gymnasium/pull/37)
* Make window in ``play()`` resizable by [@Markus28](https://github.com/Markus28) in [#198](https://github.com/Farama-Foundation/Gymnasium/pull/190)
* Add REINFORCE implementation tutorial by [@siddarth-c](https://github.com/siddarth-c) in [#155](https://github.com/Farama-Foundation/Gymnasium/pull/155)
## Bug fixes and documentation changes
* Remove auto close in ``VideoRecorder`` wrapper by [@younik](https://github.com/younik) in [#42](https://github.com/Farama-Foundation/Gymnasium/pull/42)
* Change ``seeding.np_random`` error message to report seed type by [@theo-brown](https://github.com/theo-brown) in [#74](https://github.com/Farama-Foundation/Gymnasium/pull/74)
* Include shape in MujocoEnv error message by [@ikamensh](https://github.com/ikamensh) in [#83](https://github.com/Farama-Foundation/Gymnasium/pull/83)
* Add pretty Feature/GitHub issue form by [@tobirohrer](https://github.com/tobirohrer) in [#89](https://github.com/Farama-Foundation/Gymnasium/pull/89)
* Added testing for the render return data in ``check_env`` and ``PassiveEnvChecker`` by [@Markus28](https://github.com/Markus28) in [#117](https://github.com/Farama-Foundation/Gymnasium/pull/117)
* Fix docstring and update action space description for classic control environments by [@Thytu](https://github.com/Thytu) in [#123](https://github.com/Farama-Foundation/Gymnasium/pull/123)
* Fix ``__all__`` in root ``__init__.py`` to specify the correct folders by [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) in [#130](https://github.com/Farama-Foundation/Gymnasium/pull/130)
* Fix ``play()`` assertion error by [@Markus28](https://github.com/Markus28) in [#132](https://github.com/Farama-Foundation/Gymnasium/pull/132)
* Update documentation for Frozen Lake ``is_slippy`` by [@MarionJS](https://github.com/MarionJS) in [#136](https://github.com/Farama-Foundation/Gymnasium/pull/136)
* Fixed warnings when ``render_mode`` is None by [@younik](https://github.com/younik) in [#143](https://github.com/Farama-Foundation/Gymnasium/pull/143)
* Added ``is_np_flattenable`` property to documentation by [@Markus28](https://github.com/Markus28) in [#172](https://github.com/Farama-Foundation/Gymnasium/pull/172)
* Updated Wrapper documentation by [@Markus28](https://github.com/Markus28) in [#173](https://github.com/Farama-Foundation/Gymnasium/pull/173)
* Updated formatting of spaces documentation by [@Markus28](https://github.com/Markus28) in [#174](https://github.com/Farama-Foundation/Gymnasium/pull/174)
* For FrozenLake, add seeding in random map generation by [@kir0ul](https://github.com/kir0ul) in [#139](https://github.com/Farama-Foundation/Gymnasium/pull/139)
* Add notes for issues when unflattening samples from flattened spaces by [@rusu24edward](https://github.com/rusu24edward) in [#164](https://github.com/Farama-Foundation/Gymnasium/pull/164)
* Include pusher environment page to website by [@axb2035](https://github.com/axb2035) in [#171](https://github.com/Farama-Foundation/Gymnasium/pull/171)
* Add check in ``AsyncVectorEnv`` for success before splitting result in ``step_wait`` by [@aaronwalsman](https://github.com/aaronwalsman) in [#178](https://github.com/Farama-Foundation/Gymnasium/pull/178)
* Add documentation for ``MuJoCo.Ant-v4.use_contact_forces`` by [@Kallinteris-Andreas](https://github.com/Kallinteris-Andreas) in [#183](https://github.com/Farama-Foundation/Gymnasium/pull/183)
* Fix typos in README.md by [@cool-RR](https://github.com/cool-RR) in [#184](https://github.com/Farama-Foundation/Gymnasium/pull/184)
* Add documentation for ``MuJoCo.Ant`` v4 changelog by [@Kallinteris-Andreas](https://github.com/Kallinteris-Andreas) in [#186](https://github.com/Farama-Foundation/Gymnasium/pull/186)
* Fix ``MuJoCo.Ant`` action order in documentation by [@Kallinteris-Andreas](https://github.com/Kallinteris-Andreas) in [#208](https://github.com/Farama-Foundation/Gymnasium/pull/208)
* Add ``raise-from`` exception for the whole codebase by [@cool-RR](https://github.com/cool-RR) in [#205](https://github.com/Farama-Foundation/Gymnasium/pull/205)
## Behind-the-scenes changes
* Docs Versioning by [@mgoulao](https://github.com/mgoulao) in [#73](https://github.com/Farama-Foundation/Gymnasium/pull/73)
* Added Atari environments to tests, removed dead code by [@Markus28](https://github.com/Markus28) in [#78](https://github.com/Farama-Foundation/Gymnasium/pull/78)
* Fix missing build steps in versioning workflows by [@mgoulao](https://github.com/mgoulao) in [#81](https://github.com/Farama-Foundation/Gymnasium/pull/81)
* Small improvements to environments pages by [@mgoulao](https://github.com/mgoulao) in [#110](https://github.com/Farama-Foundation/Gymnasium/pull/110)
* Update the third-party environment documentation by [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) in [#138](https://github.com/Farama-Foundation/Gymnasium/pull/138)
* Update docstrings for improved documentation by [@axb2035](https://github.com/axb2035) in [#160](https://github.com/Farama-Foundation/Gymnasium/pull/160)
* Test core dependencies in CI by [@pseudo-rnd-thoughts](https://github.com/pseudo-rnd-thoughts) in [#146](https://github.com/Farama-Foundation/Gymnasium/pull/146)
* Update and rerun ``pre-commit`` hooks for better code quality by [@XuehaiPan](https://github.com/XuehaiPan) in [#179](https://github.com/Farama-Foundation/Gymnasium/pull/179)
**Full Changelog**: https://github.com/Farama-Foundation/Gymnasium/compare/v0.26.3...v0.27.0
**Github Release**: https://github.com/Farama-Foundation/Gymnasium/releases/tag/v0.27.0