Support function specific dependencies
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 15.9k
- Forks
- 1.3k
- PR merge metrics
- No merged PRs in 30d
Description
Assume we have 4 stages:
- Stages
0and2depend on the functionfoo - Stages
1and3depend on the functionbar
In order to reduce code duplication we want to put the utilities foo and bar in one place; let them be in utils.py. So, utils.py becomes a dependency of all four stages.
Now... after some time we realize we have to update something in bar. So we edit utils.py. This, in turn, invalidate all stages. Obviously, a simple solution is to have utils_0_2.py which will be a dependency of 0 and 2 and similarly utils_1_3.py. But this solution conflicts with good practices of coding.
A possible solution could be to adopt some notation like the one used in pytest and specify the function inside utils.py. For example, something like:
deps:
- md5: 409a438ee6ac70fc1f911631412325ea
path: utils.py::foo
This is a continuation of this discussion.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the linked discussion and the proposed deps notation for function-level paths such as utils.py::foo. Trace how dependencies invalidate stages, using the four-stage example as the expected behavior. Done means changes to foo invalidate only stages 0 and 2, while changes to bar invalidate only stages 1 and 3.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100