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.
Uh oh!
There was an error while loading. Please reload this page.
-
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
mesainto several packages, for examplemesa-coremesa-visualizationmesa-examplesmesa-agents(this one doesn't make sense at the moment, but could potentially host some out-of-the box agents, such asRandomWalker)mesawould become a meta-package that merely installs the above packages.There are some advantages to this approach
mesa-corecould be relatively stable, which could accelerate a version1.0.0release. Of course it depends what is inside and outside ofmesa-corebut we could exclude most of the moving parts from the core development.mesa-corecould be used standalone as a minimal interface without much overheat.mesa-examplescan be versioned, so every release of mesa has fitting examples.mesa-visualizationcould 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-corecan 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