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 <lanking...@live.com> wrote: > 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 Yes > - add/remove/modify operator parameter Yes > > Thanks, > Qing > > On 6/20/18, 10:01 AM, "Haibin Lin" <haibin.lin....@gmail.com> wrote: > > 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 <lanking...@live.com> wrote: > > > 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 the PR passed. However it do requires contributor to do > this or > > the Scalatest will fail. I have made the error message instructive > that > > would help the contributor to dive in and make the changes. > > > > I also updated the design document to explain in detail. > > > > Thanks, > > Qing > > > > > > On 6/19/18, 12:09 PM, "Marco de Abreu" <marco.g.ab...@googlemail.com > .INVALID> > > wrote: > > > > 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 might not familiar with them > at all. > > On > > the other hand we got enough contributors who could help them > then > > before > > the PR can get merged. So either way works, but I just wanted to > > highlight > > that this could make it harder to make changes in the backend for > > people > > who are not familiar with our frontend API languages. If we got > enough > > people who could actively support our contributors in such a > case, we > > should be totally fine with blocking a PR until the APIs have > been > > adapted. > > > > -Marco > > > > On Tue, Jun 19, 2018 at 11:58 AM Naveen Swamy < > mnnav...@gmail.com> > > wrote: > > > > > 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, Marco de Abreu < > > > marco.g.ab...@googlemail.com.invalid> wrote: > > > > > > > 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 > > > > approach? > > > > > > > > Also, at which step would developers be notified of the > change? I'd > > > propose > > > > that we make this check a nightly job to prevent it from > blocking > > a PR > > > and > > > > forcing contributors who are not familiar with Scala having > to > > make a > > > > change to the Scala package. This would allow us to follow up > > > > asynchronously but still provide actionable events that one > can be > > > > subscribed to. > > > > > > > > Best regards, > > > > Marco > > > > > > > > On Tue, Jun 19, 2018 at 11:00 AM Qing Lan < > lanking...@live.com> > > wrote: > > > > > > > > > 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 the generated API document. It will check the > > signature of > > > all > > > > > the operators during Scala CI testing. The reason I am > doing > > this is to > > > > > make sure Scala developers will always be reminded if > there is an > > > > operator > > > > > name/argument changes happened in different PRs. More > detailed > > info > > > > > explained in here: > > > > > > > > > > https://cwiki.apache.org/confluence/display/MXNET/ > > > > MXNet+Scala+API+Usability+Improvement > > > > > > > > > > Pros: > > > > > This method will always help us keep backwards > compatibility of > > > operators > > > > > for Scala > > > > > Cons: > > > > > Require update on the FILEHASH with new contents when > there is an > > > > operator > > > > > change. Developers who changed the operator should `make > > scalapkg` to > > > > > update that file. > > > > > > > > > > Please leave any thoughts you may have for this design and > feel > > free to > > > > > review the code. > > > > > > > > > > Thanks, > > > > > Qing > > > > > > > > > > > > > > > > > > > > > > > > > >