Background: I am a functional consultant, with accounting/finance/erp experience.
My question is this -
a. I see a lot of great apps and concepts being released through the community.
b. I can also the see that the core team of developers are chugging along with versions and fabulous improvements.
However, If I’ve developed an app for V14.0, will it break in V18.0? There are guidelines provided by the frappe team. But nothing to ensure that the apps created are future ready. Perhaps there should be a ‘certifying’ service that can be provided by ‘authorised’ vendors. Their job would be to ensure that any app created is Frappe-future-ready.
This would be a paid service. I am sure any customers installing erpnext would be glad to avail of such a service.
We can even look at creating an repo of certified apps, like a playstore for ERPnext
Not just frappe, any open source framework face this issue.
Solution is to write tests as specified by framework and run them to verify changes required during upgrades.
https://frappeframework.com/docs/user/en/testing
3 Likes
There should be a certification process, it would help build credibility for developers and vendors
We should differentiate from other apps 
Did you check the certifications in frappe.school?
I trust machines that adheres to tests. I will trust the test case that I have created for my sanity.
Even in case of contributions test cases block new contributors from screwing old code or at least inform / tag code owner when things need change.
2 Likes
Definitely maybe.
There’s no way to “future proof” software applications like you’re suggesting. For example:
- Assume I write an App today. My app makes reference to a DocField on Customer named
'payment_terms'
.
- In the next version of ERPNext, the maintainers may decide to rename or delete the
'payment_terms'
DocField.
- I have no way of predicting that will happen. And no matter how carefully I write my App today? I cannot future-proof against this potential breakage.
As @revant_one noted, you just write Tests. Whenever new version(s) of the core application are released, you re-run your tests. And make adjustments as needed.
I guess that is the answer. Publish the tests along with the app on github. If anyone else wants to use the App, they run the test. Apps without a credible set of tests should not be included