aionnetwork / AVM

Enabling Java code to run in a blockchain environment
https://theoan.com/
MIT License
49 stars 25 forks source link

Split new tooling module from core #354

Closed jeff-aion closed 5 years ago

jeff-aion commented 5 years ago

The org.aion.avm.core module has, over time, developed too many responsibilities. This is causing difficulty for downstream projects which wish to embed the AVM, leading to duplication of capabilities, and is resulting in a more reachy pattern for resolving dependencies. This item proposes that we split off a new org.aion.avm.core.tooling module which will be responsible for the embedding cases we have, and NOT consumed by downstream projects (it would essentially be a peer to them). Classic examples of what would move to this new module are the AvmCLI and AvmRule. Note that the consequence of moving the AvmRule is that all of our integration-style tests (which is most of them) would also move to this new module. This need for a stronger distinction between unit testing and integration testing isn't a concern to us and we would still be keeping the tests and the code in the same repository (at least for now). NOT WITHIN SCOPE: Moving integration tests and examples further out into a module on top of this new one. This change may be made, in the future, but there is no immediate need for this (it is really just a step toward splitting this repository into 3: existing, tooling, examples+spec tests - nothing we are doing in the near-term).