diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 473d9f110d1..e6b9dc47065 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -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 diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 52d68e87e9a..61457828540 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -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 diff --git a/.github/workflows/build_lint.yml b/.github/workflows/build_lint.yml index 4a8889eb8ca..143097d86e4 100644 --- a/.github/workflows/build_lint.yml +++ b/.github/workflows/build_lint.yml @@ -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' @@ -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: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7fe74607bff..f9829cc610f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d8a607734ce..84bc39c9eaa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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 @@ -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. @@ -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 @@ -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 @@ -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). @@ -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 diff --git a/README.md b/README.md index f85cccc7684..22b8cd78639 100644 --- a/README.md +++ b/README.md @@ -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) | @@ -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.* @@ -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: @@ -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 @@ -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. diff --git a/docs/GSoC.md b/docs/GSoC.md index 94f9a14e1b8..d86a6fd2c7d 100644 --- a/docs/GSoC.md +++ b/docs/GSoC.md @@ -10,10 +10,10 @@ Mesa has participated in Google Summer of Code since 2024 and has had 7 contribu | Project | Contributor | Discussion Link | |----------|--------------|-----------------| -| **Mesa Frames upgrade** | [Ben](https://github.com/Ben-geo) | [Discussion #151](https://github.com/projectmesa/mesa-frames/discussions/151) | -| **Mesa front-end upgrade** | [Sahil](https://github.com/Sahil-Chhoker) | [Discussion #2772](https://github.com/projectmesa/mesa/discussions/2772) | -| **Mesa LLM** | [Colin](https://github.com/colinfrisch) | [Discussion #2773](https://github.com/projectmesa/mesa/discussions/2773) | -| **Mesa LLM** | [Sanika](https://github.com/sanika-n) | [Discussion #2775](https://github.com/projectmesa/mesa/discussions/2775) | +| **Mesa Frames upgrade** | [Ben](https://github.com/Ben-geo) | [Discussion #151](https://github.com/mesa/mesa-frames/discussions/151) | +| **Mesa front-end upgrade** | [Sahil](https://github.com/Sahil-Chhoker) | [Discussion #2772](https://github.com/mesa/mesa/discussions/2772) | +| **Mesa LLM** | [Colin](https://github.com/colinfrisch) | [Discussion #2773](https://github.com/mesa/mesa/discussions/2773) | +| **Mesa LLM** | [Sanika](https://github.com/sanika-n) | [Discussion #2775](https://github.com/mesa/mesa/discussions/2775) | Note : for the Mesa LLM project, the two candidates were selected to work on different aspects of the project @@ -24,7 +24,7 @@ You can start with the official GSoC guidelines on the [proposals](https://googl For Mesa, making a great proposal implies: -- Building on current Mesa features and demonstrating how it will integrate with them. Hands-on experience with Mesa and building ABMs helps a lot with that. Don’t hesitate to visit the [Mesa GitHub](https://github.com/projectmesa/mesa) and [documentation](https://mesa.readthedocs.io/latest/). +- Building on current Mesa features and demonstrating how it will integrate with them. Hands-on experience with Mesa and building ABMs helps a lot with that. Don’t hesitate to visit the [Mesa GitHub](https://github.com/mesa/mesa) and [documentation](https://mesa.readthedocs.io/latest/). - Putting in a lot of reflection on use cases, target audience, and project fit: Mesa is a library designed to be used by a wide range of people. Who is your project for? How will it help them? How will it integrate seamlessly into Mesa? - Exploratory and curious mindset: show that you’re open to new ideas while maintaining flexibility in direction. - Putting in precise code examples for the features that you would like to implement. Especially small usage examples (how users can use the feature in a model) are really appreciated. @@ -41,12 +41,12 @@ The best way to show that you can do things is to do things. It is very helpful Also, as generative AI becomes more capable of writing convincing text, it has become increasingly difficult to differentiate a genuine proposal from an AI-generated one. Thus, **a large part of evaluation will also be based on your contributions to Mesa**. -[Contributing to Mesa](https://github.com/projectmesa/mesa/blob/main/CONTRIBUTING.md) shows that you genuinely understand the project, how it works, and that you won’t spend the first month of GSoC figuring out the basics : you’ll be ready to code for your own project! Plus, digging into Mesa allows you to refine your proposal and make it more relevant and interesting for the dev team to read. The candidates who contribute meaningfully have by far the best chances of being selected. +[Contributing to Mesa](https://github.com/mesa/mesa/blob/main/CONTRIBUTING.md) shows that you genuinely understand the project, how it works, and that you won’t spend the first month of GSoC figuring out the basics : you’ll be ready to code for your own project! Plus, digging into Mesa allows you to refine your proposal and make it more relevant and interesting for the dev team to read. The candidates who contribute meaningfully have by far the best chances of being selected. --- ## Tips from previous GSoC contributors at Mesa -- **Ask relevant questions:** asking questions is good, but asking *good* questions showcases your motivation. If you don’t know something, first check the [Mesa GitHub](https://github.com/projectmesa/mesa) and [documentation](https://mesa.readthedocs.io/latest/). In the best case, you’ll find your answer; if not, you can ask a specific question, showing your interest and drive to deepen your knowledge of Mesa. +- **Ask relevant questions:** asking questions is good, but asking *good* questions showcases your motivation. If you don’t know something, first check the [Mesa GitHub](https://github.com/mesa/mesa) and [documentation](https://mesa.readthedocs.io/latest/). In the best case, you’ll find your answer; if not, you can ask a specific question, showing your interest and drive to deepen your knowledge of Mesa. - **Be nice and helpful:** the open-source community is built on transparency and goodwill. Helping people demonstrates that it’s pleasant to work with you. Plus, it also showcases your knowledge of Mesa ;) - **Clarify scope with mentors:** if you can’t figure out the scope of the project, it’s completely okay to talk to the mentors about the most pressing matters and give them priority. This helps you to separate the main issues from the non-essentials and focus on what matters. diff --git a/docs/conf.py b/docs/conf.py index b9ca723d82c..9d7b51f352e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -60,7 +60,7 @@ # General information about the project. project = "Mesa" -copyright = f"2015-{date.today().year}, Project Mesa Team" +copyright = f"2015-{date.today().year}, Mesa Team" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -223,9 +223,7 @@ # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). -latex_documents = [ - ("index", "Mesa.tex", "Mesa Documentation", "Project Mesa Team", "manual") -] +latex_documents = [("index", "Mesa.tex", "Mesa Documentation", "Mesa Team", "manual")] # The name of an image file (relative to this directory) to place at the top of # the title page. @@ -252,7 +250,7 @@ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [("index", "mesa", "Mesa Documentation", ["Project Mesa Team"], 1)] +man_pages = [("index", "mesa", "Mesa Documentation", ["Mesa Team"], 1)] # If true, show URL addresses after external links. # man_show_urls = False @@ -268,7 +266,7 @@ "index", "Mesa", "Mesa Documentation", - "Project Mesa Team", + "Mesa Team", "Mesa", "One line description of project.", "Miscellaneous", diff --git a/docs/getting_started.md b/docs/getting_started.md index 3237dc2700b..0889fd8adfb 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -36,17 +36,17 @@ To further explore Mesa and its features, we have the following resources availa - [Mesa API reference](apis): Detailed documentation of Mesa's classes and functions. ### Repository of models built using MESA -- [Mesa Examples repository](https://github.com/projectmesa/mesa-examples): A collection of example models demonstrating various Mesa features and modeling techniques. +- [Mesa Examples repository](https://github.com/mesa/mesa-examples): A collection of example models demonstrating various Mesa features and modeling techniques. ### Migration guide - [Mesa 3.0 Migration guide](migration_guide): If you're upgrading from an earlier version of Mesa, this guide will help you navigate the changes in Mesa 3.0. ### Source Ccode and development -- [Mesa GitHub repository](https://github.com/projectmesa/mesa): Access the full source code of Mesa, contribute to its development, or report issues. -- [Mesa release notes](https://github.com/projectmesa/mesa/releases): View the detailed changelog of Mesa, including all past releases and their features. +- [Mesa GitHub repository](https://github.com/mesa/mesa): Access the full source code of Mesa, contribute to its development, or report issues. +- [Mesa release notes](https://github.com/mesa/mesa/releases): View the detailed changelog of Mesa, including all past releases and their features. ### Community and support -- [Mesa GitHub Discussions](https://github.com/projectmesa/mesa/discussions): Join discussions, ask questions, and connect with other Mesa users. +- [Mesa GitHub Discussions](https://github.com/mesa/mesa/discussions): Join discussions, ask questions, and connect with other Mesa users. - [Matrix Chat](https://matrix.to/#/#project-mesa:matrix.org): Real-time chat for quick questions and community interaction. Enjoy modelling with Mesa, and feel free to reach out! diff --git a/docs/index.md b/docs/index.md index 80ef76421e1..b03a8c48b57 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,12 +4,12 @@ :target: https://doi.org/10.21105/joss.07668 ``` -```{image} https://github.com/projectmesa/mesa/workflows/build/badge.svg -:target: https://github.com/projectmesa/mesa/actions +```{image} https://github.com/mesa/mesa/workflows/build/badge.svg +:target: https://github.com/mesa/mesa/actions ``` -```{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 @@ -90,7 +90,7 @@ Mesa is an open source project and welcomes contributions: 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. The original Mesa conference paper from 2015 is [available here](http://conference.scipy.org.s3-website-us-east-1.amazonaws.com/proceedings/scipy2015/jacqueline_kazil.html). @@ -112,13 +112,13 @@ API Documentation - {ref}`modindex` - {ref}`search` -[contributors guide]: https://github.com/projectmesa/mesa/blob/main/CONTRIBUTING.md +[contributors guide]: https://github.com/mesa/mesa/blob/main/CONTRIBUTING.md [GSoC at Mesa — Candidates Guide]: GSoC.md -[github repository]: https://github.com/projectmesa/mesa/ -[github discussions]: https://github.com/projectmesa/mesa/discussions -[issue tracker]: https://github.com/projectmesa/mesa/issues +[github repository]: https://github.com/mesa/mesa/ +[github discussions]: https://github.com/mesa/mesa/discussions +[issue tracker]: https://github.com/mesa/mesa/issues [matrix chat room]: https://matrix.to/#/#project-mesa:matrix.org -[mesa]: https://github.com/projectmesa/mesa/ +[mesa]: https://github.com/mesa/mesa/ [mesa overview]: overview [mesa examples]: https://mesa.readthedocs.io/stable/examples.html [mesa introductory tutorial]: tutorials/intro_tutorial diff --git a/docs/mesa_extension.md b/docs/mesa_extension.md index b1647342151..2cd5bc81336 100644 --- a/docs/mesa_extension.md +++ b/docs/mesa_extension.md @@ -22,7 +22,7 @@ Mesa-Geo is an extension of the Mesa framework designed to facilitate working wi --- **Additional Resources:** -For more information, visit the official [Mesa-Geo repository](https://github.com/projectmesa/mesa-geo?tab=readme-ov-file). +For more information, visit the official [Mesa-Geo repository](https://github.com/mesa/mesa-geo?tab=readme-ov-file). --- @@ -54,7 +54,7 @@ Mesa Examples provide a collection of models and use cases demonstrating the fea --- **For More Information:** -For more Detail, Visit the [Mesa Examples Repository](https://github.com/projectmesa/mesa/tree/main/mesa/examples). +For more Detail, Visit the [Mesa Examples Repository](https://github.com/mesa/mesa/tree/main/mesa/examples). --- @@ -92,6 +92,6 @@ Distributed under the MIT License. --- **More Information:** -Visit the [GitHub Repository](https://github.com/projectmesa/mesa-frames). +Visit the [GitHub Repository](https://github.com/mesa/mesa-frames). --- diff --git a/docs/migration_guide.md b/docs/migration_guide.md index 06d2b9f65c9..d33e21eb259 100644 --- a/docs/migration_guide.md +++ b/docs/migration_guide.md @@ -1,7 +1,7 @@ # Mesa Migration guide This guide contains breaking changes between major Mesa versions and how to resolve them. -Non-breaking changes aren't included, for those see our [Release history](https://github.com/projectmesa/mesa/releases). +Non-breaking changes aren't included, for those see our [Release history](https://github.com/mesa/mesa/releases). ## Mesa 3.3.0 @@ -9,7 +9,7 @@ Mesa 3.3.0 is a visualization upgrade introducing a new and improved API, full s For full details on how to visualize your model, refer to the [Mesa Documentation](https://mesa.readthedocs.io/latest/tutorials/4_visualization_basic.html). -_This guide is a work in progress. The development of it is tracked in [Issue #2233](https://github.com/projectmesa/mesa/issues/2233)._ +_This guide is a work in progress. The development of it is tracked in [Issue #2233](https://github.com/mesa/mesa/issues/2233)._ ### Defining Portrayal Components @@ -55,7 +55,7 @@ def propertylayer_portrayal(layer): ) ``` -* Ref: [PR #2786](https://github.com/projectmesa/mesa/pull/2786) +* Ref: [PR #2786](https://github.com/mesa/mesa/pull/2786) ### Default Space Visualization While the visualization methods from Mesa versions before 3.3.0 still work, version 3.3.0 introduces `SpaceRenderer`, which changes how space visualizations are rendered. Check out the updated [Mesa documentation](https://mesa.readthedocs.io/latest/tutorials/4_visualization_basic.html) for guidance on upgrading your model’s visualization using `SpaceRenderer`. @@ -84,7 +84,7 @@ SolaraViz( ) ``` -* Ref: [PR #2803](https://github.com/projectmesa/mesa/pull/2803), [PR #2810](https://github.com/projectmesa/mesa/pull/2810) +* Ref: [PR #2803](https://github.com/mesa/mesa/pull/2803), [PR #2810](https://github.com/mesa/mesa/pull/2810) ### Page Tab View @@ -104,7 +104,7 @@ SolaraViz( ) ``` -* Ref: [PR #2827](https://github.com/projectmesa/mesa/pull/2827) +* Ref: [PR #2827](https://github.com/mesa/mesa/pull/2827) ## Mesa 3.0 @@ -121,7 +121,7 @@ With each update, resolve all errors and warnings, before updating to the next o ### Reserved and private variables - + #### Reserved variables Currently, we have reserved the following variables: @@ -133,13 +133,13 @@ You can use (read) any reserved variable, but Mesa may update them automatically #### Private variables Any variables starting with an underscore (`_`) are considered private and for Mesa's internal use. We might use any of those. Modifying or overwriting any private variable is at your own risk. -- Ref: [Discussion #2230](https://github.com/projectmesa/mesa/discussions/2230), [PR #2225](https://github.com/projectmesa/mesa/pull/2225) +- Ref: [Discussion #2230](https://github.com/mesa/mesa/discussions/2230), [PR #2225](https://github.com/mesa/mesa/pull/2225) ### Removal of `mesa.flat` namespace The `mesa.flat` namespace is removed. Use the full namespace for your imports. -- Ref: [PR #2091](https://github.com/projectmesa/mesa/pull/2091) +- Ref: [PR #2091](https://github.com/mesa/mesa/pull/2091) ### Mandatory Model initialization with `super().__init__()` @@ -166,7 +166,7 @@ If you forget to call `super().__init__()`, you'll now see this error: RuntimeError: The Mesa Model class was not initialized. You must explicitly initialize the Model by calling super().__init__() on initialization. ``` -- Ref: [PR #2218](https://github.com/projectmesa/mesa/pull/2218), [PR #1928](https://github.com/projectmesa/mesa/pull/1928), Mesa-examples [PR #83](https://github.com/projectmesa/mesa-examples/pull/83) +- Ref: [PR #2218](https://github.com/mesa/mesa/pull/2218), [PR #1928](https://github.com/mesa/mesa/pull/1928), Mesa-examples [PR #83](https://github.com/mesa/mesa-examples/pull/83) ### Automatic assignment of `unique_id` to Agents @@ -202,7 +202,7 @@ In Mesa 3.0, `unique_id` for agents is now automatically assigned, simplifying a - `Model.next_id()` is removed - If you previously used custom `unique_id` values, store that information in a separate attribute -- Ref: [PR #2226](https://github.com/projectmesa/mesa/pull/2226), [PR #2260](https://github.com/projectmesa/mesa/pull/2260), Mesa-examples [PR #194](https://github.com/projectmesa/mesa-examples/pull/194), [Issue #2213](https://github.com/projectmesa/mesa/issues/2213) +- Ref: [PR #2226](https://github.com/mesa/mesa/pull/2226), [PR #2260](https://github.com/mesa/mesa/pull/2260), Mesa-examples [PR #194](https://github.com/mesa/mesa-examples/pull/194), [Issue #2213](https://github.com/mesa/mesa/issues/2213) ### AgentSet and `Model.agents` @@ -237,7 +237,7 @@ The `steps` counter is now automatically increased. With each call to `Model.ste You can access it by `Model.steps`, and it's internally in the datacollector, batchrunner and the visualisation. -- Ref: [PR #2223](https://github.com/projectmesa/mesa/pull/2223), Mesa-examples [PR #161](https://github.com/projectmesa/mesa-examples/pull/161) +- Ref: [PR #2223](https://github.com/mesa/mesa/pull/2223), Mesa-examples [PR #161](https://github.com/mesa/mesa-examples/pull/161) #### Removal of `Model._time` and rename `._steps` - `Model._time` is removed. You can define your own time variable if needed. @@ -347,7 +347,7 @@ self.agents_by_type[AgentType].shuffle_do("step") From now on you're now not bound by 5 distinct schedulers, but can mix and match any combination of AgentSet methods (`do`, `shuffle`, `select`, etc.) to get the desired Agent activation. -Ref: Original discussion [#1912](https://github.com/projectmesa/mesa/discussions/1912), decision discussion [#2231](https://github.com/projectmesa/mesa/discussions/2231), example updates [#183](https://github.com/projectmesa/mesa-examples/pull/183) and [#201](https://github.com/projectmesa/mesa-examples/pull/201), PR [#2306](https://github.com/projectmesa/mesa/pull/2306) +Ref: Original discussion [#1912](https://github.com/mesa/mesa/discussions/1912), decision discussion [#2231](https://github.com/mesa/mesa/discussions/2231), example updates [#183](https://github.com/mesa/mesa-examples/pull/183) and [#201](https://github.com/mesa/mesa-examples/pull/201), PR [#2306](https://github.com/mesa/mesa/pull/2306) ### Visualisation @@ -444,4 +444,4 @@ With: self.datacollector = DataCollector(...) ``` -- Ref: [PR #2327](https://github.com/projectmesa/mesa/pull/2327), Mesa-examples [PR #208](https://github.com/projectmesa/mesa-examples/pull/208)) +- Ref: [PR #2327](https://github.com/mesa/mesa/pull/2327), Mesa-examples [PR #208](https://github.com/mesa/mesa-examples/pull/208)) diff --git a/docs/tutorials/0_first_model.ipynb b/docs/tutorials/0_first_model.ipynb index d814be5346b..e624bed981b 100644 --- a/docs/tutorials/0_first_model.ipynb +++ b/docs/tutorials/0_first_model.ipynb @@ -14,12 +14,12 @@ "metadata": {}, "source": [ "**Important:** \n", - "- If you are just exploring Mesa and want the fastest way to execute the code we recommend executing this tutorial online in a Colab notebook. [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/projectmesa/mesa/blob/main/docs/tutorials/0_first_model.ipynb) or if you do not have a Google account you can use [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/projectmesa/mesa/main?labpath=docs%2Ftutorials%2F0_first_model.ipynb) (This can take 30 seconds to 5 minutes to load)\n", + "- If you are just exploring Mesa and want the fastest way to execute the code we recommend executing this tutorial online in a Colab notebook. [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/mesa/mesa/blob/main/docs/tutorials/0_first_model.ipynb) or if you do not have a Google account you can use [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mesa/mesa/main?labpath=docs%2Ftutorials%2F0_first_model.ipynb) (This can take 30 seconds to 5 minutes to load)\n", "- If you are running locally, please ensure you have the latest Mesa version installed.\n", "\n", "## Tutorial Description\n", "\n", - "[Mesa](https://github.com/projectmesa/mesa) is a Python framework for [agent-based modeling](https://en.wikipedia.org/wiki/Agent-based_model). This tutorial is the first in a series of introductory tutorials that will assist you in getting started and discover some of the core features of Mesa. The tutorial starts with the key pieces of a model and then progressively adds functionality. \n", + "[Mesa](https://github.com/mesa/mesa) is a Python framework for [agent-based modeling](https://en.wikipedia.org/wiki/Agent-based_model). This tutorial is the first in a series of introductory tutorials that will assist you in getting started and discover some of the core features of Mesa. The tutorial starts with the key pieces of a model and then progressively adds functionality.\n", "\n", "Should anyone find any errors, bugs, have a suggestion, or just are looking for clarification, let us know in our [chat](https://matrix.to/#/#project-mesa:matrix.org)!\n", "\n", @@ -155,7 +155,7 @@ "\n", "**Model-specific information:** Agents are the individuals that exchange money, in this case the amount of money an individual agent has is represented as wealth. \n", "\n", - "**Code implementation:** This is done by creating a new class (or object) that extends `mesa.Agent` creating a subclass of the `Agent` class from mesa. The new class is named `MoneyAgent`. The inherited code of the Mesa agent object can be found in the [mesa repo](https://github.com/projectmesa/mesa/blob/main/mesa/agent.py).\n", + "**Code implementation:** This is done by creating a new class (or object) that extends `mesa.Agent` creating a subclass of the `Agent` class from mesa. The new class is named `MoneyAgent`. The inherited code of the Mesa agent object can be found in the [mesa repo](https://github.com/mesa/mesa/blob/main/mesa/agent.py).\n", "\n", "The `MoneyAgent` class is created with the following code:" ] @@ -189,7 +189,7 @@ "\n", "**Model-specific information:** When a model is created the number of agents within the model is specified. The model then creates the agents and places them in a set of agents. \n", "\n", - "**Code implementation:** This is done by creating a new class (or object) that extends `mesa.Model` and calls `super().__init__()`, creating a subclass of the `Model` class from mesa. The new class is named `MoneyModel`. The Mesa code you are using can be found in [model module](https://github.com/projectmesa/mesa/blob/main/mesa/model.py) and the AgentSet in the [agent module](https://github.com/projectmesa/mesa/blob/d7a3834c99a3be809abe2edc8b83610f3d4438ba/mesa/agent.py#L86). A critical point is that you can use the `seed` kwarg (keyword argument) to set a seed which controls the random number generator of the model class allowing for the reproducibility of results. \n", + "**Code implementation:** This is done by creating a new class (or object) that extends `mesa.Model` and calls `super().__init__()`, creating a subclass of the `Model` class from mesa. The new class is named `MoneyModel`. The Mesa code you are using can be found in [model module](https://github.com/mesa/mesa/blob/main/mesa/model.py) and the AgentSet in the [agent module](https://github.com/mesa/mesa/blob/d7a3834c99a3be809abe2edc8b83610f3d4438ba/mesa/agent.py#L86). A critical point is that you can use the `seed` kwarg (keyword argument) to set a seed which controls the random number generator of the model class allowing for the reproducibility of results.\n", "\n", "The `MoneyModel` class is created with the following code:" ] @@ -552,9 +552,9 @@ "If you are looking for other Mesa models or tools here are some additional resources. \n", "\n", "- Example ABMs: Find canonical examples and examples of ABMs demonstrating highlighted features in the [Examples Tab](https://mesa.readthedocs.io/stable/examples.html)\n", - "- Expanded Examples: Want to integrate Reinforcement Learning or work on the Traveling Salesman Problem? Checkout [Mesa Examples](https://github.com/projectmesa/mesa-examples/)\n", + "- Expanded Examples: Want to integrate Reinforcement Learning or work on the Traveling Salesman Problem? Checkout [Mesa Examples](https://github.com/mesa/mesa-examples/)\n", "- Mesa-Geo: If you need an ABM with Geographic Information Systems (GIS) checkout [Mesa-Geo](https://mesa-geo.readthedocs.io/latest/)\n", - "- Mesa Frames: Have a large complex model that you need to speed up, check out [Mesa Frames](https://github.com/projectmesa/mesa-frames)" + "- Mesa Frames: Have a large complex model that you need to speed up, check out [Mesa Frames](https://github.com/mesa/mesa-frames)" ] }, { @@ -563,7 +563,7 @@ "source": [ "## Happy Modeling!\n", "\n", - "This document is a work in progress. If you see any errors, exclusions or have any problems please contact [us](https://github.com/projectmesa/mesa/issues)." + "This document is a work in progress. If you see any errors, exclusions or have any problems please contact [us](https://github.com/mesa/mesa/issues)." ] }, { diff --git a/docs/tutorials/10_comparing_scenarios.ipynb b/docs/tutorials/10_comparing_scenarios.ipynb index fbc4deb087d..6d8d582eada 100644 --- a/docs/tutorials/10_comparing_scenarios.ipynb +++ b/docs/tutorials/10_comparing_scenarios.ipynb @@ -14,8 +14,8 @@ "metadata": {}, "source": [ "If you want to get straight to the tutorial checkout these environment providers:
\n", - "(with Google Account) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/projectmesa/mesa/blob/main/docs/tutorials/8_comparing_scenarios.ipynb)
\n", - "(No Google Account) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/projectmesa/mesa/main?labpath=docs%2Ftutorials%2F8_comparing_scenarios.ipynb) (This can take 30 seconds to 5 minutes to load)\n", + "(with Google Account) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/mesa/mesa/blob/main/docs/tutorials/8_comparing_scenarios.ipynb)
\n", + "(No Google Account) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mesa/mesa/main?labpath=docs%2Ftutorials%2F8_comparing_scenarios.ipynb) (This can take 30 seconds to 5 minutes to load)\n", "\n", "*If you are running locally, please ensure you have the latest Mesa version installed.*\n", "\n", @@ -431,9 +431,9 @@ "\n", "- Interactive Dashboard: There is a separate [visualization tutorial](https://mesa.readthedocs.io/latest/tutorials/visualization_tutorial.html) that will take users through building a dashboard for this model (aka Boltzmann Wealth Model).\n", "- Example ABMs: Find canonical examples and examples of ABMs demonstrating highlighted features in the [Examples Tab](https://mesa.readthedocs.io/stable/examples.html)\n", - "- Expanded Examples: Want to integrate Reinforcement Learning or work on the Traveling Salesman Problem? Checkout [Mesa Examples](https://github.com/projectmesa/mesa-examples/)\n", + "- Expanded Examples: Want to integrate Reinforcement Learning or work on the Traveling Salesman Problem? Checkout [Mesa Examples](https://github.com/mesa/mesa-examples/)\n", "- Mesa-Geo: If you need an ABM with Geographic Information Systems (GIS) checkout [Mesa-Geo](https://mesa-geo.readthedocs.io/latest/)\n", - "- Mesa Frames: Have a large complex model that you need to speed up, check out [Mesa Frames](https://github.com/projectmesa/mesa-frames)" + "- Mesa Frames: Have a large complex model that you need to speed up, check out [Mesa Frames](https://github.com/mesa/mesa-frames)" ] }, { @@ -442,7 +442,7 @@ "source": [ "## Happy Modeling!\n", "\n", - "This document is a work in progress. If you see any errors, exclusions or have any problems please contact [us](https://github.com/projectmesa/mesa/issues)." + "This document is a work in progress. If you see any errors, exclusions or have any problems please contact [us](https://github.com/mesa/mesa/issues)." ] }, { diff --git a/docs/tutorials/1_adding_space.ipynb b/docs/tutorials/1_adding_space.ipynb index 92181efe0ba..e2dfa24e5e9 100644 --- a/docs/tutorials/1_adding_space.ipynb +++ b/docs/tutorials/1_adding_space.ipynb @@ -14,8 +14,8 @@ "metadata": {}, "source": [ "If you want to get straight to the tutorial checkout these environment providers:
\n", - "(with Google Account) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/projectmesa/mesa/blob/main/docs/tutorials/1_adding_space.ipynb)
\n", - "(no Google Account) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/projectmesa/mesa/main?labpath=docs%2Ftutorials%2F1_adding_space.ipynb) (This can take 30 seconds to 5 minutes to load)\n", + "(with Google Account) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/mesa/mesa/blob/main/docs/tutorials/1_adding_space.ipynb)
\n", + "(no Google Account) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mesa/mesa/main?labpath=docs%2Ftutorials%2F1_adding_space.ipynb) (This can take 30 seconds to 5 minutes to load)\n", "\n", "*If you are running locally, please ensure you have the latest Mesa version installed.*\n", "\n", diff --git a/docs/tutorials/2_collecting_data.ipynb b/docs/tutorials/2_collecting_data.ipynb index f5fc42e65a8..e5751027d30 100644 --- a/docs/tutorials/2_collecting_data.ipynb +++ b/docs/tutorials/2_collecting_data.ipynb @@ -14,8 +14,8 @@ "metadata": {}, "source": [ "If you want to get straight to the tutorial checkout these environment providers:
\n", - "(with Google Account) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/projectmesa/mesa/blob/main/docs/tutorials/2_collecting_data.ipynb)
\n", - "(No Google Account) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/projectmesa/mesa/main?labpath=docs%2Ftutorials%2F2_collecting_data.ipynb) (This can take 30 seconds to 5 minutes to load)\n", + "(with Google Account) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/mesa/mesa/blob/main/docs/tutorials/2_collecting_data.ipynb)
\n", + "(No Google Account) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mesa/mesa/main?labpath=docs%2Ftutorials%2F2_collecting_data.ipynb) (This can take 30 seconds to 5 minutes to load)\n", "\n", "*If you are running locally, please ensure you have the latest Mesa version installed.*\n", "\n", @@ -191,7 +191,7 @@ "source": [ "**Code implementation:**\n", "\n", - "Let's add a DataCollector to the model with [`mesa.DataCollector`](https://github.com/projectmesa/mesa/blob/main/mesa/datacollection.py), and collect the agent's wealth and the gini coefficient at each time step. In the below code each new line of code is described with a comment. These additions are described below. \n", + "Let's add a DataCollector to the model with [`mesa.DataCollector`](https://github.com/mesa/mesa/blob/main/mesa/datacollection.py), and collect the agent's wealth and the gini coefficient at each time step. In the below code each new line of code is described with a comment. These additions are described below.\n", "\n", "**Helper Function**
\n", "\\# Add function for model level collection\n", diff --git a/docs/tutorials/3_agentset.ipynb b/docs/tutorials/3_agentset.ipynb index 209f2c1a06e..8a56b77fa53 100644 --- a/docs/tutorials/3_agentset.ipynb +++ b/docs/tutorials/3_agentset.ipynb @@ -14,8 +14,8 @@ "metadata": {}, "source": [ "If you want to get straight to the tutorial checkout these environment providers:
\n", - "(with Google Account) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/projectmesa/mesa/blob/main/docs/tutorials/2_collecting_data.ipynb)
\n", - "(No Google Account) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/projectmesa/mesa/main?labpath=docs%2Ftutorials%2F2_collecting_data.ipynb) (This can take 30 seconds to 5 minutes to load)\n", + "(with Google Account) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/mesa/mesa/blob/main/docs/tutorials/2_collecting_data.ipynb)
\n", + "(No Google Account) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mesa/mesa/main?labpath=docs%2Ftutorials%2F2_collecting_data.ipynb) (This can take 30 seconds to 5 minutes to load)\n", "\n", "*If you are running locally, please ensure you have the latest Mesa version installed.*\n", "\n", @@ -84,7 +84,7 @@ "source": [ "## Agent Management Through AgentSet\n", "\n", - "**Background:** Mesa uses a set based approach, [AgentSet](https://github.com/projectmesa/mesa/blob/f511a4bc57340cb2dd0ba4b0af76307b37aea0ca/mesa/agent.py#L147) to allow users efficiently and intuitively manage their agents. For the most part users will never explicitly call AgentSet and in fact, we have already used the AgentSet methods functionality when we used `shuffle_do(move)` to reorder the agents and then `do(exchange)` to have the agents exchange money in sequence. Although you will likely never interact with AgentSent directly it is important to know the Mesa uses a set based approach for agent management. \n", + "**Background:** Mesa uses a set based approach, [AgentSet](https://github.com/mesa/mesa/blob/f511a4bc57340cb2dd0ba4b0af76307b37aea0ca/mesa/agent.py#L147) to allow users efficiently and intuitively manage their agents. For the most part users will never explicitly call AgentSet and in fact, we have already used the AgentSet methods functionality when we used `shuffle_do(move)` to reorder the agents and then `do(exchange)` to have the agents exchange money in sequence. Although you will likely never interact with AgentSent directly it is important to know the Mesa uses a set based approach for agent management.\n", "\n", "Beyond the method functionality there are additional ways AgentSet can help you manage your agents and we will look at two additional examples in this tutorial, but you can see more in the [Getting Started Section of Mesa](https://mesa.readthedocs.io/stable/getting_started.html#agentset-functionality). \n", "\n", @@ -203,7 +203,7 @@ "\n", "**Description:** Uses `AgentSet.groupby` to group agents by their ethnicity attribute. This will give us a dictionary where the keys are the different ethnicities and the values are an `AgentSet`. In this case we will then use the `AgentSet` class and leverage its `shuffle_do` capability to then give money to the target groups. \n", "- **API:** [AgentSet.select](https://mesa.readthedocs.io/latest/apis/agent.html#mesa.agent.AgentSet.groupby)\n", - "- **Note:** `AgentSet` has a lot of functionality and similar to `discrete_space` has the ability to add new features and make Mesa models more user-friendly. We strongly encourage you to check out the [AgentSet API](https://mesa.readthedocs.io/latest/apis/agent.html#mesa.agent.AgentSet) to see all the functionality and if you have an idea feel free to [contribute](https://github.com/projectmesa/mesa/blob/main/CONTRIBUTING.md) " + "- **Note:** `AgentSet` has a lot of functionality and similar to `discrete_space` has the ability to add new features and make Mesa models more user-friendly. We strongly encourage you to check out the [AgentSet API](https://mesa.readthedocs.io/latest/apis/agent.html#mesa.agent.AgentSet) to see all the functionality and if you have an idea feel free to [contribute](https://github.com/mesa/mesa/blob/main/CONTRIBUTING.md)" ] }, { diff --git a/docs/tutorials/4_visualization_basic.ipynb b/docs/tutorials/4_visualization_basic.ipynb index e2e73dbeecd..e9c2af0a9b2 100644 --- a/docs/tutorials/4_visualization_basic.ipynb +++ b/docs/tutorials/4_visualization_basic.ipynb @@ -14,7 +14,7 @@ "metadata": {}, "source": [ "If you want to get straight to the tutorial checkout these environment providers:
\n", - "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/projectmesa/mesa/main?labpath=docs%2Ftutorials%2F4_visualization_basic.ipynb) (This can take 30 seconds to 5 minutes to load)\n", + "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mesa/mesa/main?labpath=docs%2Ftutorials%2F4_visualization_basic.ipynb) (This can take 30 seconds to 5 minutes to load)\n", "\n", "Due to conflict with Colab and Solara there are no colab links for this tutorial\n", "\n", diff --git a/docs/tutorials/5_visualization_dynamic_agents.ipynb b/docs/tutorials/5_visualization_dynamic_agents.ipynb index b3782dd774f..4e27f47765c 100644 --- a/docs/tutorials/5_visualization_dynamic_agents.ipynb +++ b/docs/tutorials/5_visualization_dynamic_agents.ipynb @@ -14,7 +14,7 @@ "metadata": {}, "source": [ "If you want to get straight to the tutorial checkout these environment providers:
\n", - "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/projectmesa/mesa/main?labpath=docs%2Ftutorials%2F5_visualization_dynamic_agents.ipynb) (This can take 30 seconds to 5 minutes to load)\n", + "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mesa/mesa/main?labpath=docs%2Ftutorials%2F5_visualization_dynamic_agents.ipynb) (This can take 30 seconds to 5 minutes to load)\n", "\n", "Due to conflict with Colab and Solara there are no colab links for this tutorial\n", "\n", @@ -190,7 +190,7 @@ "\n", "In the first visualization, all we could see is the agents moving around -- but not how much money they had, or anything else of interest. In this tutorial let's change it so that agents are represented by the units of wealth they have. So those who are broke (wealth 0) are drawn in red, smaller. \n", "\n", - "Since Mesa is open source, if you have ideas to improve the visualization stack, feel free to [contribute](https://github.com/projectmesa/mesa/blob/main/CONTRIBUTING.md).\n", + "Since Mesa is open source, if you have ideas to improve the visualization stack, feel free to [contribute](https://github.com/mesa/mesa/blob/main/CONTRIBUTING.md).\n", "\n", "When using the default drawer, an agent's shape can be customized in addition to its size and color.\n", "\n", diff --git a/docs/tutorials/6_visualization_rendering_with_space_renderer.ipynb b/docs/tutorials/6_visualization_rendering_with_space_renderer.ipynb index 120f205066b..8d26ef85528 100644 --- a/docs/tutorials/6_visualization_rendering_with_space_renderer.ipynb +++ b/docs/tutorials/6_visualization_rendering_with_space_renderer.ipynb @@ -14,7 +14,7 @@ "metadata": {}, "source": [ "If you want to get straight to the tutorial checkout these environment providers:
\n", - "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/projectmesa/mesa/main?labpath=docs%2Ftutorials%2F6_visualization_rendering_with_space_renderer.ipynb) (This can take 30 seconds to 5 minutes to load)\n", + "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mesa/mesa/main?labpath=docs%2Ftutorials%2F6_visualization_rendering_with_space_renderer.ipynb) (This can take 30 seconds to 5 minutes to load)\n", "\n", "Due to conflict with Colab and Solara there are no colab links for this tutorial\n", "\n", @@ -529,7 +529,7 @@ "source": [ "## Next Steps\n", "\n", - "Checkout [mesa examples](https://github.com/projectmesa/mesa/tree/main/mesa/examples) to further explore the capabilities of the visualization stack.\n", + "Checkout [mesa examples](https://github.com/mesa/mesa/tree/main/mesa/examples) to further explore the capabilities of the visualization stack.\n", "Check out the next [property layer visualization](https://mesa.readthedocs.io/latest/tutorials/7_visualization_propertylayer_visualization.html) on how to further enhance your interactive dashboard." ] }, diff --git a/docs/tutorials/7_visualization_propertylayer_visualization.ipynb b/docs/tutorials/7_visualization_propertylayer_visualization.ipynb index 01c9074d593..de87379986c 100644 --- a/docs/tutorials/7_visualization_propertylayer_visualization.ipynb +++ b/docs/tutorials/7_visualization_propertylayer_visualization.ipynb @@ -14,7 +14,7 @@ "metadata": {}, "source": [ "If you want to get straight to the tutorial checkout these environment providers:
\n", - "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/projectmesa/mesa/main?labpath=docs%2Ftutorials%2F7_visualization_propertylayer_visualization.ipynb) (This can take 30 seconds to 5 minutes to load)\n", + "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mesa/mesa/main?labpath=docs%2Ftutorials%2F7_visualization_propertylayer_visualization.ipynb) (This can take 30 seconds to 5 minutes to load)\n", "\n", "Due to conflict with Colab and Solara there are no colab links for this tutorial\n", "\n", @@ -492,7 +492,7 @@ "source": [ "## Next Steps\n", "\n", - "Checkout this [mesa example](https://github.com/projectmesa/mesa/tree/main/mesa/examples/advanced/sugarscape_g1mt) to further explore the capabilities of the property layers.\n", + "Checkout this [mesa example](https://github.com/mesa/mesa/tree/main/mesa/examples/advanced/sugarscape_g1mt) to further explore the capabilities of the property layers.\n", "Check out the next [visualization tutorial custom components](https://mesa.readthedocs.io/latest/tutorials/8_visualization_custom.html) on how to further enhance your interactive dashboard." ] }, diff --git a/docs/tutorials/8_visualization_custom.ipynb b/docs/tutorials/8_visualization_custom.ipynb index 0f36f2fcda9..4493de76dc1 100644 --- a/docs/tutorials/8_visualization_custom.ipynb +++ b/docs/tutorials/8_visualization_custom.ipynb @@ -14,7 +14,7 @@ "metadata": {}, "source": [ "If you want to get straight to the tutorial checkout these environment providers:
\n", - "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/projectmesa/mesa/main?labpath=docs%2Ftutorials%2F4_visualization_basic.ipynb) (This can take 30 seconds to 5 minutes to load)\n", + "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mesa/mesa/main?labpath=docs%2Ftutorials%2F4_visualization_basic.ipynb) (This can take 30 seconds to 5 minutes to load)\n", "\n", "Due to conflict with Colab and Solara there are no colab links for this tutorial\n", "\n", @@ -202,7 +202,7 @@ "source": [ "First we need to update our imports\n", "\n", - "We use Matplotlib in this tutorial, but Mesa also has Altair. If you would like other visualization support like Plotly or Bokeh, please feel free to [contribute](https://github.com/projectmesa/mesa/blob/main/CONTRIBUTING.md)\n", + "We use Matplotlib in this tutorial, but Mesa also has Altair. If you would like other visualization support like Plotly or Bokeh, please feel free to [contribute](https://github.com/mesa/mesa/blob/main/CONTRIBUTING.md)\n", "\n", "In addition, due to the way Solara works we need to trigger an update whenever the underlying model changes. For this you need to register an update counter with every component." ] diff --git a/docs/tutorials/9_batch_run.ipynb b/docs/tutorials/9_batch_run.ipynb index 98ee83e09bd..eb81f737fe6 100644 --- a/docs/tutorials/9_batch_run.ipynb +++ b/docs/tutorials/9_batch_run.ipynb @@ -14,8 +14,8 @@ "metadata": {}, "source": [ "If you want to get straight to the tutorial checkout these environment providers:
\n", - "(with Google Account) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/projectmesa/mesa/blob/main/docs/tutorials/7_batch_run.ipynb)
\n", - "(No Google Account) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/projectmesa/mesa/main?labpath=docs%2Ftutorials%2F7_batch_run.ipynb) (This can take 30 seconds to 5 minutes to load)\n", + "(with Google Account) [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/mesa/mesa/blob/main/docs/tutorials/7_batch_run.ipynb)
\n", + "(No Google Account) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mesa/mesa/main?labpath=docs%2Ftutorials%2F7_batch_run.ipynb) (This can take 30 seconds to 5 minutes to load)\n", "\n", "*If you are running locally, please ensure you have the latest Mesa version installed.*\n", "\n", diff --git a/maintenance/fetch_unlabeled_prs.py b/maintenance/fetch_unlabeled_prs.py index 1801a145a63..a8ec199967c 100644 --- a/maintenance/fetch_unlabeled_prs.py +++ b/maintenance/fetch_unlabeled_prs.py @@ -12,7 +12,7 @@ "Please specify your GitHub Personal Access Token as GITHUB_TOKEN in your .bashrc" ) exit() -GITHUB_USERNAME = "projectmesa" +GITHUB_USERNAME = "mesa" GITHUB_REPO = "mesa" HEADERS = {"Authorization": f"token {GITHUB_TOKEN}"} TIMEOUT = 20 @@ -68,7 +68,7 @@ def get_closed_pull_requests_since_latest_release( def main() -> None: # noqa: D103 - # Based on https://github.com/projectmesa/mesa/pull/1917#issuecomment-1871352058 + # Based on https://github.com/mesa/mesa/pull/1917#issuecomment-1871352058 latest_release_date = get_latest_release_date() pull_requests = get_closed_pull_requests_since_latest_release(latest_release_date) if len(pull_requests) <= 0: diff --git a/mesa/__init__.py b/mesa/__init__.py index bae9dad07ad..37b515de91b 100644 --- a/mesa/__init__.py +++ b/mesa/__init__.py @@ -27,4 +27,4 @@ __version__ = "3.4.0.dev" __license__ = "Apache 2.0" _this_year = datetime.datetime.now(tz=datetime.UTC).date().year -__copyright__ = f"Copyright {_this_year} Project Mesa Team" +__copyright__ = f"Copyright {_this_year} Mesa Team" diff --git a/mesa/discrete_space/grid.py b/mesa/discrete_space/grid.py index 7b0c5f5a586..117cdfd39fe 100644 --- a/mesa/discrete_space/grid.py +++ b/mesa/discrete_space/grid.py @@ -147,8 +147,8 @@ def select_random_empty_cell(self) -> T: # noqa # FIXME:: because empties list needs to be rebuild each time # This method is based on Agents.jl's random_empty() implementation. See # https://github.com/JuliaDynamics/Agents.jl/pull/541. For the discussion, see - # https://github.com/projectmesa/mesa/issues/1052 and - # https://github.com/projectmesa/mesa/pull/1565. The cutoff value provided + # https://github.com/mesa/mesa/issues/1052 and + # https://github.com/mesa/mesa/pull/1565. The cutoff value provided # is the break-even comparison with the time taken in the else branching point. if self._try_random: while True: diff --git a/mesa/examples/README.md b/mesa/examples/README.md index b7205664702..394d64c1795 100644 --- a/mesa/examples/README.md +++ b/mesa/examples/README.md @@ -6,7 +6,7 @@ The examples are categorized into two groups: 1. **Basic Examples** - Simpler models that use only stable Mesa features; ideal for beginners 2. **Advanced Examples** - More complex models that demonstrate additional concepts and may use some experimental features -> **Note:** Looking for more examples? Visit the [mesa-examples](https://github.com/projectmesa/mesa-examples) repository for user-contributed models and showcases. +> **Note:** Looking for more examples? Visit the [mesa-examples](https://github.com/mesa/mesa-examples) repository for user-contributed models and showcases. ## Basic Examples The basic examples are relatively simple and only use stable Mesa features. They are good starting points for learning how to use Mesa. diff --git a/mesa/examples/advanced/alliance_formation/Readme.md b/mesa/examples/advanced/alliance_formation/Readme.md index bb04dea94d0..4e01f0446d8 100644 --- a/mesa/examples/advanced/alliance_formation/Readme.md +++ b/mesa/examples/advanced/alliance_formation/Readme.md @@ -16,7 +16,7 @@ In this simulation n agents are created, who have two attributes (1) power and ( In MetaAgents current configuration, agents being part of multiple meta-agents is not supported. -If you would like to see an example of explicit meta-agent formation see the [warehouse model in the Mesa example's repository](https://github.com/projectmesa/mesa-examples/tree/main/examples/warehouse) +If you would like to see an example of explicit meta-agent formation see the [warehouse model in the Mesa example's repository](https://github.com/mesa/mesa-examples/tree/main/examples/warehouse) ## Installation diff --git a/mesa/examples/advanced/sugarscape_g1mt/model.py b/mesa/examples/advanced/sugarscape_g1mt/model.py index 465e7be240a..6426fde9f58 100644 --- a/mesa/examples/advanced/sugarscape_g1mt/model.py +++ b/mesa/examples/advanced/sugarscape_g1mt/model.py @@ -157,7 +157,7 @@ def step(self): mesa.time.RandomActivationByType. Please see issue #1419 at - https://github.com/projectmesa/mesa/issues/1419 + https://github.com/mesa/mesa/issues/1419 (contributions welcome) Below is one way to update agent_records to get specific Trader agent data diff --git a/mesa/experimental/meta_agents/meta_agent.py b/mesa/experimental/meta_agents/meta_agent.py index 7a5ffe049cf..593175850e1 100644 --- a/mesa/experimental/meta_agents/meta_agent.py +++ b/mesa/experimental/meta_agents/meta_agent.py @@ -13,9 +13,9 @@ To demonstrate meta-agents capability there are two examples: 1 - Alliance formation which shows emergent meta-agent formation in advanced examples: -https://github.com/projectmesa/mesa/tree/main/mesa/examples/advanced/alliance_formation +https://github.com/mesa/mesa/tree/main/mesa/examples/advanced/alliance_formation 2 - Warehouse model in the Mesa example's repository -https://github.com/projectmesa/mesa-examples/tree/main/examples/warehouse +https://github.com/mesa/mesa-examples/tree/main/examples/warehouse To accomplish this the MetaAgent module is as follows: diff --git a/mesa/space.py b/mesa/space.py index c9cd04f4223..fb7640a8c75 100644 --- a/mesa/space.py +++ b/mesa/space.py @@ -559,8 +559,8 @@ def move_to_empty(self, agent: Agent) -> None: # This method is based on Agents.jl's random_empty() implementation. See # https://github.com/JuliaDynamics/Agents.jl/pull/541. For the discussion, see - # https://github.com/projectmesa/mesa/issues/1052 and - # https://github.com/projectmesa/mesa/pull/1565. The cutoff value provided + # https://github.com/mesa/mesa/issues/1052 and + # https://github.com/mesa/mesa/pull/1565. The cutoff value provided # is the break-even comparison with the time taken in the else branching point. if num_empty_cells > self.cutoff_empties: while True: diff --git a/pyproject.toml b/pyproject.toml index 159302d2910..e12c46e8dc9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ description = "Agent-based modeling (ABM) in Python" license = { text = "Apache 2.0" } requires-python = ">=3.12" authors = [ - { name = "Project Mesa Team", email = "maintainers@projectmesa.dev" }, + { name = "Mesa Team", email = "maintainers@projectmesa.dev" }, ] keywords = [ "agent", @@ -86,8 +86,8 @@ docs = [ ] [project.urls] -homepage = "https://github.com/projectmesa/mesa" -repository = "https://github.com/projectmesa/mesa" +homepage = "https://github.com/mesa/mesa" +repository = "https://github.com/mesa/mesa" [tool.hatch.build.targets.wheel] packages = ["mesa"] diff --git a/tests/test_import_namespace.py b/tests/test_import_namespace.py index 71d593032a9..01c5aecff47 100644 --- a/tests/test_import_namespace.py +++ b/tests/test_import_namespace.py @@ -4,7 +4,7 @@ def test_import(): """This tests the new, simpler Mesa namespace. - See https://github.com/projectmesa/mesa/pull/1294. + See https://github.com/mesa/mesa/pull/1294. """ import mesa # noqa: PLC0415 from mesa.space import MultiGrid # noqa: PLC0415