frappe / frappe/pilot

Unable to install tally_migrator app — false dependency validation error

Open
#485 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
101
Forks
61
Avg merge
2d 12h
Merged PRs (30d)
41

Description

We are attempting to install the official `tally_migrator` application on our bench managed by Pilot, but the installation fails during the validation step.
https://github.com/frappe/tally_migrator

The installer throws an error stating that `frappe` is not declared in `pyproject.toml`, even though the file explicitly contains the required `[tool.bench.frappe-dependencies]` block with both `frappe` and `erpnext` mapped.

### Error Traceback
```text
Cloning tally_migrator...
Cloning into '/home/frappe/pilot/benches/prod-bench/.staging/tally_migrator'...
Error: 'tally_migrator' requires ['frappe'] in hooks.py, but pyproject.toml's [tool.bench.frappe-dependencies] doesn't declare them.
Add one entry per app, e.g. frappe = ">=16.0.0,<17.0.0"
Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "/home/frappe/pilot/pilot/tasks/get_app.py", line 42, in
GetAppTask.main()
File "/home/frappe/pilot/pilot/tasks/base.py", line 203, in main
run_task_main(cls)
File "/home/frappe/pilot/pilot/internal/tasks/authoring.py", line 83, in run_task_main
run_task(task_from_args(cls, bench, bench_root, args))
File "/home/frappe/pilot/pilot/internal/tasks/authoring.py", line 88, in run_task
task.run()
File "/home/frappe/pilot/pilot/tasks/get_app.py", line 19, in run
self.fetch()
File "/home/frappe/pilot/pilot/tasks/base.py", line 48, in wrapper
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/frappe/pilot/pilot/tasks/get_app.py", line 36, in fetch
app.install(
File "/home/frappe/pilot/pilot/core/app/__init__.py", line 278, in install
self.validate()
File "/home/frappe/pilot/pilot/core/app/__init__.py", line 342, in validate
Validator(self).validate()
File "/home/frappe/pilot/pilot/core/app/validator/validator.py", line 30, in validate
check.run(self.app)
File "/home/frappe/pilot/pilot/core/app/validator/dependency_declarations.py", line 37, in run
raise AppValidationError(
pilot.exceptions.AppValidationError: 'tally_migrator' requires ['frappe'] in hooks.py, but pyproject.toml's [tool.bench.frappe-dependencies] doesn't declare them.
Add one entry per app, e.g. frappe = ">=16.0.0,<17.0.0"
```

### Context & Observations
* Other apps (like `crm` and `erpnext`) install perfectly fine on the same bench environment.
* We have double-checked the source repository for `tally_migrator`. The `pyproject.toml` file correctly lists:
```toml
[tool.bench.frappe-dependencies]
frappe = ">=15.0.0,<17.0.0"
erpnext = ">=15.0.0,<17.0.0"
```
* It seems like Pilot's validation task is failing to parse or recognize the `pyproject.toml` configuration format specifically for this app. Please investigate why the validator is missing these valid declarations.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with pilot/core/app/validator/dependency_declarations.py and follow the validation call from pilot/core/app/validator/validator.py shown in the traceback. Reproduce installation of tally_migrator and inspect how its pyproject.toml [tool.bench.frappe-dependencies] block is read. Done means the declared frappe and erpnext dependencies are recognized and installation proceeds without this validation error.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
devops
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.