Version 24 (modified by ajj, 8 years ago) (diff) |
---|
SasView Code Camp V
Introduction
The fifth SasView Code Camp was be held at the Spallation Neutron Source, Oak Ridge, Tennessee from 4th to 11th October, 2016
Local arrangements were made by Mathieu Doucet with details on the planning page?.
Initial Goals
The management team met on Monday afternoon just prior to the Code Camp to work on a proposed set of goals for the Camp based, as always on the published roadmap but informed by the many developments and activities that have taken place since the last official update. For example the ESS contribution through its SINE2020 funding to work on refactoring the GUI, an activity targeted for 2019 in the roadmap, makes moot some of the smaller GUI enhancements envisaged earlier. Further, the final release of SasView version 4.0, completing the work from the previous Code Camp in Delft, was released just prior to the code camp. The plan was presented to the developers and after a brief disscussion the primary goals for the code camp, which will be translated to the next update to the roadmap, were agreed:
- TBA from list of tickets
- Add a new corfunc perspective
- Added file converter to support multifile data
- Integrate SESANS into the SasView GUI
- Fix Save Project when constrained fits are used
- Continue work on GUI refactoring (and the clean separation of UI from computational code).
- Work on increasing model coverage looking at non-overlap with SASfit models.
- Begin work refactoring/clean-up of Batch fitting (to include batch operations on roi such as box sum and slices).
- Finish model documentation review and formatting
- Add missing documentation and documentation of new functionality
- Work on improving infrastructure (build systems, 64 bit/Anaconda on all platforms of build machines, trac, licensing, etc)
These tasks build on the work done for release 4.0 and are aimed at a 4.1 release in late 2016/early 2017. The major items for this release are the integration of SESANS analysis, improvements to the Save Project functionality, inclusion of some models from SasFit, enhanced documentation and improved reliability.
Participants
Mathieu Doucet (ORNL) | Andrew Jackson (ESS) | Paul Butler (NIST) | Steve King (STFC) |
Ricardo Ferraz Leal (ORNL) | Piotr Rozyczko (ESS) | Jeff Krzywon (NIST) | Richard Heenan (STFC) |
Wim Bouwman (Delft) | Wojciech Potrzebowski (ESS) | Dirk Honecker (ILL) | David Mannicke (ANSTO) |
Jurrian Bakker (Delft) |
Progress and Outcomes
This code camp brought 13 developers together to work for 7 days on the SasView and sasmodels code, documentation, and development infrastructure. One new developer, Dirk Honecker from ILL, joined the project.
As usual the camp began with introductions and updates from all the partner labs. NIST indicated that SasView has now surpassed the use of its old IGOR analysis package among both its users and staff and that with release 4.0 plans are being made for some local tutorials. Further with their effort at the code camps and in between from 3 staff members the feeling is that they now have a sufficient handle on the code base to not dependent on others for any critical needs. ANSTO have been focussed on delivering data reduction for two new beam lines - Kookaburra and Bilby - but they want to be able to support their users who analyse their data using SasView. ISIS were happy to report that they had somehow managed to hire a summer undergrad to work on the code this summer who was extraordinarily productive providing many fixes and new features to the project. Several people asked about the possibility of hiring him again and it was suggested that was not out of the realm of possibility. From the ILL, Dirk Honecker introduced himself and said that his primary interest was in getting magnetic and oriented models working properly. SNS has users who use SasView and the primary interest from the facility is in incorporating sasmodels into their web-based data work flow, requiring some work on the sasmodels API. Delft has done some work on the SESANS project but mostly not progressed too much on the code since last code camp. Their hope is that they can get something into the GUI at this code camp. Finally, ESS have continued the work laid out in the SINE2020 project - the first new specific funding for SasView since the UTK NSF grant ended in 2011 - focussing on GUI redesign for SasView, SasFit integration work and performance enhancement of sasmodels.
While not slated for deployment in the next release, the work on GUI refactoring and SASfit model integration, tasks receiving the attention of the full time SasView developers at ESS, continued at this code camp in preparation for release 5.0. As part of that effort, some review discussions were undertaken and a few other developers began to help with those tasks both to speed up the development to meet our target release but more importantly to start learning the new code base for a smooth transition as the time approaches.
To focus the work for the code camp, the management team made proposed we target late 2016 for a v4.1 release of the features discussed and agreed. In order to achieve this, the development team was placed in groups? focusing on:
- New GUI
- SESANS analysis integration
- Sasmodels bug fixing and enhancement
- SasView bug fixing and enhancement
- Documentation & Training
- Developer Infrastructure
By the end of the code camp, several of the main goals had been achieved. SESANS functionality was working in the GUI - both transforming SANS models automatically and calculating SESANS function directly. The save project functionality had been improved and repaired. The models from SasFit? that do not currently overlap with sasmodels had been identified and work started on shipping them to the sasmodels marketplace for users to download. Refactoring of oriented cylinder-type models had begun to improve the behaviour when using orientation distributions. The documentation was broadly reviewed, then corrected and enhanced as needed. As can be seen from the list of tickets that were closed or worked on during the code camp, there was a lot of work on stability improvements and bug fixing.
The work that had been done by Lewis O'Driscoll at ISIS over the summer was integrated into the main code base, adding a Correlation Function perspective, and a data converter for file formats that put Q and I in separate files. In addition, the sasmodels marketplace that Lewis wrote was now live and some models were uploaded.
Some infrastructure enhancements were made: some of the build servers were upgraded to deploy with scipy 0.18 (which proved to be more difficult than anticipated); a test build server for a 64bit windows build was set up and it was agreed that 4.1 will be the last 32bit Windows release; the Trac server was properly integrated with Github so that code browsing works and commit messages can add comments to and close Trac tickets. The developers all became comfortable with a branch-work-merge/pull request workflow, rather than committing all changes to master. This approach will hopefully allow us to make more frequent releases as we can choose to not include code in master that is not yet stable enough.
Overall, good progress was made towards the 4.1 release goals.
Code Stats
Over the camp 81 tickets were closed.
Over the period of the camp, ten developers contributed to the !SasView code repository. There were 113 commits to all branches and master had 344 files changed with 79,668 additions and 39,499 deletions.
There were contributions from 10 developers to the sasmodels code repository. There were 52 commits to all branches and master had 1 pull request and a total of 46 commits. 57 files changed with 1,462 additions and 550 deletions.
Next Steps
All the developers will continue to work on the tickets that are assigned to them. The aim is for anything that is going to make it into 4.1 to be ready for merging with master by the end of October or mid-November at latest.
Photos
All photos from the code camp on Flickr
Ticket Summary
Tickets Closed
Milestone: SansView 2.1.1 (1 match)