Hi, I want to start development for erpnext, but I’m missing some kind of a “best practice” for a development setup.
Although I’ve read all of the tutorials, guides, videos available for dev-setups for frappe/erpnext, I did not find answers to the following general and specific questions:
Scenario:
We want to use frappe/erpnext within our startup to handle typical standard processes, therefore I assume we need a bit of customizing. Unfortunately, I have no experience with ERPNext so I can’t tell yet, to which extent. We also need to integrate our own specific business logic, frontends and processes etc. for which I assume is the custom app architecture best.
General question:
I think I understood the concept of apps and how to use them to extend ERPNext. Yet, within various blog posts and READMEs it is implied that several people usually start developing on the ERPNext app files within the bench/apps/erpnext folder itself. Is there any advice on what files can be changed without risk to guarantee upgrade-ability? In future, when I have the apps/erpnext folder in a private git repo, how to install it on a staging and production system then? I assume the bench-commands won’t work then.
Furthermore, the next question is based on using the frappe_docker bootstrap containers as explained here: frappe_docker/README.md at main · frappe/frappe_docker · GitHub
For a proper dev-setup (and later stating and production) I require to setup a private git repo where I will push everything that has been customized and customly developed. Assuming that all files within the bench directory (apps / sites / … ) are subject to development, I simply do not understand how properly use git to push the changes of my custom app, push the changes of erpnext etc.: After installing frappe, creating a bench etc. all the directories are already polluted with .git folders of various repositories (at least GitHub - frappe/frappe_docker: Docker images for production and development setups of the Frappe framework and ERPNext).
Even more complicated is the fact, that the bootstrap containers and VS Code Remote Container configuration from the tutorial opens at the top directory of the frappe framework - so the default git plugin of VS Code is totally useless.
If it’s probably too cumbersome to answer my question above, does anyone have a hint / tutorial / guide for a setup with the following characteristics:
- VS Code
- Containerized dev scenario with visual studio code where code changes are applied immediately in a bench with DEVELOPER_MODE = true
- Private GIT Repo with ERPNext changes and a custom app
- Deployment Pipelines to a staging and production environment
Thank you very much for your help in advance!