illumos folks,

I'm writing you to explain the motivation behind a proposed change to the ZFS development model, and how it will benefit illumos.

Today, the code changes to ZFS are loosely centralized in illumos.  illumos is the de-facto upstream for FreeBSD and Linux, which are respectively the upstreams for OSv and OSX.

However, the current system is ineffective.  It is very difficult for the uninitiated to get ZFS changes that are working on FreeBSD or Linux implemented on illumos.  As a result, these changes, though they could and should apply to every platform, typically remain only in one platform.

I am putting together a proposal to create a platform-independent OpenZFS code repository.  The idea is that all platforms would pull from the OpenZFS repo, making it the upstream for all platform-specific repos, including illumos.  New changes could be pushed to platform-specific repos, or (preferably) to OpenZFS directly.  Volunteers from each platform would push changes from that platform to OpenZFS, and pull from OpenZFS to that platform.  This will allow us to centralize ZFS development, simplifying the process of sharing changes, while maintaining the high quality standards for ZFS that we have enjoyed in illumos.

While this change will have minimal impact on other platforms' procedures, illumos will need to pull changes from the OpenZFS repo to keep up to date.  Also, any ZFS changes that are pushed directly to illumos will need to be evaluated to see if they are platform independent, and if so push them to OpenZFS.  Initially, Delphix will provide the resources to make this happen, but we would appreciate any help with this.

There is increasing adoption, enthusiasm, and development of ZFS on non-illumos platforms.  If left unaddressed, fragmentation will increase; each platform will take ZFS in their own direction, with their own procedures and standards for code quality and style, making it ever more difficult to merge code between platforms.  By adopting this centralized ZFS code repository, we can bring the Solaris / illumos values of stability, maintainability, code reviews, etc. to all ZFS implementations.

For more background and details about what the OpenZFS code repository will include, see the talk I gave at the OpenZFS Developer Summit:

http://www.slideshare.net/MatthewAhrens/openzfs-code-repository

http://www.youtube.com/watch?v=U3dMhpmQTrU&list=PLaUVvul17xSdWMBt5tAC8Hu7bbeWskD_q&feature=share&t=48m

Please let me know if you have any concerns or suggestions.

--matt