By Steven C. Buttgereit | January 15, 2017
Simply this is our effort to codify how we develop for the xTuple ERP system. While these pages are for our internal use, we are happy to share our approaches and learning with the community at large and welcome suggestions on how we might improve on what we do.
Please note that this documentation will be a continuous work in progress and at times may be incomplete; while possibly incomplete, we will strive to not be self-contradictory.
xTuple Extension Docs, The Good and The Bad
xTuple has published a good amount of documentation about what they call extension development and the documentation is good. You should read it and know it if you want to do xTuple ERP extension development.
Where we think this documentation falls short is in being opinionated about what really are the “best practices” for customizing their product. Insofar as we can tell, they simply haven’t considered what those best practices should be outside of their own internal uses of these mechanism. This leaves something of a vacuum for xTuple customers and partners alike as to how best to use these tools and how not to conflict with other extensions that may be loaded into the system. To be fair to xTuple, the vast majority of their customers are of a type that will not customize their system or will have relatively trivial customizations: for those xTuple users, what we present here really is superfluous at a practical level.
For those that have more advanced needs however, we’re left to figure it out and hope we don’t conflict with the work of other extension developers including xTuple. Our real hope is that this situation changes and that the community coalesces around a set of practices which allow extensions to interoperate and not conflict with each other. If xTuple ever wants to have a viable extension marketplace, setting ground rules seems a pre-requisite.
This is what we try to remedy for ourselves here and why we’re publishing what we’re doing.
Given that xTuple has given us a surprising powerful customization toolset for this class of ERP system, but hasn’t given us comparable best practice guidance, we set out to define a set of opinionated best practice with the following goals:
- Ensure that Muse Systems custom development work adheres to a standard development model which is repeatable across projects.
- Define a standard which reduces unintended conflicts between abritrary extensions when installed into any one instance of xTuple ERP.
- Provide defensive measures against extensions which are inherently built without regard for co-existing with other extensions.
- Extension Packaging
- User Interfaces
Muse Systems Standards, Practices, and Recognized Pitfalls for xTuple ERP Development is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.