Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

esbuild.js path[0] argument must be of type string. Received undefined #26346

Open
Thatoo opened this issue May 6, 2024 · 17 comments
Open

esbuild.js path[0] argument must be of type string. Received undefined #26346

Thatoo opened this issue May 6, 2024 · 17 comments
Labels

Comments

@Thatoo
Copy link
Contributor

Thatoo commented May 6, 2024

Description of the issue

I believe that erpnext is a string but I get an error as it isn't :

$ pwd
/var/www/dokos/dokos-bench-folder/apps/erpnext
$ node
Welcome to Node.js v18.19.0.
Type ".help" for more information.
> .exit
$ node /var/www/dokos/dokos-bench-folder/apps/frappe/esbuild/esbuild.js --production --apps erpnext --run-build-command
 ERROR  There were some problems during build

TypeError [ERR_INVALID_ARG_TYPE]: The "paths[0]" argument must be of type string. Received undefined
    at new NodeError (node:internal/errors:405:5)
    at validateString (node:internal/validators:162:11)
    at Object.resolve (node:path:1097:7)
    at get_all_files_to_build (/var/www/dokos/dokos-bench-folder/apps/frappe/esbuild/esbuild.js:233:9)
    at build_assets_for_apps (/var/www/dokos/dokos-bench-folder/apps/frappe/esbuild/esbuild.js:175:5)
    at execute (/var/www/dokos/dokos-bench-folder/apps/frappe/esbuild/esbuild.js:107:19)
    at Object.<anonymous> (/var/www/dokos/dokos-bench-folder/apps/frappe/esbuild/esbuild.js:92:1)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
Terminated

Context information (for bug reports)

Output of bench version

frappe 4.17.0

Stacktrace / full error message

2024-05-06 21:52:01,121: DEBUG - yarn run v1.22.22
2024-05-06 21:52:01,227: DEBUG - $ node esbuild --production --apps erpnext --run-build-command
2024-05-06 21:52:02,970: WARNING -  ERROR  There were some problems during build
2024-05-06 21:52:02,973: DEBUG - 
2024-05-06 21:52:02,975: DEBUG - TypeError [ERR_INVALID_ARG_TYPE]: The "paths[0]" argument must be of type string. Received undefined
2024-05-06 21:52:02,975: DEBUG -     at new NodeError (node:internal/errors:405:5)
2024-05-06 21:52:02,975: DEBUG -     at validateString (node:internal/validators:162:11)
2024-05-06 21:52:02,975: DEBUG -     at Object.resolve (node:path:1097:7)
2024-05-06 21:52:02,975: DEBUG -     at get_all_files_to_build (/var/www/dokos/dokos-bench-folder/apps/frappe/esbuild/esbuild.js:233:9)
2024-05-06 21:52:02,976: DEBUG -     at build_assets_for_apps (/var/www/dokos/dokos-bench-folder/apps/frappe/esbuild/esbuild.js:175:5)
2024-05-06 21:52:02,976: DEBUG -     at execute (/var/www/dokos/dokos-bench-folder/apps/frappe/esbuild/esbuild.js:107:19)
2024-05-06 21:52:02,976: DEBUG -     at Object.<anonymous> (/var/www/dokos/dokos-bench-folder/apps/frappe/esbuild/esbuild.js:92:1)
2024-05-06 21:52:02,976: DEBUG -     at Module._compile (node:internal/modules/cjs/loader:1364:14)
2024-05-06 21:52:02,976: DEBUG -     at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
2024-05-06 21:52:02,976: DEBUG -     at Module.load (node:internal/modules/cjs/loader:1203:32)
2024-05-06 21:52:02,983: WARNING - Terminated
2024-05-06 21:52:03,058: WARNING - error Command failed with exit code 143.
2024-05-06 21:52:03,071: DEBUG - info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
2024-05-06 21:52:03,167: WARNING - Traceback (most recent call last):
2024-05-06 21:52:03,196: WARNING -   File "<frozen runpy>", line 198, in _run_module_as_main
2024-05-06 21:52:03,197: WARNING -   File "<frozen runpy>", line 88, in _run_code
2024-05-06 21:52:03,208: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/utils/bench_helper.py", line 131, in <module>
2024-05-06 21:52:03,210: WARNING -     main()
2024-05-06 21:52:03,212: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/utils/bench_helper.py", line 34, in main
2024-05-06 21:52:03,214: WARNING -     FrappeCommandGroup(commands=commands)(prog_name="bench")
2024-05-06 21:52:03,215: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
2024-05-06 21:52:03,219: WARNING -     return self.main(*args, **kwargs)
2024-05-06 21:52:03,220: WARNING -            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-06 21:52:03,238: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 1078, in main
2024-05-06 21:52:03,238: WARNING -     rv = self.invoke(ctx)
2024-05-06 21:52:03,242: WARNING -          ^^^^^^^^^^^^^^^^
2024-05-06 21:52:03,245: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
2024-05-06 21:52:03,251: WARNING -     return _process_result(sub_ctx.command.invoke(sub_ctx))
2024-05-06 21:52:03,280: WARNING -                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-06 21:52:03,281: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
2024-05-06 21:52:03,286: WARNING -     return _process_result(sub_ctx.command.invoke(sub_ctx))
2024-05-06 21:52:03,295: WARNING -                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-06 21:52:03,296: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
2024-05-06 21:52:03,300: WARNING -     return ctx.invoke(self.callback, **ctx.params)
2024-05-06 21:52:03,309: WARNING -            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-06 21:52:03,309: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 783, in invoke
2024-05-06 21:52:03,310: WARNING -     return __callback(*args, **kwargs)
2024-05-06 21:52:03,316: WARNING -            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-06 21:52:03,319: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/commands/utils.py", line 69, in build
2024-05-06 21:52:03,326: WARNING -     bundle(
2024-05-06 21:52:03,336: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/build.py", line 257, in bundle
2024-05-06 21:52:03,336: WARNING -     frappe.commands.popen(command, cwd=frappe_app_path, env=get_node_env(), raise_err=True)
2024-05-06 21:52:03,339: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/commands/__init__.py", line 97, in popen
2024-05-06 21:52:03,340: WARNING -     raise subprocess.CalledProcessError(return_, command)
2024-05-06 21:52:03,344: WARNING - subprocess.CalledProcessError: Command 'yarn run production --apps erpnext --run-build-command' returned non-zero exit status 143.

OS version / distribution, Frappe install method, etc.
Debian 12

@Thatoo Thatoo added the bug label May 6, 2024
@cogk
Copy link
Contributor

cogk commented May 6, 2024

I believe that your bench/sites/apps.txt file is incomplete. It should look like this, at least:

frappe
erpnext

frappe/esbuild/utils.js

Lines 70 to 77 in f8abd09

function get_apps_list() {
return fs
.readFileSync(path.resolve(sites_path, "apps.txt"), {
encoding: "utf-8",
})
.split("\n")
.filter(Boolean);
}

@Thatoo
Copy link
Contributor Author

Thatoo commented May 7, 2024

now that I added erpnext to bench/sites/apps.txt, I face a new issue I don't understand :

2024-05-07 13:24:09,213: DEBUG - + sudo -u dokos env PATH=/opt/node_n/n/versions/node/18/bin:/opt/node_n/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin yarn install --check-files
2024-05-07 13:24:09,754: DEBUG - yarn install v1.22.22
2024-05-07 13:24:09,865: DEBUG - [1/4] Resolving packages...
2024-05-07 13:24:09,874: DEBUG - [2/4] Fetching packages...
2024-05-07 13:24:10,682: DEBUG - [3/4] Linking dependencies...
2024-05-07 13:24:10,709: DEBUG - [4/4] Building fresh packages...
2024-05-07 13:24:10,733: DEBUG - Done in 0.99s.
2024-05-07 13:24:10,761: DEBUG - + ynh_exec_as dokos env PATH=/var/www/dokos/bin:/opt/node_n/n/versions/node/18/bin:/opt/node_n/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin bench build --app erpnext
2024-05-07 13:24:10,762: DEBUG - + local user=dokos
2024-05-07 13:24:10,762: DEBUG - + shift 1
2024-05-07 13:24:10,762: DEBUG - ++ whoami
2024-05-07 13:24:10,765: DEBUG - + [[ dokos = root ]]
2024-05-07 13:24:10,766: DEBUG - + sudo -u dokos env PATH=/var/www/dokos/bin:/opt/node_n/n/versions/node/18/bin:/opt/node_n/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin bench build --app erpnext
2024-05-07 13:24:11,643: WARNING - Traceback (most recent call last):
2024-05-07 13:24:11,644: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/utils/bench_helper.py", line 93, in get_app_commands
2024-05-07 13:24:11,645: WARNING -     app_command_module = importlib.import_module(f"{app}.commands")
2024-05-07 13:24:11,645: WARNING -                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,646: WARNING -   File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
2024-05-07 13:24:11,646: WARNING -     return _bootstrap._gcd_import(name[level:], package, level)
2024-05-07 13:24:11,647: WARNING -            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,647: WARNING -   File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
2024-05-07 13:24:11,648: WARNING -   File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
2024-05-07 13:24:11,648: WARNING -   File "<frozen importlib._bootstrap>", line 1128, in _find_and_load_unlocked
2024-05-07 13:24:11,649: WARNING -   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
2024-05-07 13:24:11,649: WARNING -   File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
2024-05-07 13:24:11,655: WARNING -   File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
2024-05-07 13:24:11,662: WARNING -   File "<frozen importlib._bootstrap>", line 1142, in _find_and_load_unlocked
2024-05-07 13:24:11,663: WARNING - ModuleNotFoundError: No module named 'erpnext'
2024-05-07 13:24:11,725: WARNING - Traceback (most recent call last):
2024-05-07 13:24:11,738: WARNING -   File "<frozen runpy>", line 198, in _run_module_as_main
2024-05-07 13:24:11,738: WARNING -   File "<frozen runpy>", line 88, in _run_code
2024-05-07 13:24:11,739: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/utils/bench_helper.py", line 131, in <module>
2024-05-07 13:24:11,740: WARNING -     main()
2024-05-07 13:24:11,741: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/utils/bench_helper.py", line 34, in main
2024-05-07 13:24:11,742: WARNING -     FrappeCommandGroup(commands=commands)(prog_name="bench")
2024-05-07 13:24:11,742: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
2024-05-07 13:24:11,745: WARNING -     return self.main(*args, **kwargs)
2024-05-07 13:24:11,746: WARNING -            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,746: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 1078, in main
2024-05-07 13:24:11,747: WARNING -     rv = self.invoke(ctx)
2024-05-07 13:24:11,750: WARNING -          ^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,751: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
2024-05-07 13:24:11,752: WARNING -     return _process_result(sub_ctx.command.invoke(sub_ctx))
2024-05-07 13:24:11,754: WARNING -                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,761: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 1685, in invoke
2024-05-07 13:24:11,763: WARNING -     super().invoke(ctx)
2024-05-07 13:24:11,772: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
2024-05-07 13:24:11,774: WARNING -     return ctx.invoke(self.callback, **ctx.params)
2024-05-07 13:24:11,776: WARNING -            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,793: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/core.py", line 783, in invoke
2024-05-07 13:24:11,794: WARNING -     return __callback(*args, **kwargs)
2024-05-07 13:24:11,823: WARNING -            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,824: WARNING -   File "/var/www/dokos/dokos-bench-folder/env/lib/python3.11/site-packages/click/decorators.py", line 33, in new_func
2024-05-07 13:24:11,824: WARNING -     return f(get_current_context(), *args, **kwargs)
2024-05-07 13:24:11,825: WARNING -            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,825: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/utils/bench_helper.py", line 59, in app_group
2024-05-07 13:24:11,825: WARNING -     "sites": get_sites(site),
2024-05-07 13:24:11,828: WARNING -              ^^^^^^^^^^^^^^^
2024-05-07 13:24:11,828: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/utils/bench_helper.py", line 75, in get_sites
2024-05-07 13:24:11,828: WARNING -     elif default_site := frappe.get_conf().default_site:
2024-05-07 13:24:11,829: WARNING -                          ^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,829: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/__init__.py", line 441, in get_conf
2024-05-07 13:24:11,829: WARNING -     with init_site(site):
2024-05-07 13:24:11,830: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/__init__.py", line 451, in __enter__
2024-05-07 13:24:11,830: WARNING -     init(self.site)
2024-05-07 13:24:11,831: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/__init__.py", line 284, in init
2024-05-07 13:24:11,831: WARNING -     setup_module_map()
2024-05-07 13:24:11,831: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/__init__.py", line 1669, in setup_module_map
2024-05-07 13:24:11,832: WARNING -     for module in get_module_list(app):
2024-05-07 13:24:11,832: WARNING -                   ^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,832: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/__init__.py", line 1530, in get_module_list
2024-05-07 13:24:11,832: WARNING -     return get_file_items(get_app_path(app_name, "modules.txt"))
2024-05-07 13:24:11,832: WARNING -                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,833: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/__init__.py", line 1494, in get_app_path
2024-05-07 13:24:11,834: WARNING -     return get_pymodule_path(app_name, *joins)
2024-05-07 13:24:11,834: WARNING -            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,835: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/__init__.py", line 1525, in get_pymodule_path
2024-05-07 13:24:11,835: WARNING -     return abspath(join(dirname(get_module(scrub(modulename)).__file__ or ""), *joins))
2024-05-07 13:24:11,835: WARNING -                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,850: WARNING -   File "/var/www/dokos/dokos-bench-folder/apps/frappe/frappe/__init__.py", line 1465, in get_module
2024-05-07 13:24:11,851: WARNING -     return importlib.import_module(modulename)
2024-05-07 13:24:11,851: WARNING -            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,851: WARNING -   File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
2024-05-07 13:24:11,852: WARNING -     return _bootstrap._gcd_import(name[level:], package, level)
2024-05-07 13:24:11,852: WARNING -            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-05-07 13:24:11,852: WARNING -   File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
2024-05-07 13:24:11,853: WARNING -   File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
2024-05-07 13:24:11,854: WARNING -   File "<frozen importlib._bootstrap>", line 1142, in _find_and_load_unlocked
2024-05-07 13:24:11,854: WARNING - ModuleNotFoundError: No module named 'erpnext'

@Thatoo
Copy link
Contributor Author

Thatoo commented May 7, 2024

now bench build --app erpnext doesn't even launch the command
node esbuild --production --apps erpnext --run-build-command

but indeed, if I launch manually
node /var/www/dokos/dokos-bench-folder/apps/frappe/esbuild/esbuild.js --production --apps erpnext --run-build-command
it works!

@cogk
Copy link
Contributor

cogk commented May 7, 2024

To download an app you should use bench get-app eprnext, which should install it in the bench's Python virtual environment bench/env. The problem here is that erpnext (as a Python module) is not installed in your virtualenv, I would guess

@Thatoo
Copy link
Contributor Author

Thatoo commented May 7, 2024

Well instead of bench get-app, I download from git the app, put it in bench/apps/erpnext and then I do
python -m pip install --upgrade -e bench/apps/erpnext
I thought that would install it in the bench's Python virtual environment.

@cogk
Copy link
Contributor

cogk commented May 7, 2024

I thought that would install it in the bench's Python virtual environment.

bench/env/bin/activate
bench/env/bin/python -m pip install --upgrade -e  bench/apps/erpnext

You have to activate the virtualenv first, which sets the VIRTUAL_ENV, PYTHONHOME, … environment variables.

@Thatoo
Copy link
Contributor Author

Thatoo commented May 7, 2024

It works! Thank you so much @cogk .
I'll manage to make it working in fine, with all the help of this community 😄
Next step, understanding how bench initis working.

@Thatoo
Copy link
Contributor Author

Thatoo commented May 14, 2024

Now that I'm able to install erpnext with

sudo -u dokos /var/www/dokos/dokos-bench-folder/env/bin/activate
sudo -u dokos /var/www/dokos/dokos-bench-folder/env/bin/python -m pip install --upgrade -e  /var/www/dokos/dokos-bench-folder/apps/erpnext
chown -R $app:www-data "/var/www/dokos/dokos-bench-folder/apps/erpnext"
sudo -u dokos echo -e "\nerpnext" >>  /var/www/dokos/dokos-bench-folder/sites/apps.txt
cd /var/www/dokos/dokos-bench-folder/apps/erpnext
sudo -u dokos env /opt/node_n/n/versions/node/18/bin/yarn install --check-files
sudo -u dokos env /var/www/dokos/bin/bench build --app erpnext

Thanks to @cogk 😉 ,

I'm trying to bench init doing (after a git clone of frappe into /var/www/dokos/dokos-bench-folder/apps/frappe ) :

mkdir -p /var/www/dokos/dokos-bench-folder/sites
chown dokos:root -R /var/www/dokos/dokos-bench-folder
sudo -u dokos  /var/www/dokos/bin/bench setup env
sudo -u dokos /var/www/dokos/dokos-bench-folder/env/bin/activate
sudo -u dokos /var/www/dokos/dokos-bench-folder/env/bin/python -m pip install --upgrade -e  /var/www/dokos/dokos-bench-folder/apps/frappe
chown -R $app:www-data "/var/www/dokos/dokos-bench-folder/apps/frappe"
sudo -u dokos echo -e "frappe" >>  /var/www/dokos/dokos-bench-folder/sites/apps.txt
cd /var/www/dokos/dokos-bench-folder/apps/frappe
sudo -u dokos env /opt/node_n/n/versions/node/18/bin/yarn install --check-files
sudo -u dokos env /var/www/dokos/bin/bench build --app frappe

Everything seems to work till the last command line,
sudo -u dokos env /var/www/dokos/bin/bench build --app frappe

I get the following error :

$ /var/www/dokos/bin/bench build --app frappe
WARN: Command not being executed in bench directory
Usage: bench [OPTIONS] COMMAND [ARGS]...
Try 'bench --help' for help.

Error: No such command 'build'.

It's weird because if I do bench init and then I try to install erpnext as explain above,
sudo -u dokos env /var/www/dokos/bin/bench build --app erpnext
does work.
even though
/var/www/dokos/bin/bench --help
doesn't show any build command.

How can I make
sudo -u dokos env /var/www/dokos/bin/bench build --app frappe
works?

@cogk
Copy link
Contributor

cogk commented May 14, 2024

@Thatoo The build command is provided by the frappe app, and is not a built-in in bench.

@Thatoo
Copy link
Contributor Author

Thatoo commented May 14, 2024

last logs are :

2024-05-14 10:35:18,182: DEBUG - + sudo -u dokos env /opt/node_n/n/versions/node/18/bin/yarn install --check-files
2024-05-14 10:35:18,522: DEBUG - yarn install v1.22.22
2024-05-14 10:35:18,714: DEBUG - [1/5] Validating package.json...
2024-05-14 10:35:18,720: DEBUG - [2/5] Resolving packages...
2024-05-14 10:35:19,418: DEBUG - [3/5] Fetching packages...
2024-05-14 10:36:25,503: DEBUG - [4/5] Linking dependencies...
2024-05-14 10:36:25,524: WARNING - warning " > @frappe/esbuild-plugin-postcss2@0.1.3" has unmet peer dependency "less@^4.x".
2024-05-14 10:36:25,527: WARNING - warning " > @frappe/esbuild-plugin-postcss2@0.1.3" has unmet peer dependency "stylus@^0.x".
2024-05-14 10:36:25,538: WARNING - warning " > @vue/component-compiler@4.2.4" has unmet peer dependency "vue-template-compiler@*".
2024-05-14 10:36:44,474: DEBUG - [5/5] Building fresh packages...
2024-05-14 10:36:51,591: DEBUG - Done in 93.08s.
2024-05-14 10:36:51,735: DEBUG - + sudo -u dokos env /var/www/dokos/bin/bench build --app frappe
2024-05-14 10:36:52,073: DEBUG - WARN: Command not being executed in bench directory
2024-05-14 10:36:52,076: WARNING - Usage: bench [OPTIONS] COMMAND [ARGS]...
2024-05-14 10:36:52,076: WARNING - Try 'bench --help' for help.
2024-05-14 10:36:52,076: DEBUG - 
2024-05-14 10:36:52,077: WARNING - Error: No such command 'build'.

@Thatoo
Copy link
Contributor Author

Thatoo commented May 14, 2024

@Thatoo The build command is provided by the frappe app, and is not a built-in in bench.

However, sudo -u dokos env /var/www/dokos/bin/bench build --app erpnext does work.
So how can I make bench use the frappe app command?

@cogk
Copy link
Contributor

cogk commented May 14, 2024

WARN: Command not being executed in bench directory

Does this warning happen when building erpnext?

@Thatoo
Copy link
Contributor Author

Thatoo commented May 14, 2024

I check that

@Thatoo
Copy link
Contributor Author

Thatoo commented May 14, 2024

No.

If I first install frappe thanks to bench init then, all that works perfectly fine :

sudo -u dokos /var/www/dokos/dokos-bench-folder/env/bin/activate
sudo -u dokos /var/www/dokos/dokos-bench-folder/env/bin/python -m pip install --upgrade -e  /var/www/dokos/dokos-bench-folder/apps/erpnext
chown -R $app:www-data "/var/www/dokos/dokos-bench-folder/apps/erpnext"
sudo -u dokos echo -e "\nerpnext" >>  /var/www/dokos/dokos-bench-folder/sites/apps.txt
cd /var/www/dokos/dokos-bench-folder/apps/erpnext
sudo -u dokos env /opt/node_n/n/versions/node/18/bin/yarn install --check-files
sudo -u dokos env /var/www/dokos/bin/bench build --app erpnext

and I don't get any message like
WARN: Command not being executed in bench directory

neither at bench build for frappe:

2024-05-14 12:39:40,165: DEBUG - $ sudo supervisorctl restart frappe:
2024-05-14 12:39:40,585: DEBUG - frappe: ERROR (no such group)
2024-05-14 12:39:40,585: DEBUG - frappe: ERROR (no such group)
2024-05-14 12:39:40,639: DEBUG - WARN: restarting supervisor group `frappe:` failed. Use `bench restart` to retry.
2024-05-14 12:39:40,640: DEBUG - $ bench build
2024-05-14 12:39:42,292: DEBUG - Linking /var/www/dokos/dokos-bench-folder/apps/frappe/frappe/public to ./assets/frappe                                                                                
Linking /var/www/dokos/dokos-bench-folder/apps/frappe/node_modules to ./assets/frappe/node_modules                                                                                
✔ Application Assets Linked
2024-05-14 12:39:42,293: DEBUG - 
2024-05-14 12:39:42,301: DEBUG - 
2024-05-14 12:39:42,929: DEBUG - yarn run v1.22.22
2024-05-14 12:39:43,020: DEBUG - $ node esbuild --production --run-build-command

neither at bench build for erpnext :

2024-05-14 12:41:39,160: DEBUG - + ynh_exec_as dokos env PATH=/var/www/dokos/bin:/opt/node_n/n/versions/node/18/bin:/opt/node_n/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin bench build --app erpnext
2024-05-14 12:41:39,161: DEBUG - + local user=dokos
2024-05-14 12:41:39,161: DEBUG - + shift 1
2024-05-14 12:41:39,161: DEBUG - ++ whoami
2024-05-14 12:41:39,164: DEBUG - + [[ dokos = root ]]
2024-05-14 12:41:39,164: DEBUG - + sudo -u dokos env PATH=/var/www/dokos/bin:/opt/node_n/n/versions/node/18/bin:/opt/node_n/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin bench build --app erpnext
2024-05-14 12:41:40,090: DEBUG - Linking /var/www/dokos/dokos-bench-folder/apps/frappe/frappe/public to ./assets/frappe                                                                                
Linking /var/www/dokos/dokos-bench-folder/apps/frappe/node_modules to ./assets/frappe/node_modules                                                                                
Linking /var/www/dokos/dokos-bench-folder/apps/erpnext/erpnext/public to ./assets/erpnext                                                                                
Linking /var/www/dokos/dokos-bench-folder/apps/erpnext/node_modules to ./assets/erpnext/node_modules                                                                                
✔ Application Assets Linked
2024-05-14 12:41:40,090: DEBUG - 
2024-05-14 12:41:40,108: DEBUG - 
2024-05-14 12:41:40,647: DEBUG - yarn run v1.22.22
2024-05-14 12:41:40,738: DEBUG - $ node esbuild --production --apps erpnext --run-build-command

@Thatoo
Copy link
Contributor Author

Thatoo commented May 14, 2024

Well actually, I get this warning right from
sudo -u dokos /var/www/dokos/bin/bench setup env

@Thatoo
Copy link
Contributor Author

Thatoo commented May 14, 2024

To solve my issue, I need to add

 sudo -u dokos  /var/www/dokos/bin/bench setup procfile
 sudo -u dokos  /var/www/dokos/bin/bench setup socketio

before

sudo -u dokos /var/www/dokos/dokos-bench-folder/env/bin/activate
sudo -u dokos /var/www/dokos/dokos-bench-folder/env/bin/python -m pip install --upgrade -e  /var/www/dokos/dokos-bench-folder/apps/frappe
chown -R $app:www-data "/var/www/dokos/dokos-bench-folder/apps/frappe"
sudo -u dokos echo -e "frappe" >>  /var/www/dokos/dokos-bench-folder/sites/apps.txt
cd /var/www/dokos/dokos-bench-folder/apps/frappe
sudo -u dokos env /opt/node_n/n/versions/node/18/bin/yarn install --check-files
sudo -u dokos env /var/www/dokos/bin/bench build --app frappe

to make
sudo -u dokos env /var/www/dokos/bin/bench build --app frappe
working.

@Thatoo
Copy link
Contributor Author

Thatoo commented May 14, 2024

to get rid of
WARN: Command not being executed in bench directory
, if I understand well https://github.com/frappe/bench/blob/07b1462e603984ea9f3bb58567bacec3d8ccc86c/bench/utils/__init__.py#L40 , I should add

mkdir /var/www/dokos/dokos-bench-folder/apps
mkdir /var/www/dokos/dokos-bench-folder/sites
mkdir /var/www/dokos/dokos-bench-folder/logs
mkdir -p /var/www/dokos/dokos-bench-folder/config/pids 

before any bench commands.
However, if I add
mkdir /var/www/dokos/dokos-bench-folder/apps
before them (adding 3 other lines is ok but not this one),
I get the following error :

2024-05-14 22:21:07,639: WARNING - Traceback (most recent call last):
2024-05-14 22:21:07,640: WARNING -   File "/var/www/dokos/bin/bench", line 8, in <module>
2024-05-14 22:21:07,640: WARNING -     sys.exit(cli())
2024-05-14 22:21:07,641: WARNING -              ^^^^^
2024-05-14 22:21:07,641: WARNING -   File "/var/www/dokos/lib/python3.11/site-packages/bench/cli.py", line 74, in cli
2024-05-14 22:21:07,642: WARNING -     cmd_from_sys = get_cmd_from_sysargv()
2024-05-14 22:21:07,643: WARNING -                    ^^^^^^^^^^^^^^^^^^^^^^
2024-05-14 22:21:07,644: WARNING -   File "/var/www/dokos/lib/python3.11/site-packages/bench/utils/__init__.py", line 585, in get_cmd_from_sysargv
2024-05-14 22:21:07,646: WARNING -     if sys_argv.index(arg) == 0 and arg in Bench(".").apps:
2024-05-14 22:21:07,646: WARNING -                                            ^^^^^^^^^^
2024-05-14 22:21:07,647: WARNING -   File "/var/www/dokos/lib/python3.11/site-packages/bench/bench.py", line 67, in __init__
2024-05-14 22:21:07,648: WARNING -     self.apps = BenchApps(self)
2024-05-14 22:21:07,649: WARNING -                 ^^^^^^^^^^^^^^^
2024-05-14 22:21:07,665: WARNING -   File "/var/www/dokos/lib/python3.11/site-packages/bench/bench.py", line 173, in __init__
2024-05-14 22:21:07,665: WARNING -     self.initialize_apps()
2024-05-14 22:21:07,672: WARNING -   File "/var/www/dokos/lib/python3.11/site-packages/bench/bench.py", line 278, in initialize_apps
2024-05-14 22:21:07,672: WARNING -     self.apps.remove("frappe")
2024-05-14 22:21:07,673: WARNING - ValueError: list.remove(x): x not in list

So, as it is just a warning and it works like that, I won't add
mkdir /var/www/dokos/dokos-bench-folder/apps before bench commands even though there should be a way to solve this as bench init does the same without displaying this warning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants