Hi all,

Now that yt 3.1 is making its way out the door, I'd like to come back to a discussion we had last year about bugfixes.

I've made a pull request to the YTEP repository that summarized the change I'm proposing:

https://bitbucket.org/yt_analysis/ytep/pull-request/48/modify-ytep-1776-to-require-that-bugfixes/diff

Basically, I think bugfixes need to go to the stable branch rather than the yt branch.  Currently, all new changes go to the yt branch.  While this does simplify our development practices, this makes it difficult for us to release new versions that only include fixes for bugs.  Instead, even minor version releases that are cut from the yt branch include new features and API breakages.

I think this approach violates the principle of least surprise for users who have download a bugfix release.

The solution, I think, is to ensure bugfixes are only applied to the stable branch.  This will ensure that we can straightforwardly do bugfix releases that inlude only bugfixes and that new features and API changes are isolated to the more "experimental" yt branch.

This does come with some possible down sides.  In particular, there will likely be some confusion as we switch our development practices.  In addition, new contributors may find it difficult to split pull requests into new features that should go to the yt branch and bugfixes that should go to the stable branch.  It also adds a new maintenance burden: as soon as a bugfix pull request to stable goes in, there should be an accompanying merge from the stable branch into the yt branch to ensure that both branches get bugfixes.  This gets more complicated if the bugfix looks different in the yt branch and the stable branch.

All that said, I think these new maintenance burdens can be overcome with a bit of vigilance and maybe some new tooling.

I've probably said enough about this.  What do you all think?  Comments and concerns are very welcome.

Best,

Nathan Goldbaum