V12 Frappe Framework Latest Stable Version

I’m new to ERPNext. Previously I installed version v12.x.x-develop on Ubuntu 18.04 just want to try ERPNext. Couple of days ago, I saw ERPNext v12 release announcement, so yesterday, I completely remove the bench folder and delete database related to my previous ERPNext installation.

After new installation, I have v12.x.x-develop for Frappe Framework. Is this normal? What is the latest stable Frappe Framework that can we use for ERPNext v12 stable?

Installed Apps
ERPNext: v12.0.4 (version-12)
Frappe Framework: v12.x.x-develop () (develop)


1 Like

You should use the bench command switch-to-branch master - that will take you the latest stable version erpnext and frappe.

As I’ve learned from the others here, I only switch to develop when I need to make changes on Doctypes etc.

1 Like

Thanks @Iulian_Olaru

But, since I completely removed the bench folder before my latest install, should we considered that my latest install was a fresh install which is should be lead to the latest stable version?
I was using manual installation steps from https://github.com/frappe/bench

Btw, as you suggested, I still have erpnext 12.0.4 and frappe 12.x.x-develop after executing
bench switch-to-branch master && bench update --patch

bench switch-to-branch master && bench update --patch

switch-to-branch master will not work as there is no master branch existing.

Since ERPNext is already running on V12, you only need to switch your frappe branch:

bench switch-to-branch version-12
1 Like

Thanks @kennethsequeira

bench switch-to-branch version-12
After I ran the command, I got the following error:
bench.app.MajorVersionUpgradeException: Switching to version-12 will cause upgrade from 11 to 12. Pass --upgrade to confirm
So, I called
bench switch-to-branch version-12 --upgrade
I have try this for 3 times, but I always lost my ssh session to my vm a while after Building frappe assets… message appears.

For additional info, I setup my ERPNext on Azzure’s Standard B1s VM (1 vcpu + 1GiB RAM). Do I need to add more RAM to build the frappe assets?

Hi guys, i have a problem
when i add custom field and run bench update --patch shows the error trace:
Traceback (most recent call last):
File “/usr/lib/python3.5/runpy.py”, line 184, in _run_module_as_main
main”, mod_spec)
File “/usr/lib/python3.5/runpy.py”, line 85, in _run_code
exec(code, run_globals)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 97, in
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 764, in call
return self.main(*args, **kwargs)
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 717, in main
rv = self.invoke(ctx)
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 555, in invoke
return callback(*args, **kwargs)
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/click/decorators.py”, line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/commands/init.py”, line 25, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/commands/site.py”, line 234, in migrate
migrate(context.verbose, rebuild_website=rebuild_website, skip_failing=skip_failing)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/migrate.py”, line 52, in migrate
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/utils/fixtures.py”, line 24, in sync_fixtures
ignore_links=True, overwrite=True)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/core/doctype/data_import/data_import.py”, line 55, in import_doc
frappe.modules.import_file.import_file_by_path(f, data_import=True, force=True, pre_process=pre_process, reset_permissions=True)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/modules/import_file.py”, line 66, in import_file_by_path
ignore_version=ignore_version, reset_permissions=reset_permissions)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/modules/import_file.py”, line 141, in import_doc
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 258, in insert
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 917, in run_post_save_methods
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 786, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 1055, in composer
return composed(self, method, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 1038, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 780, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/custom/doctype/custom_field/custom_field.py”, line 67, in on_update
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/database/mariadb/database.py”, line 287, in updatedb
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/database/schema.py”, line 36, in sync
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/database/mariadb/schema.py”, line 86, in alter
raise e
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/database/mariadb/schema.py”, line 75, in alter
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/database/database.py”, line 170, in sql
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/pymysql/cursors.py”, line 170, in execute
result = self._query(query)
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/pymysql/cursors.py”, line 328, in _query
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/pymysql/connections.py”, line 517, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/pymysql/connections.py”, line 732, in _read_query_result
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/pymysql/connections.py”, line 1075, in read
first_packet = self.connection._read_packet()
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/pymysql/connections.py”, line 684, in _read_packet
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/pymysql/protocol.py”, line 220, in check_error
File “/home/ubuntu/frappe-bench/env/lib/python3.5/site-packages/pymysql/err.py”, line 109, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.InternalError: (1069, ‘Too many keys specified; max 64 keys allowed’)

is there any way to solve this problem?

I thought, the default installation steps without explicitly mention the branch option should give us the latest stable version. But, apparently I was wrong.

And finally I can do fresh install with version-12 for both frappe and erpnext.
All I have to do was explicitly include the branch options, for frappe init and get-app erpnext such as follows:

$ bench init --frappe-branch version-12 frappe-bench


$ bench get-app --branch version-12 erpnext https://github.com/frappe/erpnext

Without the branch options, I will have the 12.x.x.develop branch.

Cheers :slightly_smiling_face:

1 Like

Please see this. I posted the answer

Install and use the “screen” command. You can resume work where you left even if your connection closes.

1 Like

Thanks @crafter, I will try “screen” command if I am experiencing the same problem in the future :+1:

I need only ERPNext version 12.4.2 and frappe version v12.2.2 to be installed. What is the single line command I can give to do so?

The solution of roylrwan is work for me. I follow instruction in a tutorial and get many error in step of create a site. I check a frappe version. I found that it is a develment version. I think frappe team should update tutorial document in a step of init bench to this command

bench init --frappe-branch version-12 frappe-bench

1 Like