How are code changes picked from develop branch to master branch?

Currently I am having erpnext version 7.0.33. Branch is master.

I have some personal customizations on top of 7.0.33. I wish to update to 7.1.0.beta.

When I pull develop branch and merge it to my local master branch, I get a lot of conflicts. How do I update to beta version?

Looking into differences of develop and master branch on erpnext git repository, I see that lot of develop commits are missing in the master branch. How are the changes moved from develop to master? (cherrypick or merge or …)

You should not merge develop branch with master, create a new branch develop to track remote develop branch.

Then how do I pick features which are currently only on develop branch?

You mean, you want pick certain features from the develop branch into your master?

Yes.

There is a income tax calculation feature which is only present on develop (BETA) right now. I want to pick this feature from remote develop to my local master.

@neeraj_yadav You should keep all your customizations in a separate app so that there will be no conflicts when you update ERPNext

You mean I should maintain two branches. But eventually I’ll have to merge the new features into my app. How does maintaining two apps save me from conflicts?

And here currently I want to pick some features from develop branch into my local master branch. If I know the process how the changes are migrated from develop branch to master branch, then I can do the same and get the new feature.

Anything is possible on your own fork. That will be like
frappe=Firefox
forked_frappe=Ice weasel

You’ll have to manage your upgrades on your fork, on your own.

Ideally if you change frappe or erpnext code, send pull request so that community can discuss and merge.

Normally the bench release command does the merging/tag/release.

Customizations are to be kept in a custom app
https://frappe.github.io/frappe/user/en/guides/basics/hooks

When doing customizations, you want to do them in a separate app. That will allow you to install them on other machines, and allow you to keep on the most up-to-date version of erpnext and frappe.

If you want to switch between develop and master, use the following bench command:

bench switch-to-develop

This will only work if there are no conflicts due to customizations you made.

Hello @netchampfaris
If I need to contribute, then I have to create develop branch that track remote develop branch?
If I did this with master branch then my pull request will be refused to be merged?
Regards
Bilal

Yes, send features to the develop branch and not master.