-- the underlying data structure is still present, but until I decide what to do for the extensible system I've completely disabled the subsystem
-- Added code to merge Samples, so that a mostly full record can be merged with a consistent empty record. If the two records are inconsistent, an error is thrown
-- addSample() in Sample.class now invokes mergeSample() when appropriate
-- Validation types are now only STRICT or SILENT
-- Validation code implemented in SampleDBBuilder
-- Extensive unit tests for SampleDBBuilder
To run the same set of tests as the bamboo "All Tests" plan (unit tests,
integration tests, and pipeline tests):
ant alltests
To do the same as above on only the public portion of the codebase:
ant alltests.public
Public-only tests will allow us to check for runtime public -> private
dependencies when bamboo updates the github repository (currently, we
only check for *compile-time* public -> private dependencies).
To compile/run only public tests, append ".public" to the name of an existing
test target:
ant test.public
ant integrationtest.public
ant performancetest.public
ant pipelinetest.public
ant pipelinetestrun.public
To include documentation for hidden features in the generated GATKDocs,
run with -Dgatkdocs.include.hidden=true
I will enable this flag when bamboo generates GATKDocs for unstable.
Contracts remain disabled for non-test build targets. To enable for
non-test targets, run with -Duse.contracts=true. To disable for test
targets, run with -Duse.contracts=false.
Usable targets are now:
ant javadoc (public-only)
ant javadoc.private (public + private)
ant scaladoc (public-only)
ant scaladoc.private (public + private)
As documented in the comments, you need to set the ANT_OPTS environment
variable to -Xmx1G before using the scaladoc targets.
Will modify bamboo to auto-generate these and post them to the web after
successful builds.
Required a significant refactoring of the GATKDoclet, which now has a unified place where the ClassDoc, class, annotation, and handler are all stored together.
Index expanded to use summary() annotation field
UserExceptions, ReadFilters, GATK engine all use the system to generate docs
Doclet expanded to handle lots of new cases
Now uses GATKDoc class to organize documentation for arguments.
Arguments now listed by feature (required, optional, hidden, etc) and link to detailed information about the argument in the html
Lots of code moving between Class and ClassDoc objects. Should be refactored into a single static utility class.
This is very useful and easy. After running any test (for example ant integrationtest) and seeing failures, you can rerun ONLY THE TESTS THAT FAILED by using one of the following commands:
ant failed-integration
ant failed-pipeline
ant failed-test
ant failed-performance
obviously matching whatever tests you were running and got failures on.
This should run only the failed tests, and you can keep using this command until you have fixed everything.
(Thanks to David Roazen for major help with ANT)
The NullPointerException we were seeing when trying to run with contracts enabled was being caused
by an outdated version of the asm library.
To run tests without contracts and disable their compilation, pass in "-Duse.contracts=false" to ant.
Also did some minor unrelated cleanup in build.xml