Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Questions, ideas, showcases and more
url: https://github.com/projectmesa/mesa/discussions
url: https://github.com/mesa/mesa/discussions
about: Discuss Mesa, ask questions, share ideas, and showcase your projects
4 changes: 2 additions & 2 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ jobs:
run: pip install uv
- name: Install dependencies
run: uv pip install --system numpy pandas tqdm tabulate matplotlib solara networkx scipy
# Benchmarks on the projectmesa main branch
# Benchmarks on the mesa main branch
- name: Checkout main branch
uses: actions/checkout@v5
with:
ref: main
repository: projectmesa/mesa
repository: mesa/mesa
- name: Install Mesa
run: pip install --no-deps .
- name: Run benchmarks on main branch
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build_lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
include:
- os: ubuntu
python-version: "3.12"
# Disabled for now. See https://github.com/projectmesa/mesa/issues/1253
# Disabled for now. See https://github.com/mesa/mesa/issues/1253
#- os: ubuntu
# python-version: 'pypy-3.8'

Expand Down Expand Up @@ -79,7 +79,7 @@ jobs:
- name: Checkout mesa-examples
uses: actions/checkout@v5
with:
repository: projectmesa/mesa-examples
repository: mesa/mesa-examples
path: mesa-examples
- name: Test examples
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
- name: Build distributions
run: hatch build
- name: Upload package as artifact to GitHub
if: github.repository == 'projectmesa/mesa' && startsWith(github.ref, 'refs/tags')
if: github.repository == 'mesa/mesa' && startsWith(github.ref, 'refs/tags')
uses: actions/upload-artifact@v5
with:
name: package
Expand Down
36 changes: 18 additions & 18 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing

_For candidates interested in participating in the Google Summer of Code (GSoC), checkout Mesa’s [GSoC guide](https://github.com/projectmesa/mesa/blob/main/docs/GSoC.md)._
_For candidates interested in participating in the Google Summer of Code (GSoC), checkout Mesa’s [GSoC guide](https://github.com/mesa/mesa/blob/main/docs/GSoC.md)._

As an open source project, Mesa welcomes contributions of many forms, and from beginners to experts. If you are
curious or just want to see what is happening, we post our development session agendas
Expand Down Expand Up @@ -47,9 +47,9 @@ You already know how to build Mesa models (if not skip below), and probably have
First step is to install some proper tools, if you haven't already.
- A good IDE helps for code development, testing and formatting. [PyCharm](https://www.jetbrains.com/pycharm/) or [VSCode](https://code.visualstudio.com/) for example.
- Dive into Git and GitHub. Watch some videos, this takes some time to click. [GitHub Desktop](https://desktop.github.com/) is great.
- [`https://github.dev/projectmesa/mesa`](https://github.dev/projectmesa/mesa) is great for small changes (to docs).
- [`https://github.dev/mesa/mesa`](https://github.dev/mesa/mesa) is great for small changes (to docs).

Learn the tools, talk to us about what you want to change, and open a small PR. Or update an [example model](https://github.com/projectmesa/mesa-examples) (check open [issues](https://github.com/projectmesa/mesa-examples/issues))!
Learn the tools, talk to us about what you want to change, and open a small PR. Or update an [example model](https://github.com/mesa/mesa-examples) (check open [issues](https://github.com/mesa/mesa-examples/issues))!

### I'm a developer (but not a modeller)
Awesome! You have the basics of open-source software development (if not check above), but not much modelling experience.
Expand All @@ -59,11 +59,11 @@ First step is to start thinking like a modeller. To understand the fine details
- Follow an ABM course (if possible). They might be a bit outdated programming language wise, but conceptual they're sound.
- This MOOC on ABM concepts: [Agent Based Modeling](https://ocw.tudelft.nl/course-lectures/agent-based-modeling/)
- This MOOC on practical ABM modelling: [Agent-Based Models with Python: An Introduction to Mesa](https://www.complexityexplorer.org/courses/172-agent-based-models-with-python-an-introduction-to-mesa)
- Go though multiple of our [examples](https://github.com/projectmesa/mesa-examples). Play with them, modify things and get a feel for Mesa and ABMs.
- Check our open [issues](https://github.com/projectmesa/mesa-examples/issues) for the examples.
- Go though multiple of our [examples](https://github.com/mesa/mesa-examples). Play with them, modify things and get a feel for Mesa and ABMs.
- Check our open [issues](https://github.com/mesa/mesa-examples/issues) for the examples.
- If you see anything you want to improve, feel free to open a (small) PR!
- If you have a feel for Mesa, check our [discussions](https://github.com/projectmesa/mesa/discussions) and [issues](https://github.com/projectmesa/mesa/issues).
- Also go thought our [release notes](https://github.com/projectmesa/mesa/releases) to see what we recently have been working on, and see some examples of successful PRs.
- If you have a feel for Mesa, check our [discussions](https://github.com/mesa/mesa/discussions) and [issues](https://github.com/mesa/mesa/issues).
- Also go thought our [release notes](https://github.com/mesa/mesa/releases) to see what we recently have been working on, and see some examples of successful PRs.
- Once you found or thought of a nice idea, comment on the issue/discussion (or open a new one) and get to work!

### I'm both
Expand All @@ -74,8 +74,8 @@ Start with creating your own models, for fun. Once you have some experience, mov

## Testing and Code Standards

```{image} https://codecov.io/gh/projectmesa/mesa/branch/main/graph/badge.svg
:target: https://codecov.io/gh/projectmesa/mesa
```{image} https://codecov.io/gh/mesa/mesa/branch/main/graph/badge.svg
:target: https://codecov.io/gh/mesa/mesa
```

```{image} https://img.shields.io/badge/code%20style-black-000000.svg
Expand Down Expand Up @@ -183,17 +183,17 @@ Some notes useful for Mesa maintainers.
### Releases
To create a new release, follow these steps:

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.
2. Navigate to the [Releases](https://github.com/projectmesa/mesa/releases) section in the GitHub UI and click the _Draft a new release_ button.
1. Ensure all pull requests (PRs) have a clear title and are labeled with at least one label. Check [this link](https://github.com/mesa/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/mesa/mesa/blob/main/.github/release.yml) configuration.
2. Navigate to the [Releases](https://github.com/mesa/mesa/releases) section in the GitHub UI and click the _Draft a new release_ button.
3. Specify the upcoming tag in the _Choose a tag_ and _Release title_ fields (e.g., `v3.0.0`).
- 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_.
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).
5. Write a _Highlights_ section summarizing the most important features or changes in this release.
6. Copy the release notes and save them by clicking the grey _Save draft_ button.
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).
7. Open a new PR to update the version number in [`mesa/__init__.py`](https://github.com/mesa/mesa/blob/main/mesa/__init__.py) and add the copied release notes to the [`HISTORY.md`](https://github.com/mesa/mesa/blob/main/HISTORY.md).
8. Once this PR is merged, return to the _Releases_ section and publish the draft release.
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/).
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"`).
9. The [`release.yml`](https://github.com/mesa/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/).
10. Finally, after release, open a new PR to update the version number in [`mesa/__init__.py`](https://github.com/mesa/mesa/blob/main/mesa/__init__.py) for the next release (e.g., `"3.1.0.dev"`).

A recorded video of this process is [available here](https://youtu.be/JE44jkegmns).

Expand All @@ -207,16 +207,16 @@ A special thanks to the following projects who offered inspiration for this cont

[18f's foia]: https://github.com/18F/foia-hub/blob/master/CONTRIBUTING.md
[18f's midas]: https://github.com/18F/midas/blob/devel/CONTRIBUTING.md
[an issue]: https://github.com/projectmesa/mesa/issues
[an issue]: https://github.com/mesa/mesa/issues
[black]: https://github.com/psf/black
[clone your repository]: https://help.github.com/articles/cloning-a-repository/
[create a pull request]: https://help.github.com/articles/creating-a-pull-request/
[django]: https://github.com/django/django/blob/master/CONTRIBUTING.rst
[gh actions build]: https://github.com/projectmesa/mesa/actions/workflows/build_lint.yml
[gh actions build]: https://github.com/mesa/mesa/actions/workflows/build_lint.yml
[google style guide]: https://google.github.io/styleguide/pyguide.html
[license]: https://github.com/projectmesa/mesa/blob/main/LICENSE
[license]: https://github.com/mesa/mesa/blob/main/LICENSE
[matrix]: https://matrix.to/#/#project-mesa:matrix.org`
[mesa discussions]: https://github.com/projectmesa/mesa/discussions
[mesa discussions]: https://github.com/mesa/mesa/discussions
[pep8]: https://www.python.org/dev/peps/pep-0008
[pre-commit]: https://github.com/pre-commit/pre-commit
[tim pope's guideline]: https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

| | |
|---------| --- |
| CI/CD | [![GitHub Actions build status](https://github.com/projectmesa/mesa/workflows/build/badge.svg)](https://github.com/projectmesa/mesa/actions) [![Coverage status](https://codecov.io/gh/projectmesa/mesa/branch/main/graph/badge.svg)](https://codecov.io/gh/projectmesa/mesa) |
| CI/CD | [![GitHub Actions build status](https://github.com/mesa/mesa/workflows/build/badge.svg)](https://github.com/mesa/mesa/actions) [![Coverage status](https://codecov.io/gh/mesa/mesa/branch/main/graph/badge.svg)](https://codecov.io/gh/mesa/mesa) |
| Package | [![PyPI - Version](https://img.shields.io/pypi/v/mesa.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/Mesa/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/mesa.svg?color=blue&label=Downloads&logo=pypi&logoColor=gold)](https://pypi.org/project/Mesa/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mesa.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/Mesa/) |
| Meta | [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch) [![SPEC 0 — Minimum Supported Dependencies](https://img.shields.io/badge/SPEC-0-green?labelColor=%23004811&color=%235CA038)](https://scientific-python.org/specs/spec-0000/) |
| Chat | [![chat](https://img.shields.io/matrix/project-mesa:matrix.org?label=chat&logo=Matrix)](https://matrix.to/#/#project-mesa:matrix.org) |
Expand All @@ -15,7 +15,7 @@ interface; and analyze their results using Python's data analysis
tools. Its goal is to be the Python-based alternative to NetLogo,
Repast, or MASON.

![A screenshot of the WolfSheep Model in Mesa](https://raw.githubusercontent.com/projectmesa/mesa/main/docs/images/wolf_sheep.png)
![A screenshot of the WolfSheep Model in Mesa](https://raw.githubusercontent.com/mesa/mesa/main/docs/images/wolf_sheep.png)

*Above: A Mesa implementation of the WolfSheep model, this
can be displayed in browser windows or Jupyter.*
Expand Down Expand Up @@ -50,7 +50,7 @@ pip install -U "mesa[all]"
You can also use `pip` to install the latest GitHub version:

``` bash
pip install -U -e git+https://github.com/projectmesa/mesa@main#egg=mesa
pip install -U -e git+https://github.com/mesa/mesa@main#egg=mesa
```

Or any other (development) branch on this repo or your own fork:
Expand All @@ -63,11 +63,11 @@ pip install -U -e git+https://github.com/YOUR_FORK/mesa@YOUR_BRANCH#egg=mesa
For resources or help on using Mesa, check out the following:

- [Getting Started](https://mesa.readthedocs.io/stable/getting_started.html) (A collection of tutorials that will walk you through a basic model.)
- [GSoC at Mesa — Candidates Guide](https://github.com/projectmesa/mesa/blob/main/docs/GSoC.md) (For candidates interested in participating in the Google Summer of Code at Mesa)
- [GSoC at Mesa — Candidates Guide](https://github.com/mesa/mesa/blob/main/docs/GSoC.md) (For candidates interested in participating in the Google Summer of Code at Mesa)
- [Mesa Examples](https://mesa.readthedocs.io/stable/examples.html) (A repository of seminal ABMs that are part of the Mesa[rec] install and use the most current Mesa release)
- [Docs](http://mesa.readthedocs.org/) (Mesa's documentation, API and useful snippets)
- [Development version docs](https://mesa.readthedocs.io/latest/) (the latest version docs if you're using a pre-release Mesa version)
- [Discussions](https://github.com/projectmesa/mesa/discussions) (GitHub threaded discussions about Mesa)
- [Discussions](https://github.com/mesa/mesa/discussions) (GitHub threaded discussions about Mesa)
- [Matrix Chat](https://matrix.to/#/#project-mesa:matrix.org) (Chat Forum via Matrix to talk about Mesa)

## Running Mesa in Docker
Expand Down Expand Up @@ -116,21 +116,21 @@ Mesa? You can\...
> - Join our [Matrix chat room](https://matrix.to/#/#project-mesa:matrix.org) in which questions, issues, and
> ideas can be (informally) discussed.
> - Come to a monthly dev session (you can find dev session times,
> agendas and notes on [Mesa discussions](https://github.com/projectmesa/mesa/discussions)).
> - Just check out the code on [GitHub](https://github.com/projectmesa/mesa/).
> agendas and notes on [Mesa discussions](https://github.com/mesa/mesa/discussions)).
> - Just check out the code on [GitHub](https://github.com/mesa/mesa/).

If you run into an issue, please file a [ticket](https://github.com/projectmesa/mesa/issues) for us to discuss. If
If you run into an issue, please file a [ticket](https://github.com/mesa/mesa/issues) for us to discuss. If
possible, follow up with a pull request.

If you would like to add a feature, please reach out via [ticket](https://github.com/projectmesa/mesa/issues) or
join a dev session (see [Mesa discussions](https://github.com/projectmesa/mesa/discussions)). A feature is most likely
If you would like to add a feature, please reach out via [ticket](https://github.com/mesa/mesa/issues) or
join a dev session (see [Mesa discussions](https://github.com/mesa/mesa/discussions)). A feature is most likely
to be added if you build it!

Don't forget to checkout the [Contributors guide](https://github.com/projectmesa/mesa/blob/main/CONTRIBUTING.md).
Don't forget to checkout the [Contributors guide](https://github.com/mesa/mesa/blob/main/CONTRIBUTING.md).

## Citing Mesa

To cite Mesa in your publication, you can refer to our peer-reviewed article in the Journal of Open Source Software (JOSS):
- ter Hoeven, E., Kwakkel, J., Hess, V., Pike, T., Wang, B., rht, & Kazil, J. (2025). Mesa 3: Agent-based modeling with Python in 2025. Journal of Open Source Software, 10(107), 7668. https://doi.org/10.21105/joss.07668

Our [CITATION.cff](https://github.com/projectmesa/mesa/blob/main/CITATION.cff) can be used to generate APA, BibTeX and other citation formats.
Our [CITATION.cff](https://github.com/mesa/mesa/blob/main/CITATION.cff) can be used to generate APA, BibTeX and other citation formats.
Loading
Loading