Please forward to interested parties. This is discussing breaking API compatibility, which may require updates to applications and providers. However, be assured that there is focused attention on the impact changes will have on migrating from 1.x to 2.0, as well as the costs needed to support both versions.
libfabric is targeting its 20th major release at the end of this year. This arbitrarily makes it a good time to evolve to API version 2. A major theme for 2.0 is API streamlining. 2.0 aims to simplify application and provider implementations long term. Overall, libfabric successfully defined a low-level network API that's implementation agnostic, yet meets the needs of high-performance applications. But, the most common complaint against libfabric is that applications must deal directly with provider differences. 2.0 hopes to address this to some degree, while still allowing providers to support advanced communication features. 2.0 should provide improved guidance on achieving performance over any provider. For the past few months, the ofiwg has held discussions on all aspects of the API, including application use cases. Through this process, we identified potential changes, some of which would break compatibility if used by apps. I have opened a series of github issues describing proposed changes in different areas of the API (see links below). Most issues are small, but I wanted to track their discussions separately. Note that all topics are open for discussion. The community is particularly interested in feedback that identifies features in active use by applications. For many or most users of libfabric, we anticipate that migrating 2.0 will require minimal changes. As much as possible, the API and ABI will remain unchanged. We will try to preserve function call signatures, data structure layouts, flag values, etc. A goal is that an app which has migrated to 2.0 should easily work with a 1.x version of the library. This assumes that the app is not using a new feature found only in 2.0, or has fallback code in place, similar to upgrading to any newer version of libfabric. - Sean https://github.com/ofiwg/libfabric/issues/9006 https://github.com/ofiwg/libfabric/issues/9007 https://github.com/ofiwg/libfabric/issues/9008 https://github.com/ofiwg/libfabric/issues/9009 https://github.com/ofiwg/libfabric/issues/9010 https://github.com/ofiwg/libfabric/issues/9011 https://github.com/ofiwg/libfabric/issues/9012 https://github.com/ofiwg/libfabric/issues/9013 https://github.com/ofiwg/libfabric/issues/9014 https://github.com/ofiwg/libfabric/issues/9015 https://github.com/ofiwg/libfabric/issues/9016 https://github.com/ofiwg/libfabric/issues/9017 https://github.com/ofiwg/libfabric/issues/9018 https://github.com/ofiwg/libfabric/issues/9019 https://github.com/ofiwg/libfabric/issues/9020
_______________________________________________ ofiwg mailing list [email protected] https://lists.openfabrics.org/mailman/listinfo/ofiwg
