Skip to content

Sustainability of Clawpack

mandli edited this page Nov 13, 2014 · 16 revisions

Community

See Matthew Turk's paper, Scaling a code in the human dimension.

  • How do we attract new developers?
    • There is a healthy, growing rate of new subscribers/contributors to claw-users
  • How open are we to new users?
  • How do we encourage new users to contribute their patches?
  • Should we merge the claw-dev mailing list into claw-users?
  • Meetings
    • [HPC]^3 and ClawDev workshops - plans for 2015/2016?
    • What about organized meetings (say, for an afternoon) at conferences like SIAM CSE? This happens in practice but could be made more of a community event and advertised on claw-users.
Discussion
  • Google groups still a good idea, alternatives
    • Mailing list
    • gitter.im -> try out
    • slack
  • New developers
    • Friendly community
    • Press people to add to apps repository
      • Quality control
      • Require version tag
  • Meetings
    • Send out message about being at CSE at certain time
    • Geosciences as well for GeoClaw?

Credit

Discussion

Usability

See http://arxiv.org/pdf/1404.7414v2.pdf, especially the criteria on p. 19:

  • Will the software continue to provide the same functionality in the future, even if the environment (other parts of the infrastructure) changes?
  • Is the functionality and usability clearly explained to new users?
  • Do users have a mechanism to ask questions and to learn about the software?
  • Will the functionality be correct in the future, even if the environment changes?
  • Does it provide the functionality that existing and future users want?
  • Will it incorporate new science, theory, or tools as they develop?
Discussion
  • Library design vs. Framework
    • Design Riemann as its own library alone, then develop time stepping above that
  • Output/Input of things like the Riemann solvers
  • Namespace issues are one of the largest problems

Technical Debt

  • How well documented is the code?
  • What parts of the code base are not deeply understood even by core developers?
  • What parts are understood well by only one person?
Discussion
  • Mitigation
    • Software design
    • Removal of leaky abstractions
    • Documentation
  • Language issues
    • Fortran?
  • Technical debt has overhead to remove, want to avoid
    • Publish proceedings on this activity?
    • Enable new applications or algorithms

Other links

Quote from Turk paper:

The challenge to community building that is perhaps the most worrisome is that presented by the so-called “citation economy” in science. The influence of a given piece of code is often measured by citations to a method paper, which is by definition a fixed and archived document. In 2011, a method paper for yt was published. Enzo’s method paper is still under preparation, but papers in 1997 and 2004 are often cited as references for Enzo. Through reverse-indexing of citations (supplied by ADS, Google Scholar and so on), the number of citations to these papers provides an imme- diate method of gauging the influence of the software that they describe. In the intervening time between publication of the method papers, new contributors have joined the col- laborations and contributed substantial and non-trivial en- hancements to the code base. In fact, this is not only what has already happened, but an explicit, named goal of the future of these two code bases! This results in an unfor- tunate conflict of interests between new contributors and existing contributors. It is in the best interests of existing contributors, who contributed to the code base prior to the publication of a method paper, to consolidate citations in the canonical paper; unfortunately, it is in the best inter- ests of new contributors to publish a new method paper, so that they can begin to “collect” citations. In whose inter- est is it to contribute to a code base without rewards me- diated through citations, one of the most common metrics of success in academia? I believe this is among the great- est challenges to community developed codes not only in astrophysics, but across computational science – one that will continue to grow in importance as software projects inevitably scale beyond a handful of contributors.