Replies: 2 comments 1 reply
-
Looking at precedents:
I think separating to separate repos is well justified if the components themselves can be used as a standalone package. With this constraint, |
Beta Was this translation helpful? Give feedback.
-
I agree I think the modular approach is is the way to go (or at least try). I think of it as allowing for the diversity of the user base to evolve Mesa along multiple paths. The great challenge will be can we get the contributor base for each path and possible variations (e.g. vis with javascript, viz with pure python). To account for the contributor density I am assuming that ABMs will become a commonplace tool for research and decision making. To me, the challenge is an ABM ecosystem is an order of magnitude harder than say an ML ecosystem. So I would add - then you go out a layer and you would get repos dedicated to different parts |
Beta Was this translation helpful? Give feedback.
-
This is something that has been sitting on the top of my head for quite some time and I would like to discuss.
The idea is to split up
mesa
into several packages, for examplemesa-core
mesa-visualization
mesa-examples
mesa-agents
(this one doesn't make sense at the moment, but could potentially host some out-of-the box agents, such asRandomWalker
)mesa
would become a meta-package that merely installs the above packages.There are some advantages to this approach
mesa-core
could be relatively stable, which could accelerate a version1.0.0
release. Of course it depends what is inside and outside ofmesa-core
but we could exclude most of the moving parts from the core development.mesa-core
could be used standalone as a minimal interface without much overheat.mesa-examples
can be versioned, so every release of mesa has fitting examples.mesa-visualization
could be developed independently and rapidly without interfering with the core development cycle (I have quite some plans for mesa-viz, but this will be another discussion topic)mesa-core
can remain minimal.To overall goal would be to accelerate development without breaking core functionalities.
The obvious downside is that the release stories will get more complicated. Also, we would have to decide if we would want to split the repo for each package or keep the individual packages inside this repository. Personally I think it just isn`t enough code to justify the split and it is much easier to tie things together during the development if we keep it in a single repo. However, I think it makes sense to discuss splitting in general and the technical aspects of the split together.
Looking forward to discussions.
Beta Was this translation helpful? Give feedback.
All reactions