Skip to content

Requested Edits from JOSS #2666

Open
Open
@jackiekazil

Description

@jackiekazil

A review with requested edits have come in from JOSS. The checklist is below. Let's use this ticket for tracking.

References:


Major comments

  • Experimental features: cell spaces and event-based scheduling (lines 76 & 86) (paper: Clearly mark experimental features #2675)
    • I believe these features should be completed before publication. Publishing a work in progress is not ideal, particularly since this is not the first paper on this package and these features appear to be close to a stable release.
    • Additionally, when I attempted to test these new features - which I find to be very interesting innovations - I found the online documentation lacking sufficient information.
    • If completing these features before publication is not feasible, I recommend moving them to a dedicated section such as Future Plans or Next Steps.

Comments on the documentation (@EwoutH)

Comments on the introductory tutorial (@tpike3)

  • In the introductory tutorial, it is a bit confusing what is supposed to go in the jupyter or the python file. For simplification of the tutorial, I would recommend for the whole tutorial to be within the jupyter file. If you want to keep the recommendation to split up files, I would add it as a tipp in "Best practices".

  • For the setup, using code cells with terminal commands "!pip install --upgrade mesa[rec]" (note the exclamation mark at the start) enables installation within the jupyter file, removing the need for special instructions for google collab.

  • Please put line breaks into the comments that are longer than 79 characters, allowing the documentation do be read on half-screen.

  • Some sentences do not start capitalized.

  • [from Marti] In the "Agent management" section, the AgentSet class is mentioned but doesn't appear explicitly in the code. It should be clarified that it's instantiated automatically with the models and then made available through the agents attribute. This applies to both the paper and the introductory tutorial.

  • [from Marti] The introductory and visualization tutorials would be better served as self-contained notebooks with a "pip install" cell to install the tutorial's requirements. For instance, the introductory tutorial only requires pip install mesa whereas the visualization tutorial requires pip install "mesa[viz]". This may seem obvious but not if someone jumpstarts to the tutorials without going to "Installation Options" section on the documentation index.

Comments on the visualization tutorial (@tpike3)

  • In the visualization tutorial, I would put the whole code of "MoneyModel.py" within the jupyter notebook, removing the need to search through the first tutorial for a file that is not really described.

  • Maybe mention that the visualization needs the "rec" dependencies in the installation?

  • I find the "Choose version" button at the top confusing, as it does not display the currently chosen version and there is already an indication on the bottom right.

  • [from Marti] Similar to the previous point, it's difficult to know which MoneyModel to use in the visualization tutorial. Many MoneyModel classes are defined in the introductory tutorial, so it would be better to include the class definition in the visualization tutorial, even if repetitive.

Comments on the code

  • The quality of the code and tests seem very good!

  • Typing
    (split off in Missing Agent type hints #2716)

    • One thing that could be positively highlighted is that MESA is using type hints. However, some additions would be needed for it to be able to run in a strongly typed environment.
    • In the introductory tutorial, chapter "Agents Exchange"/"Running your first model", I get a type error for "other_agent.wealth"/"a.wealth". It seems that model.agents does not return the correct agent type.
    • Same with using self.model within agent, the Agent does not know about the model types. (e.g. model.grid)
  • [from Marti] Question about packaging: The source distribution is quite big (2.4 MB), is that intended? In most Python libraries the docs are excluded from the source distribution (the docs account for 2.5 out of the total 3.4 MB). Also, are the basic examples packaged as a core mesa module for a particular reason?
    Resolved in Clean-up old images, compress wolf-sheep image, remove version switch artifact #2717

Comments on the paper

  • l16 The Statement of Need could be more clearly structured. Currently, it reads more like a historical recap. I recommend organizing it along these lines: (1) Why such a package is needed, (2) The current state of the field, and (3) What MESA contributes — focusing on its present state rather than its 2014 origins. Additionally, please refer to the Statement of Need and State of the Field requirements outlined in the JOSS checklist above to ensure alignment with the journal's expectations. (@jackiekazil)

  • l41 For consistency with the other sections, please add a code example of instantiating a model and passing a seed paper: Add code examples and clarify terminology #2719

  • l46 Similarly, please add a code example of instantiating and subclassing an agent paper: Add code examples and clarify terminology #2719

  • l80 & l86 Maybe call these two 'modes' "discrete time" and "continuous time", if I understood it correctly? I think that would make it easier to understand. paper: Add code examples and clarify terminology #2719

  • l109 I would suggest to move the "Applications" section to the start of the paper (@jackiekazil)

  • l134 Acknowledgements are usually placed after the conclusions (@jackiekazil)

  • [from Marti] Review of related tools is missing. Besides agentpy, potential candidates include Melodie (which also has a JOSS paper), helipad, pythonabm, and bptk_py. These merit consideration and should potentially be referenced in the paper.

    • The paper is already on the (very) long side for a JOSS paper, I think that would make the paper too long.
  • [from Marti] Typos and minor syntactic comments: (@jackiekazil)

    • line 21: missing space between "NetLogo" and "in"
    • line 34: "everything" seems too informal, suggest changing to something like "has been applied to modeling a wide range of phenomena from economics ..."
    • line 126: broken SolaraViz link

Smaller comments on the paper

Metadata

Metadata

Labels

docsRelease notes label

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions