Unable to install tally_migrator app — false dependency validation error
- 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