As far as I understand, Maven encourages "best practice" of unified view of dependency versions specified under <dependencyManagement> usually in a parent pom, instead of under <dependencies>.
In Mahout, this practice is only partially followed. Some dependencies have concrete versions under <dependencies> tag in submodule poms. Proposed change is to raid those and move version declarations into parent pom.
This (as far as i understand) achieves 2 things:
- Mahout assembly would include same versions for all modules thus ensuring runtime module dependencies are the same as compile time;
- Somebody who uses Mahout as a dependency, could import Mahout dependencies using <scope>import</scope> spec thus inheriting Mahout's versions for shared dependencies.
For most part the change would be nominal although in certain cases we'd need to sort out through cross-module conflicts (if any). Commons-math was one, not sure if there are more. If there are none, the changes would be rather mechanistic.