-
Notifications
You must be signed in to change notification settings - Fork 1k
[WIP] Ignore NoGoCode errors from required packages #1545
Conversation
This is a prototype for keeping track of the path through the selection process to a project. It is used to help dep ignore "stale" transitive constraints: constraints that when created applied to a descendent but should no longer apply now that that the project has moved to another location in the dependency graph. Questions: * I put bmi on atomWithPackages because it already had a bmi method to recreate the original bmi. Not sure if it's safe to live there considering the comments on the original bmi function about avoiding copys of the package list. So it may need to shift elsewhere or path should be be split out from the bmi struct so that it can be attached directly to an atom. * Is a non-bimodal solve ever a possibility in dep (outside of the unit tests?). I think we could drop "dep.isTransitive" in favor of using bmi.path exclusively but the unit tests have a non-bimodal set of tests that cause this to fail.
@sdboyer This has a WIP on it because it's not ready to merge but when you have time I'd appreciate a sanity check on my solver changes. I don't want to put more work on this until I know that my structural changes are acceptable. |
Could this PR be prioritized? Like, Go's xtools at golang.org/x/tools can't be resolved with dep until this work is completed. |
This is open source - it's spelled "what can i do to help?" 😜
It can. Point |
@sdboyer When I point |
Hi there! Best regards. |
Let me rebase and see if I can get a review of my changes. I wasn't confident that this is "the right way" to solve it, which is why it's been sitting for so long. |
@carolynvs oooh, i actually had some more thoughts about this. Instead of imbuing This would have some @carolynvs does that help with your (un)certainty at all? |
OMG that is waaaaaay better! 💯 I'm going to close this PR and open a new one with that behavior instead. |
hey @carolynvs did you end up opening a PR? |
@cove No, sorry to say that I don't have time to work on dep anymore all things considered. 😢 |
So, do we have someone who'll continue work on this feature? |
What does this do / why do we need it?
This allows someone to vendor a project that doesn't have Go code by adding an entry to the
required
list in Gopkg.toml.What should your reviewer look out for in this PR?
As I worked on this I realized that the change I made to support transitive constraints from #1489 also allowed me to keep track projects that were introduced from a required, vs. an import. This plumbing enables us to pass information through the solve process and use them during checks. That is the first commit in this PR. It's the same commit from that pull request.
It's either a really great idea or something that will throw @sdboyer into a violent rage. 😀
Do you need help or clarification on anything?
I put bmi on atomWithPackages because it already had a bmi method to recreate the original bmi. Not sure if it's safe to live there considering the comments on the original bmi function about avoiding copys of the package list. So it may need to shift elsewhere or these extra values should be attached directly to the atom struct.
Which issue(s) does this PR fix?
Fixes #1306