Improvements to Tool XML Macroing System

#140 Merged at 8fc56b8
Repository
Deleted repository
Branch
default (2c39e7cb976f)
Repository
galaxy-central
Branch
default
Author
  1. John Chilton
Reviewers
Description

High Level: Previous macro-ing iteration only allowed removal of duplicated XML blocks. This pull requests extends that to allow removal of duplicated cheetah commands and text elsewhere. Modified GATK wrapper to demonstrate macros, cut lines of XML used to implement GATK wrappers from 7325 to 3858.

Low Level:
- Refactored macro processing code out into its own module.
- Implemented unit tests with demonstration and verify each feature.
- Reworked previous macros so they are a specific kind of macro ('xml').
- Added new 'template' macro type to inject variables into cheetah templating system. This allow de-duplication of code in templates.
- Reworked GATK wrappers to demostrate template macros.
- Added new 'token' macro type to allow de-duplication of code in XML attributes and text blocks.
- Reworked GATK citations to demonstrate this token macro type.

Comments (4)

  1. John Chilton author

    A little bird informed me there might not be the desire among the team to put any time into maintaining the GATK tools. If that is the case I would be happy to reissue this pull request without the GATK changes - they are a striking example of the utility of this macro-ing capability but the real testing for correctness is via unit testing lib/galaxy/tools/loader.py, I have roughly zero interest in the actual GATK tools myself.

  2. Jeremy Goecks

    This functionality looks very nice. I'm fine with leaving the GATK changes there as an example use case, provided that you've run functional tests and verified all tests pass. Have you done this?

  3. John Chilton author

    gatk_variant_apply_recalibration & gatk_variant_recalibrator appear to have no tests. All of the remaining tools have functional tests that pass:

    http://pastebin.com/DjCNVt65

    I did multiple file find & replace for nearly all of the GATK modifications so I would be very surprised if there was a typo in one of the untested files (or any for that matter).