Version 8.x.x maintained!

We have pushed a new branch v8.x.x which will maintain the latest code of version 8 for both frappe and erpnext repository.

So, if you don’t want to update to version 9 but want latest code of version 8, you can switch to v8.x.x branch manually for both frappe and erpnext repository. After switching to that branch you can run bench --site <your-site-name> migrate from frappe-bench.

6 Likes

Does this mean that v8 will receive security / fixes updates (if yes, for how many time ?) or is it only a branch where v8 code is easily reached ?

Thanks.

No, it will not receive any fixes unless it is really critical :frowning:

Thanks for clarification.

If you are using ERPNext v8.11.5 and above, then there is a critical bug in taxes calculation, which has been fixed in v8.x.x and v9.

If you don’t want to update to v9, then we suggest you to use v8.x.x branch.

… switch to v8.x.x branch manually for both frappe and erpnext repository. … run bench --site <your-site-name> migrate from frappe-bench.

would that practically be …

cd /home/frappe/frappe-bench/apps/frappe
git checkout v8.x.x
cd /home/frappe/frappe-bench/apps/erpnext
git checkout v8.x.x
cd /home/frappe/frappe-bench/
bench --site <your-site-name> migrate

?

1 Like
cd /home/frappe/frappe-bench/apps/frappe
git fetch upstream
git checkout v8.x.x
cd /home/frappe/frappe-bench/apps/erpnext
git fetch upstream
git checkout v8.x.x
cd /home/frappe/frappe-bench/
bench --site <your-site-name> migrate
2 Likes

@nabinhait
import error
ImportError: cannot import name create_custom_fields while migrate

please help site stuck on updating -live site :cold_sweat:

@kt2152 Please share the full error traceback.

@nabinhait

Executing erpnext.patches.v8_3.update_company_total_sales #2017-08-16 in erpdev (16071df12be8ddd4)
Success
Executing erpnext.patches.v8_7.add_more_gst_fields in erpdev (16071df12be8ddd4)
Traceback (most recent call last):
File “/usr/lib/python2.7/runpy.py”, line 162, in _run_module_as_main
main”, fname, loader, pkg_name)
File “/usr/lib/python2.7/runpy.py”, line 72, in _run_code
exec code in run_globals
File “/home/erpdev/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 94, in
main()
File “/home/erpdev/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
click.Group(commands=commands)(prog_name=‘bench’)
File “/home/erpdev/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 722, in call
return self.main(*args, **kwargs)
File “/home/erpdev/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 697, in main
rv = self.invoke(ctx)
File “/home/erpdev/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/erpdev/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/erpdev/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/erpdev/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 535, in invoke
return callback(*args, **kwargs)
File “/home/erpdev/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py”, line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/erpdev/frappe-bench/apps/frappe/frappe/commands/init.py”, line 24, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File “/home/erpdev/frappe-bench/apps/frappe/frappe/commands/site.py”, line 217, in migrate
migrate(context.verbose, rebuild_website=rebuild_website)
File “/home/erpdev/frappe-bench/apps/frappe/frappe/migrate.py”, line 31, in migrate
frappe.modules.patch_handler.run_all()
File “/home/erpdev/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 29, in run_all
if not run_single(patchmodule = patch):
File “/home/erpdev/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 63, in run_single
return execute_patch(patchmodule, method, methodargs)
File “/home/erpdev/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 83, in execute_patch
frappe.get_attr(patchmodule.split()[0] + “.execute”)()
File “/home/erpdev/frappe-bench/apps/frappe/frappe/init.py”, line 903, in get_attr
return getattr(get_module(modulename), methodname)
File “/home/erpdev/frappe-bench/apps/frappe/frappe/init.py”, line 688, in get_module
return importlib.import_module(modulename)
File “/usr/lib/python2.7/importlib/init.py”, line 37, in import_module
import(name)
File “/home/erpdev/frappe-bench/apps/erpnext/erpnext/patches/v8_7/add_more_gst_fields.py”, line 2, in
from erpnext.regional.india.setup import make_custom_fields
File “/home/erpdev/frappe-bench/apps/erpnext/erpnext/regional/india/setup.py”, line 7, in
from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
ImportError: cannot import name create_custom_fields

This error is because frappe is not in the latest version, I faced the same problem.

The function create_custom_fields was added in frappe v9.0.0 as you can see here:

This might be a problem for people that want to stay in 8.x.x

Regards

Yes it is a problem
, as there are still lot of errors in v9 and not stable yet , and attempting to upgrade also might break some Apps , and might take a day or more to resolve ,
it becomes a problem for live instances requiring almost constant availability everyday.

Got to wait till v9 is stable enough while testing Apps and there is some buffer time to upgrade.
I hope they resolve the issues considering backward compatibility.