The problem:
- Clients want features yesterday.
What to do:
- Try to see if the request fits in vanilla. Explore.
- Sieve requirements. Generalize.
- Write standards compliant code.
More: Preparing a Contribution Proposal · frappe/erpnext Wiki · GitHub
How to implement:
- Fork master branch as feature branch.
- Implement feature on feature branch, a.k.a production branch.
- Deploy production branch (master + feature) on production server for client.
- Fork feature branch as PR branch.
- Pull develop into PR branch.
- Initiate PR, following guidelines.
Precautions:
- Keep commits small: One feature per commit, or split further.
Code Changes
- Use git cherry-pick to pick changes from PR branch onto production branch.
Bench Update?
- Pull upstream/master into production branch(master + feature) locally and run tests.
- Update production branch on production server.
Example:
Production branch for our client. Contains code for what would be a PR for Exotel Integration. GitHub - mntechnique/erpnext at master-km
PRs:
(Working features, but much left to be desired: Closed functional loops, expecation management, security.)
(High chance of PR being closed because it is large and needs to be broken into smaller PRs.)