<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div>Hi!</div><div><br></div><div>I'm about to do a master's thesis in Software Engineering and I'm thinking about the possibility of doing something related to Haskell.</div><div><br></div><div>I would like to apply (Bayesian) statistics and, ideally, conduct some kind of experiment. If you have any suggestions on topics, please let me know!</div><div><br></div><div>Are there perhaps any particular challenges related to packages, dependencies, breakages or security vulnerabilities that I could take a look at?</div><div><br></div><div>Is the PVP debate still ongoing, by the way? Back in 2016, when I started looking into what I could do as a thesis, I wrote the following in a thesis proposal:</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>There is a (polarized) debate in the Haskell community about its package versioning policy (“PVP”), a variant of semantic versioning. Basically, the debate is centered around whether developers of Haskell packages should be “optimistic” or “pessimistic” in regards to breakages when introducing new versions of dependencies. Put differently, the debate is about how liberal or conservative developers should be when they set upper bound version restrictions for dependencies that have not been released yet. A liberal approach can result in a late discovery of a package breaking (possibly during compilation), and a conservative approach could result in constraints that cause the dependency solver not to find a set of dependencies that satisfies the version constraints (where one would have been possible and desirable).</div><div><br></div><div>The objective for the study is to inform the PVP debate by developing a model that can be used to analyze why packages break when new versions of dependencies are released.</div><div><br></div><div>The research question is: How can the handling of package dependencies in package systems using semantic versioning be changed to significantly reduce the problem of packages breaking?</div></blockquote><div><br></div><div>Thanks! 🙂</div><div>
<meta charset="UTF-8"><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><br class="Apple-interchange-newline">All the best,</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">Jon</div></div></body></html>