Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 76E69200D4E for ; Fri, 17 Nov 2017 04:49:54 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 7586B160BF4; Fri, 17 Nov 2017 03:49:54 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 6E31E160BEA for ; Fri, 17 Nov 2017 04:49:53 +0100 (CET) Received: (qmail 52170 invoked by uid 500); 17 Nov 2017 03:49:52 -0000 Mailing-List: contact dev-help@mxnet.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@mxnet.incubator.apache.org Delivered-To: mailing list dev@mxnet.incubator.apache.org Received: (qmail 52151 invoked by uid 99); 17 Nov 2017 03:49:51 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Nov 2017 03:49:51 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 10901C63D8 for ; Fri, 17 Nov 2017 03:49:51 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.129 X-Spam-Level: ** X-Spam-Status: No, score=2.129 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, KAM_LOTSOFHASH=0.25, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id dbPb-L7smdWf for ; Fri, 17 Nov 2017 03:49:48 +0000 (UTC) Received: from mail-lf0-f45.google.com (mail-lf0-f45.google.com [209.85.215.45]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 12DFB5F3FE for ; Fri, 17 Nov 2017 03:49:48 +0000 (UTC) Received: by mail-lf0-f45.google.com with SMTP id r135so1202185lfe.5 for ; Thu, 16 Nov 2017 19:49:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=R44ijRTxf9HAS6S+jMEIuGT9XcAPtfZuF3QUpSCEuQM=; b=ApOd3xkI9fMsDIKy9dkGqnFDTIG68CfSVZT+ymnlrXjjv1LwZAxMK/VUuDt9c9jufd Kwv882mwRMSjilW86zsYoVADHjj2R5mf8f5gO0Nxz0vq77ZGemvxPgMSATF+s8xR0Fkg 8kiagAJXeUZWBmsywX6EPrJGBTjIoOCYeaEhpG0WwwjIhZSwE4S7XzgfPUiWeu+01fex ODiw7bXyBKiTn3xdiGM1m9RoNe4vXPhTYS9IiifC0ePPNSPhMWK4q0mHchLexwZ3oR3/ 8a7SawmUSBh78bvy516iJiQHwMb3grXYU0fcSf7zL3TYrzGsVG2XZved9ntdBjRd1zgk 5MzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to; bh=R44ijRTxf9HAS6S+jMEIuGT9XcAPtfZuF3QUpSCEuQM=; b=HwgSTARN6qKFFVZW4lM1PnG/MkeykBKMmhEBCFEkCbwp2ZepASgSXCO4MFozHoUorQ +XS07AVpm1Mm6/2000kMF5wHaSWRc6gHxacL/iIzKw8CBVD3nF6vQWRM+/yX7rdQg2Iv PG8fwZW09Wl9o+QOG3vaa45t30HAIxZ/PrEP1RGbZHKm9x7HU7ICELBW1b7EEUUy17cN px4+DvKwzPlhd3aAbI8pmWsUAjLaOvY6rsJXXWywiWyxow6IkL6jcf9h1QPizmu6Tnka TeYvYAhsWhmtTrZ5OS7sAU1bKMM28up30Nh5NU3vS5yChz3sk67Gcuil3eTzQZo8feXl KkfQ== X-Gm-Message-State: AJaThX4OPbBAtb9r+h9dIYWw8rZqXJYyjAk6/Y6itKFiSZDTAbyKLOoF jOaNxpDF4pyDPFQWyZpOEwhIKFt0UB7toszrzdRhv3y/ X-Google-Smtp-Source: AGs4zMYZxxtjW8Xrhq2f56ek2YkrlW4HG7EblAh7VC+jQZpV3sOVmkelAQ+4U4BWVLt+iKPoQRxBOdflNobErHiWYQQ= X-Received: by 10.46.82.132 with SMTP id n4mr212286lje.31.1510890587271; Thu, 16 Nov 2017 19:49:47 -0800 (PST) MIME-Version: 1.0 Sender: limu.cn@gmail.com Received: by 10.25.31.4 with HTTP; Thu, 16 Nov 2017 19:49:46 -0800 (PST) In-Reply-To: References: <0B7E9361-3FCD-4702-A108-06732F5468E9@amazon.com> From: Mu Li Date: Thu, 16 Nov 2017 19:49:46 -0800 X-Google-Sender-Auth: lphaRESddqa-ejThKevSAiU9nZs Message-ID: Subject: Re: AWS contributing ONNX-MXNet To: dev@mxnet.incubator.apache.org Content-Type: multipart/alternative; boundary="001a113be202bfb893055e25a0d8" archived-at: Fri, 17 Nov 2017 03:49:54 -0000 --001a113be202bfb893055e25a0d8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks for pointing it out, Hagay. I actually missed the "Special thanks to dmlc/nnvm team" sentence. I was looking for Zhi and Tianqi's names, because the onnx converter was mainly done by both of them. However I do not entirely agree that I "had no comments". I actually pointed out the initial draft is similar to the nnvm tutorial two days ago. Hagay made a few updates, but unfortunately, I didn't have a chance to have a look at the updated version before the announcement. Otherwise, I should leave a comment to put individual contributors names on it. On Thu, Nov 16, 2017 at 7:03 PM, Lupesko, Hagay wrote: > Chiming in as well. > > First and foremost, I agree wholeheartedly that acknowledgments are due > when deserved. In fact, we took care to add acknowledgments in the code, > and in the blog post for that precise reason! > I also personally talked with Mu, to make sure these are in order and > appropriate, and he had no comments. > Have we missed acknowledgments? Maybe (more on that below). But why assum= e > this was done on intention? > > Addressing specific points (I won=E2=80=99t repeat Henri=E2=80=99s points= ): > - I=E2=80=99m happy to take another look and see whether more files need = to have > the =E2=80=9Cack=E2=80=9D statement. But looking into it again, import_on= nx.py [1] is the > only one that seem to have been missed, and ack was already added. Sheng = =E2=80=93 > I=E2=80=99ll grab some time with you Monday to discuss in details. > - The tutorial itself was actually referenced from PyTorch, not nnvm. Thi= s > is acknowledged by onnx-mxnet code, as well as the nnvm code. > - We intentionally ack-ed an open source community (dmlc/nnvm) and not > individuals. There=E2=80=99s more than Tianqi and Zhi that worked on nnvm= and onnx, > it is a whole community that we thank to. > - =E2=80=9CI was wondering why your below email didn't include such > acknowledgement?=E2=80=9D =E2=80=93 as noted by Hen, the email did includ= e the ack. > > One last thing, quoting Sheng: =E2=80=9CIn general, to have a healthy com= munity, I > believe the right things to do would be=E2=80=A6=E2=80=9D > I would stress out that in order to have a healthy community, we should > always assume others have best intentions =E2=80=93 this will make us a s= tronger > community, one that works together, and one that if fun to be part of. > > Hagay > > [1] https://github.com/onnx/onnx-mxnet/blob/master/onnx_mxnet/ > import_onnx.py > > On 11/16/17, 18:06, "Hen" wrote: > > On Thu, Nov 16, 2017 at 4:32 PM, Sheng Zha wrote= : > > > Hi Hagay, > > > > (cc'd Zhi, Tianqi to make sure real authors are aware) > > > > > > > > At first glance the code in the repo you shared (i.e. > > https://github.com/onnx/onnx-mxnet) looks very > > > > familiar, so I did some searching. It looks like *almost all* the > code > > are adopted from the *nnvm onnx* > > > > frontend, but the main contributor (*Zhi Zhang*, committer of mxnet= , > and > > intern at AWS) from this same > > > > community was not given his due credit in your email. To elaborate > on why > > I think almost all the > > > > onnx-mxnet code is from nnvm onnx frontend: > > > > > > > > The following is the content of this repo: > > > > =E2=94=9C=E2=94=80=E2=94=80 LICENSE.txt > > > > =E2=94=9C=E2=94=80=E2=94=80 README.md > > > > =E2=94=9C=E2=94=80=E2=94=80 onnx_mxnet > > > > =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 __init__.py > > > > =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 common.py > > > > =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 import_helper.py > > > > =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 import_onnx.py > > > > =E2=94=82 =E2=94=94=E2=94=80=E2=94=80 tests > > > > =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 test_models.py > > > > =E2=94=82 =E2=94=94=E2=94=80=E2=94=80 test_super_resolution.p= y > > > > =E2=94=9C=E2=94=80=E2=94=80 setup.py > > > > =E2=94=9C=E2=94=80=E2=94=80 super_res_input.jpg > > > > =E2=94=94=E2=94=80=E2=94=80 super_res_output.jpg > > > > (Also attached a screenshot of the commit history of onnx_mxnet at > the > > moment, as well as a copy of the git package, in case commit hash > mismatch > > happens) > > > > > > > > - Out of the 6 files under onnx_mxnet package > > - the following two files are marked as being derived from > nnvm: > > - common.py > > common.py#L12> > > - import_helper.py > > import_helper.py#L12> > > - the rest four files that are not marked as being derived fr= om > > nnvm: > > - __init__.py > > 4ebc02e8f1cc523049f0928b6dbc566a93dd2f47/onnx_mxnet/__init__.py#L15>: > > looks like a copy from nnvm/frontend/onnx.py > > 3da53e46db57c438b05fbebe8aa332ee8c5994d1/python/nnvm/frontend/onnx.py#L39= 2 > > > > - import_onnx.py > > 4ebc02e8f1cc523049f0928b6dbc566a93dd2f47/onnx_mxnet/import_onnx.py#L18> > looks > > like a copy from nnvm/frontend/onnx.py > > 3da53e46db57c438b05fbebe8aa332ee8c5994d1/python/nnvm/frontend/onnx.py#L34= 5 > > > > - tests/test_models.py > > 4ebc02e8f1cc523049f0928b6dbc566a93dd2f47/onnx_mxnet/tests/test_models.py> > > - this part > > 4ebc02e8f1cc523049f0928b6dbc566a93dd2f47/onnx_mxnet/tests/ > test_models.py#L35> looks > > like a copy from nnvm frontend/onnx/model_zoo/__ > init__.py > > 3da53e46db57c438b05fbebe8aa332ee8c5994d1/tests/python/ > frontend/onnx/model_zoo/__init__.py#L7> > > - this part > > 4ebc02e8f1cc523049f0928b6dbc566a93dd2f47/onnx_mxnet/tests/ > test_models.py#L63> looks > > like a copy from nnvm frontend/onnx/test_forward.py > > 3da53e46db57c438b05fbebe8aa332ee8c5994d1/tests/python/ > frontend/onnx/test_forward.py#L9> > > - tests/test_super_resolution.py > > 4ebc02e8f1cc523049f0928b6dbc566a93dd2f47/onnx_mxnet/tests/ > test_super_resolution.py#L24> looks > > like a copy from nnvm tutorials/from_onnx.py > > 3da53e46db57c438b05fbebe8aa332ee8c5994d1/tutorials/from_onnx.py#L22> > > > > > > > > > > > > Looks like in the blog post here > > for-apache-mxnet/>, > > there is one line giving credit to nnvm authors: > > > > *"Special thanks to the dmlc/nnvm community, whose ONNX code was > used as a > > reference for this implementation."* > > > > > > > > I was wondering why your below email didn't include such > acknowledgement? > > In general, to have a healthy community, I believe the right things > to do > > would be: > > > > 1. Give the due credit to the original authors in communications. > > > > 2. Keep original authors' names in the file licenses, which is a > required > > for apache 2.0 license > that > > is used in both packages. > > > > 3. For code that you reorganized, keep a reference of the source fr= om > > which it=E2=80=99s adopted, which is good practice when contributin= g > open-source. > > > > On #2 - the Apache license does not require that author's names be > kept in > files (I presume you're referring to the Author comment in the tutori= al > file as I didn't see any others). > > The Apache license requires that (section 4): > > - You must give any other recipients of the Work or Derivative Works = a > copy > of this License; and > - You must cause any modified files to carry prominent notices statin= g > that > You changed the files; and > - You must retain, in the Source form of any Derivative Works that Yo= u > distribute, all copyright, patent, trademark, and attribution notices > from > the Source form of the Work, excluding those notices that do not > pertain to > any part of the Derivative Works; and > - If the Work includes a "NOTICE" text file as part of its > distribution, > then any Derivative Works that You distribute must include a readable > copy > of the attribution notices contained within such NOTICE file, > > Going through each in turn: > > 1) The repo contains a copy of the Apache 2.0 license, > 2) 2 of the 6 files contain prominent notices; I agree that the other= 4 > should contain a prominent notice if they're derived (I haven't > compared > the files, but I don't doubt your research), > 3) There are no additional copyright, patent, trademark or attributio= n > notices in the files copied (this is why Apache requires a source > header > for its projects; DMLC does not appear to have source headers on thei= r > files, its equivalent of Apache's legal committee should strongly thi= nk > about that standardizing on that for all its projects imo); > 4) There is no NOTICE file (again, imo the DMLC legal thinkers should > strongly think about having NOTICE files imo). > > So agreed that there's a change to make, but there's no requirement t= o > keep > author's names in files. Note that there is a practice (and it's a > recommended or even mandatory legal practice, I'm not sure which) to > keep a > Copyright Owner's name in a file, but author and copyright owner are > different concepts. > > Hen > > > > --001a113be202bfb893055e25a0d8--