Skip to content

v2.3.0-rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@EwoutH EwoutH released this 19 Apr 08:56
· 389 commits to main since this release

Highlights

The 2.3.0-rc1 release is our first release candidate pre-release, meant to test all the new features and enhancement for the upcoming 2.3.0 release.

There are two main new features:

  • The experimental cell-centric discrete spaces, as added in #1994. It allows having cells with not only properties but also active behaviors: the CellAgent. Its inspired by NetLogo's patches but extend and generalize this concept further.
  • Full support for discrete event scheduling, as added in #2066. It allows scheduling events (like Agent actions) at any time, including non-integer timesteps.

There are a lot of other features: The Jupyter visualisation now supports easier way to specify sliders, NetworkGrid.get_neighbors() supports a radius, AgentSet.get() can retrieve multiple attributes and there are now benchmarks to track Mesa performance during development.

Finally, 2.3.0 stabilizes the AgentSet (including model.agents), making it the first experimental Mesa feature that is taken out of it's experimental phase.

Install this pre-release with:

pip install --pre mesa

We would love feedback before we release 2.3.0 stable in ~1 week.

What's Changed

🧪 Experimental features

  • Add cell-centric discrete spaces (experimental) by @Corvince in #1994

🎉 New features added

🛠 Enhancements made

  • JupyterViz: Automatically deduce display name from model class by @rht in #1975
  • Add radius argument to NetworkGrid.get_neighbors() by @EwoutH in #1973
  • Speedup of Agentset.shuffle by @quaquel in #2010
  • feat: Let mesa runserver detect server.py as fallback by @rht in #2015
  • JupyterViz: {Convert make_plot & prepare ColorCard} to become Solara component by @rht in #2020
  • new feature: AgentSet.get can retrieve one or more then one attribute by @quaquel in #2044
  • Update CODE_OF_CONDUCT.md to version 2+ of contrib convenant by @jackiekazil in #2052
  • Improve flocking benchmark by @coderbeta1 in #2054
  • Remove JupyterViz Altair marker overlap for huge grid size by @rht in #2062
  • Add tooltip option to Altair chart by @FoFFolo in #2082
  • feat: Display model seed & allow user to specify it in JupyterViz by @rht in #2069
  • warn if placing already placed agent by @puer-robustus in #2083

🐛 Bugs fixed

  • fix: Apply default value to slider by @rht in #2016
  • fix: Initialize model _steps and _time during new by @rht in #2026
  • fix: Use model.schedule only when it is not None by @rht in #2050
  • fix: Remove JupyterViz grid marker overlap for huge grid size by @rht in #2049

📜 Documentation improvements

  • Improve readability of badges by @rht in #2009
  • More pythonic implementation of wolf sheep by @quaquel in #2011
  • Adding super().init() to MoneyModel tutorial by @sw23 in #2025
  • docs: Convert howto.rst -> howto.md via rst2myst by @rht in #2033
  • docs: Convert best-practices,overview,packages,mesa,index to .md via rst2myst by @rht in #2034
  • docs: Convert api/.rst -> api/.md via rst2myst by @rht in #2035
  • docs: Rewrite howto.md using ChatGPT for clarity and conciseness by @rht in #2037
  • docs: Corrected Contributing Guide Link to Ensure Accessibility by @sahusiddharth in #2057
  • Rename links to internal .rst files to .md by @rht in #2058
  • docs: improve introductory tutorial by @puer-robustus in #2087

🔧 Maintenance

  • Quality of Life: Make codecov less meticulous by @Corvince in #1966
  • Add CI workflow for performance benchmarks by @EwoutH in #1983
  • tests: Resolve warnings by defining PropertyLayer dtypes by @EwoutH in #1987
  • benchmarks.yml: Fix PR branch checkout when triggered by comment by @EwoutH in #1998
  • Quality of life: automatically fix ruff errors by @Corvince in #2004
  • benchmarks.yml: Run on addition of label instead of comment by @EwoutH in #2002
  • ci: Move codespell to pre-commit by @rht in #2040
  • Schelling by @coderbeta1 in #2053
  • Move ruff lint settings into dedicated section by @Corvince in #2073
  • ci: Use uv pip for faster build by @rht in #2038
  • test: Remove place_agent duplicate warnings by @rht in #2086

Other changes

New Contributors

Full Changelog: v2.2.4...2.3.0-rc1