|
Ya, all the warnings need to go to zero (like javadoc). +1 for that, as long as we evaluate them carefully before suppressing them.
I think this will also require we categorize our unit tests into fast and slow. This will require TestNG or Junit 4.5 (my vote is for TestNG). See HADOOP-4901. +1 for that too. The current trunk has 1000 deprecated warnings from the mapred package. All of these warnings are because of deprecation of old-api related classes in favor of the new-api.
Is there a way by which we can do a blanket suppression of deprecated warnings, possibly from javac command line? What is a good way to handle this? The following ant argument will suppress all deprecated warnings, while keeping the other Xlint warnings:
-Djavac.args="-Xlint -Xlint:-deprecation -Xmaxwarns 1000" I don't think you can suppress deprecated warnings on a per-package basis. While we have so many deprecated classes in the old mapred package, I think that blanket suppression is the most pragmatic approach for this new patch target.
Or perhaps into unit test vs. functional or integration test. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Run javac, javadoc, findbugs, and release audit tool and report any new violations. Since this is for developers, we shouldn't force them to make a patch and make a clean work directory, but assume the patch has been applied to the work directory. That means we need to either clean up or suppress all of the warnings, especially from javac and findbugs.
2. Run some unit tests that aim for breadth of coverage.
Try and keep the whole thing under 10 minutes so that developers that are trying to test their patches aren't spending hours in the edit-test patch that is currently happening.
The other tests should be kept and run as often as possible.