Mesa 2.4.0__tar.gz → 3.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of Mesa might be problematic. Click here for more details.

Files changed (236) hide show
  1. {mesa-2.4.0 → mesa-3.0.0}/.codespellignore +1 -0
  2. {mesa-2.4.0 → mesa-3.0.0}/.github/ISSUE_TEMPLATE/bug-report.md +2 -1
  3. mesa-3.0.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
  4. mesa-3.0.0/.github/PULL_REQUEST_TEMPLATE/bug.md +16 -0
  5. mesa-3.0.0/.github/PULL_REQUEST_TEMPLATE/feature.md +16 -0
  6. mesa-3.0.0/.github/pull_request_template.md +4 -0
  7. {mesa-2.4.0 → mesa-3.0.0}/.github/release.yml +3 -0
  8. {mesa-2.4.0 → mesa-3.0.0}/.github/workflows/benchmarks.yml +1 -1
  9. {mesa-2.4.0 → mesa-3.0.0}/.github/workflows/build_lint.yml +10 -10
  10. {mesa-2.4.0 → mesa-3.0.0}/.github/workflows/release.yml +2 -1
  11. {mesa-2.4.0 → mesa-3.0.0}/.gitignore +4 -0
  12. {mesa-2.4.0 → mesa-3.0.0}/.pre-commit-config.yaml +5 -5
  13. {mesa-2.4.0 → mesa-3.0.0}/CODE_OF_CONDUCT.md +1 -1
  14. {mesa-2.4.0 → mesa-3.0.0}/CONTRIBUTING.md +18 -0
  15. {mesa-2.4.0 → mesa-3.0.0}/HISTORY.md +517 -50
  16. mesa-3.0.0/LICENSE +202 -0
  17. mesa-2.4.0/LICENSE → mesa-3.0.0/NOTICE +2 -2
  18. {mesa-2.4.0 → mesa-3.0.0}/PKG-INFO +62 -17
  19. {mesa-2.4.0 → mesa-3.0.0}/README.md +21 -6
  20. mesa-3.0.0/benchmarks/BoltzmannWealth/__init__.py +1 -0
  21. mesa-3.0.0/benchmarks/BoltzmannWealth/boltzmann_wealth.py +112 -0
  22. mesa-3.0.0/benchmarks/Flocking/__init__.py +1 -0
  23. {mesa-2.4.0 → mesa-3.0.0}/benchmarks/Flocking/flocking.py +20 -30
  24. mesa-3.0.0/benchmarks/Schelling/__init__.py +1 -0
  25. {mesa-2.4.0 → mesa-3.0.0}/benchmarks/Schelling/schelling.py +44 -40
  26. mesa-3.0.0/benchmarks/WolfSheep/__init__.py +1 -0
  27. {mesa-2.4.0 → mesa-3.0.0}/benchmarks/WolfSheep/wolf_sheep.py +47 -71
  28. {mesa-2.4.0 → mesa-3.0.0}/benchmarks/compare_timings.py +13 -2
  29. {mesa-2.4.0 → mesa-3.0.0}/benchmarks/configurations.py +27 -1
  30. {mesa-2.4.0 → mesa-3.0.0}/benchmarks/global_benchmark.py +30 -7
  31. mesa-3.0.0/binder/environment.yml +14 -0
  32. {mesa-2.4.0 → mesa-3.0.0}/codecov.yaml +3 -2
  33. {mesa-2.4.0 → mesa-3.0.0}/docs/README.md +4 -5
  34. mesa-3.0.0/docs/apis/agent.md +8 -0
  35. {mesa-2.4.0 → mesa-3.0.0}/docs/apis/api_main.md +2 -1
  36. {mesa-2.4.0 → mesa-3.0.0}/docs/apis/batchrunner.md +2 -0
  37. {mesa-2.4.0 → mesa-3.0.0}/docs/apis/datacollection.md +2 -0
  38. {mesa-2.4.0 → mesa-3.0.0}/docs/apis/experimental.md +4 -8
  39. mesa-3.0.0/docs/apis/model.md +7 -0
  40. {mesa-2.4.0 → mesa-3.0.0}/docs/apis/space.md +2 -0
  41. {mesa-2.4.0 → mesa-3.0.0}/docs/apis/time.md +2 -0
  42. mesa-3.0.0/docs/apis/visualization.md +47 -0
  43. {mesa-2.4.0 → mesa-3.0.0}/docs/best-practices.md +20 -21
  44. {mesa-2.4.0 → mesa-3.0.0}/docs/conf.py +84 -5
  45. mesa-3.0.0/docs/example_template.txt +22 -0
  46. mesa-3.0.0/docs/examples_overview_template.txt +13 -0
  47. mesa-3.0.0/docs/getting_started.md +262 -0
  48. mesa-3.0.0/docs/images/wolf_sheep.png +0 -0
  49. mesa-3.0.0/docs/index.md +101 -0
  50. {mesa-2.4.0 → mesa-3.0.0}/docs/mesa.md +0 -6
  51. {mesa-2.4.0 → mesa-3.0.0}/docs/migration_guide.md +53 -12
  52. {mesa-2.4.0 → mesa-3.0.0}/docs/tutorials/MoneyModel.py +24 -9
  53. {mesa-2.4.0 → mesa-3.0.0}/docs/tutorials/intro_tutorial.ipynb +738 -308
  54. mesa-3.0.0/docs/tutorials/visualization_tutorial.ipynb +433 -0
  55. mesa-3.0.0/maintenance/fetch_unlabeled_prs.py +82 -0
  56. {mesa-2.4.0 → mesa-3.0.0}/mesa/__init__.py +3 -5
  57. {mesa-2.4.0 → mesa-3.0.0}/mesa/agent.py +105 -92
  58. {mesa-2.4.0 → mesa-3.0.0}/mesa/batchrunner.py +55 -31
  59. {mesa-2.4.0 → mesa-3.0.0}/mesa/datacollection.py +10 -14
  60. mesa-3.0.0/mesa/examples/README.md +37 -0
  61. mesa-3.0.0/mesa/examples/__init__.py +21 -0
  62. mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence/Epstein Civil Violence.ipynb +116 -0
  63. mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence/Readme.md +34 -0
  64. mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence/agents.py +164 -0
  65. mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence/app.py +73 -0
  66. mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence/model.py +114 -0
  67. mesa-3.0.0/mesa/examples/advanced/pd_grid/Readme.md +43 -0
  68. mesa-3.0.0/mesa/examples/advanced/pd_grid/agents.py +50 -0
  69. mesa-3.0.0/mesa/examples/advanced/pd_grid/analysis.ipynb +228 -0
  70. mesa-3.0.0/mesa/examples/advanced/pd_grid/app.py +54 -0
  71. mesa-3.0.0/mesa/examples/advanced/pd_grid/model.py +71 -0
  72. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/Readme.md +64 -0
  73. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/agents.py +344 -0
  74. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/app.py +62 -0
  75. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/model.py +180 -0
  76. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/sugar-map.txt +50 -0
  77. mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt/tests.py +69 -0
  78. mesa-3.0.0/mesa/examples/advanced/wolf_sheep/Readme.md +57 -0
  79. mesa-3.0.0/mesa/examples/advanced/wolf_sheep/agents.py +102 -0
  80. mesa-3.0.0/mesa/examples/advanced/wolf_sheep/app.py +84 -0
  81. mesa-3.0.0/mesa/examples/advanced/wolf_sheep/model.py +137 -0
  82. mesa-3.0.0/mesa/examples/basic/__init__.py +0 -0
  83. mesa-3.0.0/mesa/examples/basic/boid_flockers/Readme.md +22 -0
  84. mesa-3.0.0/mesa/examples/basic/boid_flockers/__init__.py +0 -0
  85. mesa-3.0.0/mesa/examples/basic/boid_flockers/agents.py +71 -0
  86. mesa-3.0.0/mesa/examples/basic/boid_flockers/app.py +58 -0
  87. mesa-3.0.0/mesa/examples/basic/boid_flockers/model.py +69 -0
  88. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/Readme.md +56 -0
  89. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/__init__.py +0 -0
  90. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/agents.py +31 -0
  91. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/app.py +74 -0
  92. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/model.py +43 -0
  93. mesa-3.0.0/mesa/examples/basic/boltzmann_wealth_model/st_app.py +115 -0
  94. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/Readme.md +39 -0
  95. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/__init__.py +0 -0
  96. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/agents.py +47 -0
  97. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/app.py +51 -0
  98. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/model.py +31 -0
  99. mesa-3.0.0/mesa/examples/basic/conways_game_of_life/st_app.py +72 -0
  100. mesa-3.0.0/mesa/examples/basic/schelling/Readme.md +40 -0
  101. mesa-3.0.0/mesa/examples/basic/schelling/__init__.py +0 -0
  102. mesa-3.0.0/mesa/examples/basic/schelling/agents.py +26 -0
  103. mesa-3.0.0/mesa/examples/basic/schelling/analysis.ipynb +205 -0
  104. mesa-3.0.0/mesa/examples/basic/schelling/app.py +42 -0
  105. mesa-3.0.0/mesa/examples/basic/schelling/model.py +59 -0
  106. mesa-3.0.0/mesa/examples/basic/virus_on_network/Readme.md +61 -0
  107. mesa-3.0.0/mesa/examples/basic/virus_on_network/__init__.py +0 -0
  108. mesa-3.0.0/mesa/examples/basic/virus_on_network/agents.py +69 -0
  109. mesa-3.0.0/mesa/examples/basic/virus_on_network/app.py +114 -0
  110. mesa-3.0.0/mesa/examples/basic/virus_on_network/model.py +96 -0
  111. {mesa-2.4.0 → mesa-3.0.0}/mesa/experimental/UserParam.py +18 -7
  112. mesa-3.0.0/mesa/experimental/__init__.py +13 -0
  113. {mesa-2.4.0 → mesa-3.0.0}/mesa/experimental/cell_space/__init__.py +16 -1
  114. mesa-3.0.0/mesa/experimental/cell_space/cell.py +222 -0
  115. mesa-3.0.0/mesa/experimental/cell_space/cell_agent.py +133 -0
  116. mesa-3.0.0/mesa/experimental/cell_space/cell_collection.py +118 -0
  117. mesa-3.0.0/mesa/experimental/cell_space/discrete_space.py +148 -0
  118. {mesa-2.4.0 → mesa-3.0.0}/mesa/experimental/cell_space/grid.py +33 -9
  119. {mesa-2.4.0 → mesa-3.0.0}/mesa/experimental/cell_space/network.py +15 -10
  120. mesa-3.0.0/mesa/experimental/cell_space/voronoi.py +257 -0
  121. {mesa-2.4.0 → mesa-3.0.0}/mesa/experimental/components/altair.py +11 -2
  122. mesa-3.0.0/mesa/experimental/components/matplotlib.py +242 -0
  123. {mesa-2.4.0 → mesa-3.0.0}/mesa/experimental/devs/__init__.py +2 -0
  124. {mesa-2.4.0 → mesa-3.0.0}/mesa/experimental/devs/eventlist.py +54 -15
  125. {mesa-2.4.0 → mesa-3.0.0}/mesa/experimental/devs/examples/epstein_civil_violence.py +69 -38
  126. {mesa-2.4.0 → mesa-3.0.0}/mesa/experimental/devs/examples/wolf_sheep.py +42 -43
  127. {mesa-2.4.0 → mesa-3.0.0}/mesa/experimental/devs/simulator.py +57 -16
  128. mesa-2.4.0/mesa/experimental/jupyter_viz.py → mesa-3.0.0/mesa/experimental/solara_viz.py +151 -99
  129. mesa-3.0.0/mesa/model.py +291 -0
  130. {mesa-2.4.0 → mesa-3.0.0}/mesa/space.py +208 -148
  131. {mesa-2.4.0 → mesa-3.0.0}/mesa/time.py +63 -80
  132. mesa-3.0.0/mesa/visualization/__init__.py +26 -0
  133. mesa-3.0.0/mesa/visualization/components/__init__.py +83 -0
  134. mesa-3.0.0/mesa/visualization/components/altair_components.py +188 -0
  135. mesa-3.0.0/mesa/visualization/components/matplotlib_components.py +175 -0
  136. mesa-3.0.0/mesa/visualization/mpl_space_drawing.py +593 -0
  137. mesa-3.0.0/mesa/visualization/solara_viz.py +458 -0
  138. mesa-3.0.0/mesa/visualization/user_param.py +69 -0
  139. mesa-3.0.0/mesa/visualization/utils.py +9 -0
  140. {mesa-2.4.0 → mesa-3.0.0}/pyproject.toml +31 -13
  141. mesa-3.0.0/tests/__init__.py +1 -0
  142. {mesa-2.4.0 → mesa-3.0.0}/tests/read_requirements.py +1 -0
  143. {mesa-2.4.0 → mesa-3.0.0}/tests/test_agent.py +160 -94
  144. {mesa-2.4.0 → mesa-3.0.0}/tests/test_batch_run.py +49 -38
  145. mesa-3.0.0/tests/test_cell_space.py +752 -0
  146. mesa-3.0.0/tests/test_components_matplotlib.py +237 -0
  147. {mesa-2.4.0 → mesa-3.0.0}/tests/test_datacollector.py +48 -97
  148. {mesa-2.4.0 → mesa-3.0.0}/tests/test_devs.py +6 -0
  149. mesa-3.0.0/tests/test_examples.py +72 -0
  150. {mesa-2.4.0 → mesa-3.0.0}/tests/test_grid.py +38 -88
  151. {mesa-2.4.0 → mesa-3.0.0}/tests/test_import_namespace.py +7 -12
  152. {mesa-2.4.0 → mesa-3.0.0}/tests/test_lifespan.py +25 -26
  153. {mesa-2.4.0 → mesa-3.0.0}/tests/test_model.py +49 -8
  154. mesa-3.0.0/tests/test_solara_viz.py +215 -0
  155. {mesa-2.4.0 → mesa-3.0.0}/tests/test_space.py +139 -172
  156. {mesa-2.4.0 → mesa-3.0.0}/tests/test_time.py +70 -95
  157. mesa-2.4.0/.github/ISSUE_TEMPLATE/asking-help.md +0 -9
  158. mesa-2.4.0/docs/apis/init.md +0 -11
  159. mesa-2.4.0/docs/apis/visualization.md +0 -38
  160. mesa-2.4.0/docs/howto.md +0 -83
  161. mesa-2.4.0/docs/images/Mesa_Screenshot.png +0 -0
  162. mesa-2.4.0/docs/index.md +0 -106
  163. mesa-2.4.0/docs/mesa.visualization.md +0 -46
  164. mesa-2.4.0/docs/mesa.visualization.modules.md +0 -76
  165. mesa-2.4.0/docs/modular-visualization.md +0 -249
  166. mesa-2.4.0/docs/overview.md +0 -195
  167. mesa-2.4.0/docs/packages.md +0 -110
  168. mesa-2.4.0/docs/tutorials/adv_tutorial_legacy.ipynb +0 -510
  169. mesa-2.4.0/docs/tutorials/visualization_tutorial.ipynb +0 -271
  170. mesa-2.4.0/mesa/cookiecutter-mesa/cookiecutter.json +0 -8
  171. mesa-2.4.0/mesa/cookiecutter-mesa/hooks/post_gen_project.py +0 -11
  172. mesa-2.4.0/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/README.md +0 -4
  173. mesa-2.4.0/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/run.pytemplate +0 -3
  174. mesa-2.4.0/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/setup.pytemplate +0 -11
  175. mesa-2.4.0/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/{{cookiecutter.snake}}/model.pytemplate +0 -60
  176. mesa-2.4.0/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/{{cookiecutter.snake}}/server.pytemplate +0 -36
  177. mesa-2.4.0/mesa/experimental/__init__.py +0 -5
  178. mesa-2.4.0/mesa/experimental/cell_space/cell.py +0 -152
  179. mesa-2.4.0/mesa/experimental/cell_space/cell_agent.py +0 -37
  180. mesa-2.4.0/mesa/experimental/cell_space/cell_collection.py +0 -81
  181. mesa-2.4.0/mesa/experimental/cell_space/discrete_space.py +0 -64
  182. mesa-2.4.0/mesa/experimental/components/matplotlib.py +0 -136
  183. mesa-2.4.0/mesa/flat/__init__.py +0 -6
  184. mesa-2.4.0/mesa/flat/visualization.py +0 -5
  185. mesa-2.4.0/mesa/main.py +0 -63
  186. mesa-2.4.0/mesa/model.py +0 -233
  187. mesa-2.4.0/mesa/visualization/ModularVisualization.py +0 -1
  188. mesa-2.4.0/mesa/visualization/TextVisualization.py +0 -1
  189. mesa-2.4.0/mesa/visualization/UserParam.py +0 -1
  190. mesa-2.4.0/mesa/visualization/__init__.py +0 -7
  191. mesa-2.4.0/mesa/visualization/modules.py +0 -1
  192. mesa-2.4.0/tests/test_cell_space.py +0 -465
  193. mesa-2.4.0/tests/test_examples.py +0 -68
  194. mesa-2.4.0/tests/test_jupyter_viz.py +0 -153
  195. mesa-2.4.0/tests/test_main.py +0 -34
  196. mesa-2.4.0/tests/test_scaffold.py +0 -22
  197. mesa-2.4.0/tests/test_tornado.py +0 -41
  198. mesa-2.4.0/tests/test_usersettableparam.py +0 -57
  199. mesa-2.4.0/tests/test_visualization.py +0 -105
  200. {mesa-2.4.0 → mesa-3.0.0}/.coveragerc +0 -0
  201. {mesa-2.4.0 → mesa-3.0.0}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  202. {mesa-2.4.0 → mesa-3.0.0}/.github/dependabot.yml +0 -0
  203. {mesa-2.4.0 → mesa-3.0.0}/.readthedocs.yml +0 -0
  204. {mesa-2.4.0 → mesa-3.0.0}/CITATION.bib +0 -0
  205. {mesa-2.4.0 → mesa-3.0.0}/Dockerfile +0 -0
  206. {mesa-2.4.0 → mesa-3.0.0}/docker-compose.yml +0 -0
  207. {mesa-2.4.0 → mesa-3.0.0}/docs/Makefile +0 -0
  208. {mesa-2.4.0 → mesa-3.0.0}/docs/_static/switcher.json +0 -0
  209. {mesa-2.4.0 → mesa-3.0.0}/docs/images/mesa_logo.ico +0 -0
  210. {mesa-2.4.0 → mesa-3.0.0}/docs/images/mesa_logo.png +0 -0
  211. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/br_ginis.png +0 -0
  212. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/dc_endwealth.png +0 -0
  213. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/dc_gini.png +0 -0
  214. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/dc_oneagent.png +0 -0
  215. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/first_hist.png +0 -0
  216. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/multirun_hist.png +0 -0
  217. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/numpy_grid.png +0 -0
  218. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/viz_chart.png +0 -0
  219. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/viz_empty.png +0 -0
  220. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/viz_greycircles.png +0 -0
  221. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/viz_histogram.png +0 -0
  222. {mesa-2.4.0 → mesa-3.0.0}/docs/images/tutorial/viz_redcircles.png +0 -0
  223. {mesa-2.4.0 → mesa-3.0.0}/docs/make.bat +0 -0
  224. {mesa-2.4.0 → mesa-3.0.0}/docs/tutorials/files/viz_chart.png +0 -0
  225. {mesa-2.4.0 → mesa-3.0.0}/docs/tutorials/files/viz_empty.png +0 -0
  226. {mesa-2.4.0 → mesa-3.0.0}/docs/tutorials/files/viz_greycircles.png +0 -0
  227. {mesa-2.4.0 → mesa-3.0.0}/docs/tutorials/files/viz_histogram.png +0 -0
  228. {mesa-2.4.0 → mesa-3.0.0}/docs/tutorials/files/viz_redcircles.png +0 -0
  229. {mesa-2.4.0 → mesa-3.0.0}/docs/tutorials/files/viz_slider.png +0 -0
  230. {mesa-2.4.0/benchmarks/Flocking → mesa-3.0.0/mesa/examples/advanced}/__init__.py +0 -0
  231. {mesa-2.4.0/benchmarks/Schelling → mesa-3.0.0/mesa/examples/advanced/epstein_civil_violence}/__init__.py +0 -0
  232. {mesa-2.4.0/benchmarks/WolfSheep → mesa-3.0.0/mesa/examples/advanced/pd_grid}/__init__.py +0 -0
  233. {mesa-2.4.0/mesa/cookiecutter-mesa/{{cookiecutter.snake}}/{{cookiecutter.snake}} → mesa-3.0.0/mesa/examples/advanced/sugarscape_g1mt}/__init__.py +0 -0
  234. {mesa-2.4.0/tests → mesa-3.0.0/mesa/examples/advanced/wolf_sheep}/__init__.py +0 -0
  235. {mesa-2.4.0 → mesa-3.0.0}/mypy.ini +0 -0
  236. {mesa-2.4.0 → mesa-3.0.0}/tests/test_end_to_end_viz.sh +0 -0
@@ -6,3 +6,4 @@ inactivate
6
6
  ue
7
7
  fpr
8
8
  falsy
9
+ assertIn
@@ -11,7 +11,8 @@ about: Let us know if something is broken on Mesa
11
11
  <!-- A clear and concise description of what you expected to happen -->
12
12
 
13
13
  **To Reproduce**
14
- <!-- Steps to reproduce the bug, or a link to a project where the bug is visible -->
14
+ <!-- Steps to reproduce the bug, or a link to a project where the bug is visible
15
+ Include a Minimal reproducible example: https://stackoverflow.com/help/minimal-reproducible-example -->
15
16
 
16
17
  **Additional context**
17
18
  <!--
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: Questions, ideas, showcases and more
4
+ url: https://github.com/projectmesa/mesa/discussions
5
+ about: Discuss Mesa, ask questions, share ideas, and showcase your projects
@@ -0,0 +1,16 @@
1
+ ## Summary
2
+ <!-- Provide a brief summary of the bug and its impact. -->
3
+
4
+ ## Bug / Issue
5
+ <!-- Link to the related issue(s) and describe the bug. Include details like the context, what was expected, and what actually happened. -->
6
+
7
+ ## Implementation
8
+ <!-- Describe the changes made to resolve the issue. Highlight any important parts of the code that were modified. -->
9
+
10
+ ## Testing
11
+ <!-- Detail the testing performed to verify the fix. Include information on test cases, steps taken, and any relevant results.
12
+
13
+ If you're fixing the visualisation, add before/after screenshots. -->
14
+
15
+ ## Additional Notes
16
+ <!-- Add any additional information that may be relevant for the reviewers, such as potential side effects, dependencies, or related work.
@@ -0,0 +1,16 @@
1
+ ## Summary
2
+ <!-- Provide a concise summary of the feature and its purpose. -->
3
+
4
+ ## Motive
5
+ <!-- Explain the reasoning behind this feature. Include details on the problem it addresses or the enhancement it provides. -->
6
+
7
+ ## Implementation
8
+ <!-- Describe how the feature was implemented. Include details on the approach taken, important decisions made, and code changes. -->
9
+
10
+ ## Usage Examples
11
+ <!-- Provide code snippets or examples demonstrating how to use the new feature. Highlight key scenarios where this feature will be beneficial.
12
+
13
+ If you're modifying the visualisation, add before/after screenshots. -->
14
+
15
+ ## Additional Notes
16
+ <!-- Add any additional information that may be relevant for the reviewers, such as potential side effects, dependencies, or related work. -->
@@ -0,0 +1,4 @@
1
+ Thanks for opening a PR! Please click the `Preview` tab and select a PR template:
2
+
3
+ - [🐛 Bug fix](?expand=1&template=bug.md)
4
+ - [🛠 Feature/enhancement](?expand=1&template=feature.md)
@@ -19,6 +19,9 @@ changelog:
19
19
  - title: 🐛 Bugs fixed
20
20
  labels:
21
21
  - bug
22
+ - title: 🔍 Examples updated
23
+ labels:
24
+ - example
22
25
  - title: 📜 Documentation improvements
23
26
  labels:
24
27
  - docs
@@ -25,7 +25,7 @@ jobs:
25
25
  - name: Set up Python
26
26
  uses: actions/setup-python@v5
27
27
  with:
28
- python-version: '3.12'
28
+ python-version: '3.13'
29
29
  - name: Add project directory to PYTHONPATH
30
30
  run: echo "PYTHONPATH=$PYTHONPATH:$(pwd)" >> $GITHUB_ENV
31
31
  - name: Install dependencies
@@ -31,16 +31,14 @@ jobs:
31
31
  fail-fast: False
32
32
  matrix:
33
33
  os: [windows, ubuntu, macos]
34
- python-version: ["3.12"]
34
+ python-version: ["3.13"]
35
35
  include:
36
36
  - os: ubuntu
37
- python-version: "3.13"
37
+ python-version: "3.12"
38
38
  - os: ubuntu
39
39
  python-version: "3.11"
40
40
  - os: ubuntu
41
41
  python-version: "3.10"
42
- - os: ubuntu
43
- python-version: "3.9"
44
42
  # Disabled for now. See https://github.com/projectmesa/mesa/issues/1253
45
43
  #- os: ubuntu
46
44
  # python-version: 'pypy-3.8'
@@ -55,14 +53,16 @@ jobs:
55
53
  cache: 'pip'
56
54
  - name: Install uv
57
55
  run: pip install uv
58
- - name: Install Mesa
59
- # See https://github.com/astral-sh/uv/issues/1945
56
+ - name: Install Mesa and dependencies
60
57
  run: uv pip install --system .[dev]
61
58
  - name: Test with pytest
62
59
  run: pytest --durations=10 --cov=mesa tests/ --cov-report=xml
63
60
  - if: matrix.os == 'ubuntu'
64
61
  name: Codecov
65
62
  uses: codecov/codecov-action@v4
63
+ with:
64
+ fail_ci_if_error: true
65
+ token: ${{ secrets.CODECOV_TOKEN }}
66
66
 
67
67
  examples:
68
68
  runs-on: ubuntu-latest
@@ -71,19 +71,19 @@ jobs:
71
71
  - name: Set up Python
72
72
  uses: actions/setup-python@v5
73
73
  with:
74
- python-version: "3.12"
74
+ python-version: "3.13"
75
+ allow-prereleases: true
75
76
  cache: 'pip'
76
77
  - name: Install uv
77
78
  run: pip install uv
78
79
  - name: Install Mesa
79
- run: uv pip install --system .[dev]
80
+ run: uv pip install --system .[examples]
80
81
  - name: Checkout mesa-examples
81
82
  uses: actions/checkout@v4
82
83
  with:
83
84
  repository: projectmesa/mesa-examples
84
85
  path: mesa-examples
85
- ref: mesa-2.x # Legacy branch for mesa-examples that work with Mesa 2.x
86
86
  - name: Test examples
87
87
  run: |
88
88
  cd mesa-examples
89
- pytest test_examples.py
89
+ pytest -rA -Werror -Wdefault::FutureWarning test_examples.py
@@ -32,7 +32,8 @@ jobs:
32
32
  - name: Set up Python
33
33
  uses: actions/setup-python@v5
34
34
  with:
35
- python-version: "3.12"
35
+ python-version: "3.13"
36
+ allow-prereleases: true
36
37
  cache: 'pip'
37
38
  - name: Install dependencies
38
39
  run: pip install -U pip hatch
@@ -1,6 +1,10 @@
1
1
  # Benchmarking
2
2
  benchmarks/**/*.pickle
3
3
 
4
+ # exampledocs
5
+ docs/examples/*
6
+ docs/example.md
7
+
4
8
  # Byte-compiled / optimized / DLL files
5
9
  __pycache__/
6
10
  *.py[cod]
@@ -4,7 +4,7 @@ ci:
4
4
  repos:
5
5
  - repo: https://github.com/astral-sh/ruff-pre-commit
6
6
  # Ruff version.
7
- rev: v0.3.5
7
+ rev: v0.7.2
8
8
  hooks:
9
9
  # Run the linter.
10
10
  - id: ruff
@@ -14,18 +14,18 @@ repos:
14
14
  - id: ruff-format
15
15
  types_or: [ python, pyi, jupyter ]
16
16
  - repo: https://github.com/asottile/pyupgrade
17
- rev: v3.15.2
17
+ rev: v3.19.0
18
18
  hooks:
19
19
  - id: pyupgrade
20
- args: [--py38-plus]
20
+ args: [--py310-plus]
21
21
  - repo: https://github.com/pre-commit/pre-commit-hooks
22
- rev: v4.5.0 # Use the ref you want to point at
22
+ rev: v5.0.0 # Use the ref you want to point at
23
23
  hooks:
24
24
  - id: trailing-whitespace
25
25
  - id: check-toml
26
26
  - id: check-yaml
27
27
  - repo: https://github.com/codespell-project/codespell
28
- rev: v2.2.6
28
+ rev: v2.3.0
29
29
  hooks:
30
30
  - id: codespell
31
31
  args: [
@@ -5,7 +5,7 @@
5
5
  We as members, contributors, and leaders pledge to make participation in our
6
6
  community a harassment-free experience for everyone, regardless of age, body
7
7
  size, visible or invisible disability, ethnicity, sex characteristics, gender
8
- identity and expression, level of experience, education, socio-economic status,
8
+ identity and expression, level of experience, education, socioeconomic status,
9
9
  nationality, personal appearance, race, caste, color, religion, or sexual
10
10
  identity and orientation.
11
11
 
@@ -119,6 +119,24 @@ ruff .
119
119
 
120
120
  The license of this project is located in [LICENSE]. By submitting a contribution to this project, you are agreeing that your contribution will be released under the terms of this license.
121
121
 
122
+ ## Maintainers
123
+ Some notes useful for Mesa maintainers.
124
+
125
+ ### Releases
126
+ To create a new release, follow these steps:
127
+
128
+ 1. Ensure all pull requests (PRs) have a clear title and are labeled with at least one label. Check [this link](https://github.com/projectmesa/mesa/pulls?q=is%3Apr+is%3Amerged+no%3Alabel+merged%3A%3E%3D2024-03-01+) to see if all PRs are labeled. These labels will be used when drafting the changelog using the [`.github/release.yml`](https://github.com/projectmesa/mesa/blob/main/.github/release.yml) configuration.
129
+ 2. Navigate to the [Releases](https://github.com/projectmesa/mesa/releases) section in the GitHub UI and click the _Draft a new release_ button.
130
+ 3. Specify the upcoming tag in the _Choose a tag_ and _Release title_ fields (e.g., `v3.0.0`).
131
+ - For pre-releases, add a `a`, `b` or `rc` and a number behind the version tag (see [Versioning](https://packaging.python.org/en/latest/discussions/versioning/)), and check the box _Set as a pre-release_.
132
+ 4. Use the _Generate release notes_ button to automatically create release notes. Review them carefully for accuracy, and update labels and edit PR titles if necessary (step 1).
133
+ 5. Write a _Highlights_ section summarizing the most important features or changes in this release.
134
+ 6. Copy the release notes and save them by clicking the grey _Save draft_ button.
135
+ 7. Open a new PR to update the version number in [`mesa/__init__.py`](https://github.com/projectmesa/mesa/blob/main/mesa/__init__.py) and add the copied release notes to the [`HISTORY.md`](https://github.com/projectmesa/mesa/blob/main/HISTORY.md).
136
+ 8. Once this PR is merged, return to the _Releases_ section and publish the draft release.
137
+ 9. The [`release.yml`](https://github.com/projectmesa/mesa/blob/main/.github/workflows/release.yml) CI workflow should automatically create and upload the package to PyPI. Verify this on [PyPI.org](https://pypi.org/project/mesa/).
138
+ 10. Finally, after release, open a new PR to update the version number in [`mesa/__init__.py`](https://github.com/projectmesa/mesa/blob/main/mesa/__init__.py) for the next release (e.g., `"3.1.0.dev"`).
139
+
122
140
  ## Special Thanks
123
141
 
124
142
  A special thanks to the following projects who offered inspiration for this contributing file.