Conversation
|
Please help review. |
ibabiankou
left a comment
There was a problem hiding this comment.
@caiwei-ebay Thank you for working on this change! I looked at the change and believe we can do a few improvements.
- The data required to process dependencies is scattered across
DataPoolandDependencyNodeTraceContext, I think the part in the pool is not needed. - In the current implementation
DependencyNodeTraceContextrepresents all dependencies of a single node, given that down the line we want to handle those dependencies in parallel, we should already make sure one entry in the queue corresponds to one dependency.
If you don't mind giving me write access to the fork, I'd love to collaborate and push some changes with minor improvements such as comments, formatting etc. 😉
maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/NodeQueue.java
Outdated
Show resolved
Hide resolved
maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/NodeQueue.java
Outdated
Show resolved
Hide resolved
...-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
Outdated
Show resolved
Hide resolved
...-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
Outdated
Show resolved
Hide resolved
...-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
Outdated
Show resolved
Hide resolved
maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DataPool.java
Outdated
Show resolved
Hide resolved
...-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
Outdated
Show resolved
Hide resolved
maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DataPool.java
Outdated
Show resolved
Hide resolved
...-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
Outdated
Show resolved
Hide resolved
|
Thanks for your valuable feedbacks! |
|
@caiwei-ebay FYI: I've pushed some changes, but a few of the original comments are still to be addressed. I also want to have a fresh look at the naming and javadoc after that. I'll try to wrap it up tomorrow. |
|
@caiwei-ebay I'd say the PR is ready for review from my perspective. Below are the suggested title and description for the PR. WDYT?
@michael-o @cstamas I was thinking about rewriting the history of changes to make review easier, however, the only split that makes sense to me is
And it doesn't seem to make the review much easier 😕 Given that the change is fairly small and the majority of the diff is due to moving the |
|
@ibabiankou No need to squash at this stage. Pleease make are resolved discussions as such. Waiting for @caiwei-ebay Confirmation that this is ready to review. |
|
All the changes @ibabiankou made are good to me. Thanks @ibabiankou! |
|
Thanks you guys, I will pick this up by the end of the week. |
|
First and foremost question: Does this implement MRESOLVER-133? |
michael-o
left a comment
There was a problem hiding this comment.
- Guys, can you verbally express what you change actually does?
- Does it incur any resolution result changes? If not, can this be tested some how?
...-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
Outdated
Show resolved
Hide resolved
|
@michael-o @ibabiankou
|
|
@michael-o A: This PR is pure BFS approach. Just a change from DFS -> BFS for future PRs related MRESOLVER-133, MRESOLVER-228 and MRESOLVER-7. With DFS, maven resolves all nodes to compute the dependency tree. Later, I would like to submit a PR to skip certain nodes resolving to improve performance. Does it incur any resolution result changes? If not, can this be tested some how? A: Nope, it won't introduce any resolution result changes. No tests broken. |
|
pls incorporate latest master changes (whether rebase+squash+force push or just merge) |
@cstamas @michael-o @ibabiankou |
Co-authored-by: ibabiankou <ivan.babiankou@gmail.com>
|
Saw the master branch has been fixed already. Just rebased the code. After this PR merged, I would submit PR for below JIRA:
Then I think @ibabiankou would submit PR for:
|
|
Tested locally. This is what I did (used Java 11 Temurin for all, on Linux):
Then I went back to maven master (0be5e406d78062b56b32644fefce2642f5eab650) and built it with two contenders, always using EMPTY local repository. Expectation was that build should succeed in both cases, and both should produce same local repository. Results: Same in both cases. |
...-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
Show resolved
Hide resolved
|
IMHO, this looks good |
|
Run Maven ITs (57a1cf81bb87fbf46bd8189558a10633fe8bf65e) against maven using resolver-1.8.0-SNAPSHOT-BFS (built as above): aside those ITs known to fail due transport-http, rest is OK. Errored ITs are either Wagon related (I used maven with transport-http), or unrelated MavenITmng7349RelocationWarningTest (due local repoman). So I declare ITs OK |
|
Will take a look next week. Kindly create a new JIRA issue for this and an explanation of your idea. |
|
@michael-o |
|
Thank you, assigned. Will pick up next week. |

As discussed in MRESOLVER-228, here is the plan for multiple changes requested recently:
This PR is for DFS-> BFS.