-
Notifications
You must be signed in to change notification settings - Fork 3
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
Add additional ":lineage" command and message #915
Conversation
After the functionality and API is completed, the message should be added to the Interface wiki page |
If the features as they are given here suffice for your purpose we may want to unlink the issue or outsource the rest into a new one. |
Co-authored-by: Florian Sihler <florian.sihler@uni-ulm.de>
No I didn't push with --no-verify
Co-authored-by: Florian Sihler <florian.sihler@uni-ulm.de>
I'll check asap |
@LukasPietzschmann are you fine with the changes? |
Year I'm fine with that. An hour ago I also thought about writing some tests, but looks like I forgotten about it seconds later. So thanks a lot for writing them! |
This pull request is included in v2.0.17 (see Release v2.0.17 (Forcing Arguments, Improved Side-Effect Detection, and Lineage Command)). |
* feat: first attempt at the new getLineage command * feat: walk additional edges for determining the lineage * feat: store lineage IDs in a set * feat: prevent infinite recursion when determining the lineage IDs * feat-fix: fixed lineage network request * feat-fix: get the dfg and ast from the pipeline in the correct way * doc: added lineage request doc * feat-fix: add filetoken to error messages Co-authored-by: Florian Sihler <florian.sihler@uni-ulm.de> * feat-fix: updated comment for better clarity * feat-fix: more guards, more better * feat-fix: clearer function interface * feat-fix: removed unused import No I didn't push with --no-verify * feat-fix: removed console.log Co-authored-by: Florian Sihler <florian.sihler@uni-ulm.de> * feat-fix: criteria resolve now only requires an idmap * test(lineage): basic test setup * lint-fix: handle linter issues and empty test labels * refactor(lineage): remove redundant promise * doc(lineage): refine wiki entries --------- Co-authored-by: Florian Sihler <florian.sihler@uni-ulm.de>
The new command requires a criterion and will provide the object's lineage.
Imagine the following code:
and the following request:
This will result in
[<id of b>, <id of c>, <id of x>]
Basically, we just walk def and read edges in the dfg and remember the nodes we visited.
Note that the PR differs a bit from what was promised in the linked issue. Upsi :)
TODOs: