Should you not run bench get-app hrms
first, or did your custom package include it?
Works for me. But first supervisor is needed in the backend container.
Here is some help for that: WARN: restart failed: Couldn't find supervisorctl in PATH and Easy install fails with "frappe: ERROR (no such group)" message · Issue #6 · frappe/easy_install · GitHub
Installed supervisor, adjusted the supervisor config to include both fixes, restarted the service. Note that to install it, you need to be root and run apt-get update
first.
After that bench get-app hrms
runs successfully.
But when I include --resolve-deps
this happens:
bench get-app hrms --resolve-deps
ERROR: 'App' object has no attribute 'org'
Traceback (most recent call last):
File "/usr/local/bin/bench", line 8, in <module>
sys.exit(cli())
File "/usr/local/lib/python3.10/site-packages/bench/cli.py", line 127, in cli
bench_command()
File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.10/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/bench/commands/make.py", line 159, in get_app
get_app(
File "/usr/local/lib/python3.10/site-packages/bench/app.py", line 372, in get_app
resolution = make_resolution_plan(app, bench)
File "/usr/local/lib/python3.10/site-packages/bench/app.py", line 297, in make_resolution_plan
is_valid_frappe_branch(dep_app.url, dep_app.branch)
File "/usr/local/lib/python3.10/site-packages/bench/app.py", line 152, in url
return self.get_http_url()
File "/usr/local/lib/python3.10/site-packages/bench/app.py", line 155, in get_http_url
return f"https://{self.remote_server}/{self.org}/{self.repo}.git"
AttributeError: 'App' object has no attribute 'org'
So, leaving deps out for now.
By this point I think HRMS is ready in Frappe but not in ERPNext yet.
Next: bench --site sitename install-app hrms
The install completes successfully, but ERPNext page is: Internal Server Error
That’s where I am stuck now.
$ bench --site frontend install-app hrms
App erpnext already installed
App hrms already installed
$ bench list-apps
frappe 14.29.0 UNVERSIONED
erpnext 14.19.0 UNVERSIONED
No hrms app shown.
Errors in backend container:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/gunicorn/workers/gthread.py", line 271, in handle
keepalive = self.handle_request(req, conn)
File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/gunicorn/workers/gthread.py", line 323, in handle_request
respiter = self.wsgi(environ, resp.start_response)
File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/werkzeug/local.py", line 237, in application
return ClosingIterator(app(environ, start_response), self.cleanup)
File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/werkzeug/wrappers/request.py", line 194, in application
resp = f(*args[:-2] + (request,))
File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 84, in application
response = handle_exception(e)
File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 324, in handle_exception
response = get_response("message", http_status_code=http_status_code)
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/serve.py", line 27, in get_response
response = ErrorPage(exception=e).render()
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/error_page.py", line 7, in __init__
super().__init__(path=path, http_status_code=http_status_code)
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py", line 45, in __init__
self.set_template_path()
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py", line 54, in set_template_path
app_path = frappe.get_app_path(app)
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1356, in get_app_path
return get_pymodule_path(app_name, *joins)
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1373, in get_pymodule_path
return os.path.join(os.path.dirname(get_module(scrub(modulename)).__file__ or ""), *joins)
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1327, in get_module
return importlib.import_module(modulename)
File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'hrms'