Changes that survive the next ERPNext version
Work done by editing core files disappears the moment you upgrade, which is why so many instances end up frozen on an old version. We keep every change in a separate custom app and attach it through the framework hooks, so upgrades stay a routine job.
- A dedicated custom app, versioned in your repository
- Framework hooks instead of core edits
- Upgrades tested on a staging instance first