====== VuFind Developers Call Minutes: November 16, 2010 ====== Attending: Jeffrey Barnett, Franck Borel, Demian Katz, Till Kinstler, Daniel Lovins, Preetha Rao ===== Agenda ===== ==== 1. Continuous Integration ==== Due to problems with its PHP plug-in, our [[http://vufind.org/sonar/|Sonar]] server is not very useful yet, though its code complexity and copy-and-paste detection functionality should prove useful. Thanks to Phing, we are now using [[http://vufind.org/hudson/|Hudson]] to track code standard compliance and unit test coverage. === Unit Testing === Right now, the value of our unit tests is minimal because we do not have good tests for code which relies on external services (i.e. Solr, MySQL, LDAP, etc.). Since this forms the bulk of VuFind's code, our coverage is low. We discussed possible solutions to this problem: * Where possible, write code to simulate the external services so that tests can be run in isolation. To test the viability of this approach, Franck will look into an LDAP mockup for his authentication tests. * When necessary, spin up external services as part of the overall test suite initialization. Tests can detect if these services are running and be skipped if their dependencies are missing. This should allow a fuller test suite without breaking the ability to run some tests without extra services running. Demian will continue to investigate the viability of this approach. * Integration testing with Selenium may also help cover code if we can get a sample copy of VuFind running as part of continuous integration. Demian will investigate both getting the necessary software in place on the CI server and also integrating this with the coverage reports if possible. Further feedback on testing issues is welcome -- please post to the [[https://lists.sourceforge.net/lists/listinfo/vufind-tech|vufind-tech]] list if you have thoughts on the issue. === Code Quality === Demian has begun cleaning up code to better comply with the [[http://pear.php.net/manual/en/standards.php|PEAR Coding Standards]]. Our compliance is visible in [[http://vufind.org/hudson/job/VuFind/33/checkstyleResult/?|Hudson's checkstyle area]]. If you add new or maintain existing code, please check its compliance in Hudson to ensure that you are within the standards. Feel free to contact Demian (demian DOT katz AT villanova DOT edu) if you need him to trigger a Hudson build so you can see the latest results -- builds are not yet happening automatically. We briefly discussed Demian's problem with figuring out how to reconcile long PHPDoc parameter descriptions with the PEAR standard's line length limit (i.e. is there a way to do multi-line PHPDoc token values?). Jeffrey will investigate. ==== 2. Highlighting ==== We discussed the [[http://vufind.org/jira/browse/VUFIND-304|VUFIND-304]] JIRA ticket. See comments on that ticket for background information. Demian will attempt to put together a patch for discussion at the next call (or the call after that, if he is unable to finish in time). ==== 3. Other Issues ==== === Scope Notes in Terminologies Recommendations === Daniel asked if scope notes can be added to VuFind's Terminologies recommendations module. This should be possible by extracting appropriate data in the getRelatedTerms() method of web/sys/WorldCatUtils.php and displaying it in the templates found in web/interface/themes/[your_theme]/Search/Recommend/WorldCatTerms.tpl. === MARC-XML Support in MARC Record Driver === Till asked if it would make sense to attempt to parse MARC records as XML if treating them as binary fails when initializing the MARC record driver. There was no objection to adding this flexibility to the code. ===== Next Call ===== The next call will be Tuesday, November 30 at 10am Eastern Standard Time (GMT - 5:00).