linkedin / linkedin/pygradle

Multi-Project-Example: buildPex FAILED when using project dependency

Open
#301 1 comment 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
603
Forks
142
PR merge metrics
No merged PRs in 30d

Description

Hey everyone,

i would like to use pygradle in a multi-project setup with project dependencies. To get in touch with pygradle i started with an example which i'm going to share with you by opening a PR later. I hope it will be helpful for #29 #229 #173 #144.

I created two gradle sub-projects. A python-cli project (example-app) and a python-sdist project (example-lib) on which the cli project depends on.

$ tree -L 2
.
|-- README.md
|-- build.gradle
|-- example-app
|   |-- build.gradle
|   |-- setup.py
|   |-- src
|   `-- test
|-- example-lib
|   |-- build.gradle
|   |-- setup.py
|   |-- src
|   `-- test
`-- settings.gradle

You will find the example in my fork of pygradle: https://github.com/kKdH/pygradle/tree/master/examples/multi-project-example


But currently i'm facing the following error (gist) when i try to build the app:

multi-project-example/example-app> gradle build --info

> Task :example-app:buildPex FAILED
Task ':example-app:buildPex' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
Starting process 'command '/home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/venv/bin/python''. Working directory: /home/kkdh/Projects/pygradle/examples/multi-project-example/example-app Command: /home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/venv/bin/python /home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/venv/bin/pip freeze --all --disable-pip-version-check
Successfully started process 'command '/home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/venv/bin/python''
/home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/deployable/bin/example-app.pex
Starting process 'command '/home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/venv/bin/python''. Working directory: /home/kkdh/Projects/pygradle/examples/multi-project-example/example-app Command: /home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/venv/bin/python /home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/venv/bin/pex --no-pypi --cache-dir /home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/pex-cache --output-file /home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/deployable/bin/example-app.pex --repo /home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/wheel-cache --python-shebang /home/kkdh/.anaconda3/bin/python UNKNOWN==0.0.0 example-app==0.3.0a1
Successfully started process 'command '/home/kkdh/Projects/pygradle/examples/multi-project-example/example-app/build/venv/bin/python''
Could not satisfy all requirements for example-lib:
    example-lib(from: example-app==0.3.0a1)
:example-app:buildPex (Thread[Execution worker for ':',5,main]) completed. Took 1.165 secs.

After reading the log carefully i found the potential problem: pygradle resolves the example-lib dependency (important: when building the cli/app sub-project) as UNKNOWN==0.0.0.


Any pointers to a solution or further troubleshoot steps are appreciated.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with examples/multi-project-example and compare the root, example-app, and example-lib build.gradle files and their setup.py files. Reproduce gradle build --info from example-app and trace the buildPex inputs and project dependency resolution. Done means the multi-project build creates the example-app PEX while resolving example-lib with its actual project metadata instead of UNKNOWN==0.0.0.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.