Skip to content
Paul Butler edited this page Oct 13, 2019 · 6 revisions

SasView Code Camp V

Introduction

The fifth SasView Code Camp was 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 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 usage has grown significantly among its users and staff, a trend that should only continue with the new features available in release of 4.0. This collaborative community approach to analysis software development is key to NIST’s ability to provide maximum data analysis support for the long term and the hope is to expand the number of staff able to contribute beyond the current 3 developers as time goes on. ANSTO have been focused 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 not progressed as much as it would have liked on the code since last code camp. Their hope is that they can get an initial access to modelling SESANS data from within the SasView 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 mid 2012 - focusing 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, most 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 significantly expanded and enhanced to keep pace with the large number of new features and improved existing ones. 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. Perhaps the most exciting addition however is the sasmodels ​marketplace that Lewis wrote which is now live and has the potential of changing the way new models are developed and shared.

At the same time, several infrastructure enhancements needed to support the efficient development and deployment of SasView 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, very 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. It is interesting to not the ever increasing productivity and efficiency of the code camps, an indication of the growth and maturation of the development community.

Photos

​All photos from the code camp are here

Ticket Summary

Tickets Closed

Milestone: SansView 2.1.1 (1 match)

Ticket Resolution Summary Owner Reporter
SasView/sasview#298 fixed Hayter Penfold model gives incorrect result butlerpd

Milestone: SasView 4.0.0 (10 matches)

Ticket Resolution Summary Owner Reporter
SasView/sasview#755 fixed Data Info should display shape of 2D data lewis
SasView/sasview#754 obsolete Data2D stores no information about the shape/dimensionality of the data lewis
SasView/sasview#747 fixed loading invariant analysis doesn't butler
SasView/sasview#717 fixed Need to develop "marketplace" for new models lewis butler
SasView/sasview#581 fixed Saving plot as Raw RGBA format generates an image-less file smk78 smk78
SasView/sasview#579 fixed Re-position of Add Text in a plot panel is not possible lewis butler
SasView/sasview#503 fixed clean up ImageViewer interface butler butler
SasView/sasview#428 fixed Add polymer micelle model butler
SasView/sasview#407 fixed Unselect all data does not include sub-datasets lewis ajj
SasView/sasview#393 fixed Allow user to set plot range lewis mathieu

Milestone: SasView 4.1.0 (64 matches)

Ticket Resolution Summary Owner Reporter
SasView/sasview#871 duplicate S(q) models should not have scale and background parameters added ajj ajj
SasView/sasview#868 duplicate "compute" button still not working richardh
SasView/sasview#867 fixed load_models now ignores old sasview 3 custom models mathieu richardh
SasView/sasview#865 fixed Also allow the Python Shell/Editor to be invoked from the Fitting > Edit Custom Models sub-menu smk78 richardh
SasView/sasview#864 duplicate plug-in model unit tests from python shell not always working? pkienzle richardh
SasView/sasview#860 fixed Old-style custom models don't load wojciech
SasView/sasview#855 duplicate Load project issues krzywon richardh
SasView/sasview#853 fixed Fix Report Results krzywon smk78
SasView/sasview#852 fixed Review new File Converter documentation smk78 smk78
SasView/sasview#850 fixed Review new GPU and OpenCL documentation smk78 smk78
SasView/sasview#849 wontfix Check orientational distribution dirk dirk
SasView/sasview#848 fixed Let a custom model class name differ from its model name mathieu mathieu
SasView/sasview#846 fixed Theories not deleted when before loading project file krzywon krzywon
SasView/sasview#843 invalid Fitting Range and Checked Fit Parameters Not Saved krzywon
SasView/sasview#842 fixed Incorporate instructions for running the SESANS GUI smk78 smk78
SasView/sasview#840 fixed Magentism crashes SasView on Mac wojciech wojciech
SasView/sasview#837 fixed cannot set custom smearing without data mathieu pkienzle
SasView/sasview#836 fixed Clean up test data folder smk78 smk78
SasView/sasview#834 fixed Update the test data documentation smk78 smk78
SasView/sasview#833 fixed Update data_formats.rst when File Converter branch merged smk78 smk78
SasView/sasview#832 fixed testing custom models - issues? pkienzle richardh
SasView/sasview#831 fixed No about menu item on Mac ajj ajj
SasView/sasmodels#110 fixed Add documentation on Hankel transformation for SESANS wimbouwman wimbouwman
SasView/sasview#830 fixed Make the Python Shell Check Model error/info popup window bigger piotr smk78
SasView/sasview#829 fixed Update documentation of data formats to Include SESANS wimbouwman wimbouwman
SasView/sasview#828 fixed Add ANSTO logo to website footer smk78 smk78
SasView/sasview#826 fixed Remove Select All parameters checkbox from FitPage mathieu smk78
SasView/sasview#825 fixed Change default for parameter selection boxes on FitPage mathieu smk78
SasView/sasview#824 fixed Investigate core shell bicelle model butler richardh
SasView/sasview#823 fixed Compute button does nothing when there is data in the fit page ajj ajj
SasView/sasview#822 fixed Update Acknowledgement window smk78 smk78
SasView/sasview#821 fixed Update About window smk78 smk78
SasView/sasview#819 fixed Update acknowledgement text in local_config.py when corfunc branch is merged smk78 smk78
SasView/sasview#818 fixed Generate Zenodo DOI's for 4.0-beta and 4.0 release smk78
SasView/sasview#816 fixed Rescale smeared to unsmeared model mathieu mathieu
SasView/sasview#814 fixed Merge file converter branch ajj smk78
SasView/sasview#813 fixed Merge corfunc branch ajj smk78
SasView/sasview#812 fixed copy paste parameters should also copy constraints piotr butler
SasView/sasview#809 wontfix Hard crash when running complex model on GPU pkienzle
SasView/sasview#806 fixed Reparameterize hollow_cylinder richardh butler
SasView/sasview#805 fixed custom model name and id must be the same mathieu pkienzle
SasView/sasview#804 fixed custom models override builtin models of the same name mathieu pkienzle
SasView/sasview#797 fixed OpenCL errors on exit wojciech pkienzle
SasView/sasview#795 fixed custom models not appearing with structure factor button mathieu pkienzle
SasView/sasview#793 fixed Allow editing of C models from SasView GUI tools piotr butler
SasView/sasview#787 fixed Add link to model marketplace in SasView mathieu lewis
SasView/sasview#783 fixed Logging is broken when "error while determining build number" is emitted wojciech smk78
SasView/sasview#770 fixed Instrumental smearing not set automatically based on data mathieu ajj
SasView/sasview#769 fixed Add timestamp to console log entries piotr ajj
SasView/sasview#761 fixed Save Analysis option greyed out piotr lewis
SasView/sasview#756 fixed custom models reloaded too often wojciech pkienzle
SasView/sasview#748 fixed Problem with Generic Scattering Calculator buttons butler butler
SasView/sasview#713 fixed min value on flat background should not be zero but -inf richardh richardh
SasView/sasview#708 fixed updated custom models not being recompiled wojciech pkienzle
SasView/sasview#685 fixed be_polyelectrolyte model docs richardh richardh
SasView/sasview#668 fixed Change category management to load from models rather than default json file mathieu ajj
SasView/sasview#645 fixed Add Menu Help to User Documentation smk78 butler
SasView/sasview#633 fixed Support loading of data files from Anton Parr SAXSess krzywon ajj
SasView/sasview#626 fixed Data Operations should allow for reasonable numerical fluctuations in q mathieu butler
SasView/sasview#553 fixed Move GIT revision number to build script wojciech krzywon
SasView/sasview#549 duplicate Save Project and Save Analysis don't open on double clicking krzywon krzywon
SasView/sasview#425 fixed Problem with multishell model - glitches at high Q ajj ajj
SasView/sasview#388 fixed Fix License.txt ajj butler
SasView/sasview#239 fixed Save Analysis doesn't work for combined models jhjcho ajjackson

Milestone: Admin Tasks (2 matches)

Ticket Resolution Summary Owner Reporter
SasView/sasview#835 fixed github integration not working on sasmodels ajj butler
SasView/sasview#827 fixed Push new documentation to the website ajj smk78

Milestone: SasView Next Release +1 (4 matches)

Ticket Resolution Summary Owner Reporter
SasView/sasview#737 obsolete swollen sphere parameterization pkienzle
SasView/sasview#636 wontfix Problems with Proxies OS X 10.9 ajj John White
SasView/sasview#546 wontfix Do we use libxml2? smk78
SasView/sasview#398 wontfix On Mac with WX 3.0 can kill fitting perspective and can't get it back ajj ajj
Clone this wiki locally