|
1 | 1 | ---
|
2 | 2 | title: Release History
|
3 | 3 | ---
|
| 4 | +# 3.0.0a3 (2024-08-30) |
| 5 | +## Highlights |
| 6 | +Developments toward Mesa 3.0 are steaming ahead, and our fourth alpha release is packed with features and updates - only 8 days after our third. |
| 7 | + |
| 8 | +Mesa 3.0.0a3 contains one breaking change: We now automatically increase the `steps` counter by one at the beginning of each `Model.steps()` call. That means increasing `steps` by hand isn't necessary anymore. |
| 9 | + |
| 10 | +The big new features is the experimental Voronoi grid that @vitorfrois implemented in #2084. It allows creating cells in a [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram) layout as part of the experimental cell space. An example using it to model Cholera spread can be [found here](https://github.com/projectmesa/mesa-examples/pull/118). |
| 11 | + |
| 12 | +The AgentSet got a lot of love with two brand new methods: `.groupby()` to split in groups (#2220) and `.set()` to easily assign variables to all agents in that set (#2254). The `select()` method is improved by allowing to select at most a fraction of the agents (#2253), and we split the `do()` method in `do()` and `map()` to make a distinction between the return types (#2237). |
| 13 | + |
| 14 | +Furthermore, we improved the performance of accessing `Model.agents`, squashed a bug in SolaraViz, started testing on Python 3.13 and added a new benchmark model. |
| 15 | + |
| 16 | +Our example models also got more love: We removed the `RandomActivation` scheduler in 14 models and removed SimultaneousActivation in 3 models ([examples#183](https://github.com/projectmesa/mesa-examples/pull/183)). They now use the automatic step increase and AgentSet functionality. We started testing our GIS model in CI ([examples#171](https://github.com/projectmesa/mesa-examples/pull/171)) and resolved a lot of bugs in them ([examples#172](https://github.com/projectmesa/mesa-examples/issues/172), help appreciated!). |
| 17 | + |
| 18 | +Finally, we have two brand new examples: An Ant Colony Optimization model using an Ant System approach to the Traveling Salesman problem, a Mesa NetworkGrid, and a custom visualisation with SolaraViz ([examples#157](https://github.com/projectmesa/mesa-examples/pull/157) by @zjost). The first example using the `PropertyLayer` was added, a very fast implementation of Conway's Game of Life ([examples#182](https://github.com/projectmesa/mesa-examples/pull/182)). |
| 19 | + |
| 20 | +To help the transition to Mesa 3.0, we started writing a [migration guide](https://mesa.readthedocs.io/en/latest/migration_guide.html). Progress is tracked in #2233, feedback and help is appreciated! Finally, we also added a new section to our [contributor guide](https://github.com/projectmesa/mesa/blob/main/CONTRIBUTING.md#i-have-no-idea-where-to-start) to get new contributors up to speed. |
| 21 | + |
| 22 | +This pre-release can be installed as always with `pip install --pre mesa` |
| 23 | + |
| 24 | +## What's Changed |
| 25 | +### ⚠️ Breaking changes |
| 26 | +* model: Automatically increase `steps` counter by @EwoutH in https://github.com/projectmesa/mesa/pull/2223 |
| 27 | +### 🧪 Experimental features |
| 28 | +* Voronoi Tessellation based Discrete Space by @vitorfrois in https://github.com/projectmesa/mesa/pull/2084 |
| 29 | +### 🎉 New features added |
| 30 | +* Add AgentSet.groupby by @quaquel in https://github.com/projectmesa/mesa/pull/2220 |
| 31 | +* AgentSet: Add `set` method by @EwoutH in https://github.com/projectmesa/mesa/pull/2254 |
| 32 | +### 🛠 Enhancements made |
| 33 | +* Split AgentSet into map and do to separate return types by @quaquel in https://github.com/projectmesa/mesa/pull/2237 |
| 34 | +* Performance enhancements for Model.agents by @quaquel in https://github.com/projectmesa/mesa/pull/2251 |
| 35 | +* AgentSet: Allow selecting a fraction of agents in the AgentSet by @EwoutH in https://github.com/projectmesa/mesa/pull/2253 |
| 36 | +### 🐛 Bugs fixed |
| 37 | +* SolaraViz: Reset components when params are changed by @rht in https://github.com/projectmesa/mesa/pull/2240 |
| 38 | +### 📜 Documentation improvements |
| 39 | +* Contribution: Add "I have no idea where to start" section by @EwoutH in https://github.com/projectmesa/mesa/pull/2258 |
| 40 | +* Write initial Mesa Migration guide by @EwoutH in https://github.com/projectmesa/mesa/pull/2257 |
| 41 | +### 🔧 Maintenance |
| 42 | +* CI: Add test job for Python 3.13 by @EwoutH in https://github.com/projectmesa/mesa/pull/2173 |
| 43 | +* Add pull request templates by @EwoutH in https://github.com/projectmesa/mesa/pull/2217 |
| 44 | +* benchmarks: Add BoltzmannWealth model by @EwoutH in https://github.com/projectmesa/mesa/pull/2252 |
| 45 | +* CI: Add optional dependency for examples by @EwoutH in https://github.com/projectmesa/mesa/pull/2261 |
| 46 | + |
| 47 | +## New Contributors |
| 48 | +* @vitorfrois made their first contribution in https://github.com/projectmesa/mesa/pull/2084 |
| 49 | + |
| 50 | +**Full Changelog**: https://github.com/projectmesa/mesa/compare/v3.0.0a2...v3.0.0a3 |
| 51 | + |
4 | 52 | # 3.0.0a2 (2024-08-21)
|
5 | 53 | ## Highlights
|
6 | 54 | In Mesa 3.0 alpha 2 (`v3.0.0a2`) we've done more clean-up in preparation for Mesa 3.0. We now [require](https://github.com/projectmesa/mesa/pull/2218) `super().__init__()` to run on initializing a Mesa model subclass, `Model.agents` is now fully reserved for the Model's internal AgentSet and we fixed a bug in our Solara space_drawer.
|
|
0 commit comments