Re: The operator check for Scala Package

2018-06-21 Thread Naveen Swamy
Yes it is starting with Scala APIs, but the APIs themselves are generated from the backend. I am not sure how it is handled for the Python but it will more likely be impacting all language bindings. On Thu, Jun 21, 2018 at 10:50 AM, Hao Jin wrote: > Can you elaborate on how this change is bringi

Re: The operator check for Scala Package

2018-06-21 Thread Hao Jin
Can you elaborate on how this change is bringing "alignment on the modifications to the operators across language bindings"? Seems like this PR is generating a hash from the scala files instead of the backend apis, how would this benefit other language bindings? Hao On Thu, Jun 21, 2018 at 10:44 A

Re: The operator check for Scala Package

2018-06-21 Thread Naveen Swamy
Thank you all for your input, I want to reiterate that this work is not to burden anyone but to bring alignment on the modifications to the operators across language bindings. I agree with Marco/Qing and we'll start off as a nightly runs and identify changes, we can discuss further later after we g

Re: The operator check for Scala Package

2018-06-20 Thread Qing Lan
Thanks Jun for your clarification. I think one of the advantages for MXNet is it's language binding. Although the number of customers using Scala is great less than Python, it is still one important language we need to support. About the first question, I would say we all in. At least all break

Re: The operator check for Scala Package

2018-06-20 Thread Jun Wu
We should reach an agreement on the responsibility/ownership before moving forward. 1. Who will take the ownership of fixing Scala build failure if an operator is changed/added in C++? 2. What is the expected turn around time of fixing the scala build failure. 3. What if we are short of resources

Re: The operator check for Scala Package

2018-06-20 Thread Qing Lan
Hi All, Thank you all for your feedback. This changes do influence a lot on the PRs related to operator changes. I will take what Marco proposed to place that in the nightly build rather than every CI we runs. Thanks, Qing On 6/20/18, 8:40 PM, "Hao Jin" wrote: I don't think we should k

Re: The operator check for Scala Package

2018-06-20 Thread Hao Jin
I don't think we should keep this hash check thing. As Qing stated before on this thread, if there's any change in documentation the hash value is also changed and then flagged as a problem, how will that break any user's code? I would go for something like Marco's proposal: moving this to an async

Re: The operator check for Scala Package

2018-06-20 Thread Naveen Swamy
Agreed, for new APIs we can turn into a nightly job and report on dev@. The goal here is not to burden anyone but to catch changes on the backend before it propagates and break user's code and co-ordinate changes across language bindings which IMO is essential, so I would like to keep for changes o

Re: The operator check for Scala Package

2018-06-20 Thread Marco de Abreu
I think we should go with an asychronous approach using a nightly job that detects the changes and reports them accordingly. We could then send out a report if there is a mismatch. I agree with the already stated points that we should not put the burden of adding frontend API bindings to somebody

Re: The operator check for Scala Package

2018-06-20 Thread Naveen Swamy
I understand the concerns here. However the problem here is that since the Scala APIs are generated using Macros and we do not(may not ever) have full test coverage on each of the APIs, we will not know for example if an operator/API changes on the backend and that propagates to Scala users, their

Re: The operator check for Scala Package

2018-06-20 Thread YiZhi Liu
Hi Qing, What is the exact risk of changing / adding operators? could you provide an example? I also feel the way you proposed is little bit too heavy to developers, and not quite friendly to new contributors. On Wed, Jun 20, 2018 at 10:22 AM Haibin Lin wrote: > > I appreciate the effort and under

Re: The operator check for Scala Package

2018-06-20 Thread Haibin Lin
I appreciate the effort and understand the motivation. However, I'm concerned that it basically means merging operator PRs becomes sequential. Developers who work on operators have to update their PR every time a new operator is merged to master, the burden becomes significant if there're 20 ONNX/s

Re: The operator check for Scala Package

2018-06-20 Thread Jun Wu
I don't think it's reasonable to fail on purpose in Scala when changing documentation or adding operators in C++. At least, it should follow the same behavior as we have for Python binding. On Wed, Jun 20, 2018 at 10:13 AM Qing Lan wrote: > Hi Haibin, > > The operator change is any changes on th

Re: The operator check for Scala Package

2018-06-20 Thread Qing Lan
Hi Haibin, The operator change is any changes on the operator on C++ side. Trigger the check failed? - change the documentation of operator in C Yes - change the documentation such as README.md No - add/remove/modify operator

Re: The operator check for Scala Package

2018-06-20 Thread Haibin Lin
Could you elaborate what you mean by operator change? Does it check the operator interface? Would updated operator documentation fail the check? Would adding a new operator fail this check? On Wed, Jun 20, 2018 at 9:48 AM, Qing Lan wrote: > Hi Macro, > > Thanks for your feedback! I believe thi

Re: The operator check for Scala Package

2018-06-20 Thread Qing Lan
Hi Macro, Thanks for your feedback! I believe this should not be a block for contributor in most of the cases. Firstly, this would only be triggered if there is an operator changes (Only general operators). Secondly, it is simple to go through. Just need to change 1 line of code would make th

Re: The operator check for Scala Package

2018-06-19 Thread Marco de Abreu
Okay, thanks for elaborating. I definitely see your point there and we definitely don't want these changes to pile up. I don't feel strongly about this and won't stand in the way, I just want to express my concern that this could lead to people having to touch all language interfaces although they

Re: The operator check for Scala Package

2018-06-19 Thread Naveen Swamy
Marco, Qing and I are working together on this. The idea is that we fail the build if there is a operator change on the backend and have not synced to the Scala API. We want to catch this before breaking the user's code which will be a pretty bad experience. On Tue, Jun 19, 2018 at 11:54 AM, Ma

Re: The operator check for Scala Package

2018-06-19 Thread Marco de Abreu
Hi Qing, thank you for working on improving the compatibility of our APIs! Your linked proposal does not describe the mentioned FILEHASH. Could you elaborate a bit? Would this be a hash of the entire file, some hash created based on the signature of the underlying C++ methods or maybe a different

The operator check for Scala Package

2018-06-19 Thread Qing Lan
Hi all, I am one of the maintainer for MXNet Scala package. Currently I am building up a hash-check system on the generated API through C. The PR is in this URL: https://github.com/apache/incubator-mxnet/pull/11239 A file named FILEHASH will be added to the Scala that created the MD5 string of