e arose when Maguire began moving VisIt’s bug and issue history to GitHub. “The Redmine repository we’d been using was very different from GitHub,” explains Maguire. “We had to figure out how to translate from one to the other.” Redmine did not support an API for this process, so Maguire learned how to write a manual web scraper. Furthermore, GitHub’s import API was not a 1:1 match with the Redmine data, and it imposed limits on the number of queries Maguire could make. “I was flagged on a spam list and had to ask for special permission to continue,” he adds.
GitHub presented other considerations for the VisIt team. “Some of our binary files were huge, which GitHub doesn’t allow without paying for a larger bandwidth quota,” Miller states. “So we split out the big files and came up with a new development process to accommodate storage constraints.” VisIt’s size also prompted customization of continuous integration (CI), a key GitHub benefit. To prevent the test suite from timing out, the team is adjusting CI timing and building containers to run tests.
Last but not least, the team had to pick a cutover date when Lab personnel were available to assist—for example, not the same week that Computation sent more than 100 employees to the SC18 conference. A dry run was scheduled for December 2018, then VisIt version 2.13.3 debuted on GitHub in January 2019.
19 Years and Counting
Now accessible via the GitHub dashboard, VisIt’s code base is already receiving contributions from the external community. In another major scripting effort, documentation has been migrated to Sphinx, which integrates seamlessly with GitHub’s Read the Docs platform. After the team confirms the repository’s stability, Maguire will complete the bug and issue tracking migration. The VisIt website will eventually migrate as well, and the team plans to dive into GitHub’s analytics capabilities.
Version 3.0 is also on the horizon. Brugger notes, “VisIt leverages many third-party tools, all of which require maintenance. Some are more straightforward than others.” For instance, VisIt uses Ascent for in-situ processing and OSPRay as the ray-tracing library. The next VisIt version will include upgrades to GPU acceleration through VTK-m and, inevitably, documentation updates to reflect the current state of the software.
VisIt will mark its 20th anniversary next year, and its longevity can be attributed to several factors. According to Miller, many of VisIt’s capabilities cannot be found in commercial software. Moreover, he notes, “A majority of the core development team has been involved since the early 2000s, demonstrating remarkable and highly valued stability especially when compared to commercial software projects of similar scope.”
Success also depends on the team’s lasting relationships with early collaborators combined with welcoming the next generation of computer scientists. Former LLNL employee Brad Whitlock works with Intelligent Light to enhance their VisIt capabilities and remains active in the tool’s development. VisIt’s original architect, Hank Childs, now teaches at the University of Oregon and continues to assist with strategic planning. Childs regularly sets his research students—like alumnus Maguire—to work on VisIt. Maguire says, “I probably wouldn’t be at the Lab if VisIt hadn’t been open source.”