Re: Publishing Scala Package/namespace change

2018-03-11 Thread YiZhi Liu
And just to make clear why I raise Spark MLLib as an example. I was arguing that namespace changing is a very rare issue that we have to make APIs incompatible. For other situations, the APIs evolves smoothly, MLLib '@deprecated' 'train(RDD)', instead of removing it, and make APIs compatible for a

Re: Publishing Scala Package/namespace change

2018-03-11 Thread YiZhi Liu
> > I'm not sure why users even need to know about the version mapping. If I'm > only interested in the Scala package from maven, why do I care which > version of libmxnet.so I'm using? If users want to use a specific feature, e.g., Volta GPU support, they need to first check which MXNet core

Re: Publishing Scala Package/namespace change

2018-03-11 Thread Chris Olivier
Since someone mentioned ABI, keep in mind that API compatibility does not necessarily mean ABI compatibility. libpython, for example, may, within a major version, guarantee backwards API compatibility (you can still compile successfully), but does not guarantee ABI compatibility, as structure

Re: Publishing Scala Package/namespace change

2018-03-11 Thread kellen sunderland
"Did ML lib increase their major version after deprecating RDD?" Answering my own question. They will increase major version after RDD is removed. This is basically scenario 1 from above. It would mean we release MXNet 2.0 with the Scala changes. On Sun, Mar 11, 2018 at 9:54 PM, kellen

Re: Publishing Scala Package/namespace change

2018-03-11 Thread kellen sunderland
"Why refactoring and deprecating means separating version from mxnet core? Apache Spark MLLib refactors and deprecates a lot (e.g., they deprecates RDD API), our C API also deprecates things, remember there are a bunch of xxxEx in c_api.h?" Did ML lib increase their major version after

Re: Publishing Scala Package/namespace change

2018-03-11 Thread YiZhi Liu
> > Changing namespaces is one example of a required major version change, but > there are more reasons like general refactoring or some deprecated APIs > just being hard to maintain. Why refactoring and deprecating means separating version from mxnet core? Apache Spark MLLib refactors and

Re: Publishing Scala Package/namespace change

2018-03-11 Thread Chris Olivier
Ok, so why don’t we have two votes? 1) change namespace is a separate vote since it’s a code change and has different voting rules (can be vetoed) 2) whether to disconnect non-C-API versioning from C-API versioning and have parallel versioning of all non-C APIs (process rule, so majority, I

Re: Publishing Scala Package/namespace change

2018-03-11 Thread kellen sunderland
YiZhi, In general I agree that your points and examples are the ideal case, but in the MXNet situation there are some trade-offs we have to make. Let me try to specifically answer your points: "Do you mean we have different version for 'ml.dmlc' namespace and 'org.apache' namespace?" No I am not

RE: call for contributions to next MXNet release

2018-03-11 Thread Zhao, Patric
Steffen, really thanks for the helps and I totally agree with you and Marco's suggestions. I will summarize the open issues and status for the review soon. > What is your github handle? Github ID: Patric Zhao, https://github.com/pengzhao-intel/ Da Zheng, https://github.com/zheng-da/

Re: Publishing Scala Package/namespace change

2018-03-11 Thread YiZhi Liu
I have no idea how separating Scala API version can solve the 'compatibility' problem. Do you mean we have different version for 'ml.dmlc' namespace and 'org.apache' namespace? Do these two versions have same behavior? How to tell which Scala API version works with which MXNet core version? By

Re: call for contributions to next MXNet release

2018-03-11 Thread Steffen Rochel
Patric - added MKL-DNN to the project list. What is your github handle? I do agree with Marco that we need to resolve disable tests, broken features etc. Jira looks like the right answer to create a list of known issues. Questions I do have: - do you have design docs we can link to? Does the doc

RE: Publishing Scala Package/namespace change

2018-03-11 Thread kellen sunderland
+1 (non-binding) to what Marco is describing. +1 (non-binding) to getting the Scala bindings with the namespace change into Maven. The general best practice for SemVer, which is used by most projects that employ SemVer, is to apply SemVer to the public APIs of packages that ship with your