[First Timer] Developing, running and testing local frappe framework repo

How do you develop frappe framework and test changes locally?
Once you have the actual source of frappe framework, can bench leverage this to build apps locally?
In other words, Is there a way to modify and test frappe framework itself in local to generate an app with or w/o bench?

Is --clone_from the way to setup frappe app locally from the local frappe source?

What I understand about bench is that it installs frappe as the first app in the site project.

What I have explored till now:

This probably is for bootstrapped frappe apps and won’t resolve my issue. I am going through the bench commands and I’m assuming it expects something like this?:
bench init --clone_from=<frappe-bench_path>

And with bench init one can pass the parameter clone_from?

The other option is to pass

  • --frappe-path TEXT path to frappe repo
  • --frappe-branch TEXT Clone a particular branch of frappe

But that would defeat the purpose.

You can start from here.
https://frappeframework.com/docs/user/en/tutorial/create-an-app
This answer most of your questions
Open your terminal cd into your bench folder and type bench --help.

I don’t get why you’d not want to use the bench… It makes life so much easier.

In case you are trying to contribute,

  1. Setup development bench: bench init --frappe-branch develop frappe-bench. Change branch to version-15-hotfix if you are sending hotfix.
  2. cd frappe-bench/apps/frappe
  3. git fetch --unshallow, also add your frappe fork as git remote
  4. make changes to new branch and push the branch to your remote.
  5. make pull request
  6. keep pushing requested changes to the new branch created in step 4.

If you wish to setup bench with your fork of frappe. Use --frappe-path and --frappe-branch as per git repo and branch.

1 Like

Thanks. Is this part of contribution guide somewhere in frappeframework.com docs? I could not find it in the src CONTRIBUTING.

But I’m keeping contribution out of scope of my query for now. As I see here changes to local development also require a git version on remote (a local or remote git server) with --frappe_path otherwise it takes the default frappe branch. So essentially, this should work too correct?:
bench init --frappe-branch=<BRANCH> --frappe-path=<GIT_PATH> frappe-bench

try it!

Remote and branch should exist.

In case of private repo it will ask for credentials.