Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Release Retrospective to correct Apache MXNet source licenses in post MXNet 1.0 release.

A. Problem Description 

Links to email threads and github issues that record the existing issues during various voting periods - 

B. Apache Licensing Policies

C. Open Pull Requests to fix these Issues

...

Open Issues/Questions/Doubts/Concerns (Help Requested!)

...

D. Open Issues/Questions/Doubts/Concerns (Help Requested!)

Question 1: What all can be excluded from RAT checks? Currently the following are being excluded from the RAT checks. Is this ok ?


...

these file types - *.xml ; *.css ; *.txt; *.md ; \..* ; *.ipynb ; *.html ; *.js ; *.json ; *.svg; *.config; *.names; *.csv

...

Submodules - 3rdparty/* ; dmlc-core/* ; mshadow/* ; dmlc-core/* ; dlpack/* ; nnvm/* ; ps-lite/*

...

R-package since it is not released - R-package/* 

...

src/operator/mkl/* 

...

Ignore all Dockerfiles - docker/*; Dockerfile* ; docker_multiarch/*

...

perl-package/* 

...

contrib/*

...

__init__.py files  

...

docs/*  

...


Name of File/Folder Excluded from RAT CheckReason for IgnoringConcerns
1

These File Types:  *.css ; *.txt; \..* ; *.ipynb ; *.html ; *.json ; *.svg; *.names; *.csv



2

Submodules - 3rdparty/*


None
3
R-package
Not a part of MXNet ReleaseNone
4

Ignore all Dockerfiles - docker/*; Dockerfile* ; docker_multiarch/*

Dockerfiles cant have license
5 __init__.py files These files contain no text None
6theme.conf A header might affect website. Only one script here without a license -
docs/_static/mxnet-theme/theme.conf
7 This file - src/operator/nn/pool.hIt was decided that this file should not have an Apache License and it was removed here - PR 9170None. But can be verified again.
8This file - src/operator/special_functions-inl.h
It was decided that this file should not have an Apache License and it was removed here - PR 9170

...

None. But can be verified again.
9example/rcnn/rcnn/cython

...

/*This is licensed under MIT but RAT doesnt pick that. ASF should not be addedShould MIT license text be added explicitly?
10This Dataset - example/gluon/tree_lstm/dataset.cPickle

...

This is a datasetNone. But can be verified again.
11CODEOWNERStext file


Question 2: There are still 2 files with unknown licenses as per Apache RAT - SEE TABLE BELOW for this LIst

...

    1. This list assumes above excluded folders and formats are acceptable


    All the points highlighted in Dark Red in the table below -
    1. . 

 

List of Issues based on Feedback


    1. S.NoFile NameComments
      1. CODEOWNERSMoved to excludes
      2.appveyor.ymlAdded ASF header - Open PR
      3.readthedocs.ymlDoes this need an Apache License ?
      4.snap.pythonCan I add Apache License here?
      5.snapcraft.yamlCan I add Apache License here?
      6.python/mxnet/cython/base.pyiFile format --?
      7.tests/ci_build/pylintrcAdded ASF header - Open PR


Question 3: Issue 23 and Issue 37 in table below

This Folder needs to be reviewed - src/operator/contrib/ctc_include

 

E. More Details about the Issues & their Status

NoCategoryProblemSource FilesSuggested byLeadsComments
1.
Source 
tree
* Move the various git submodules into third-party/ or similar so it's
simpler to see what is Apache original source when we review a release.
submodules
Henri Yandell
Haibin Lin

2.

Copyright

* Deal with the Copyright statements in perl-package (copyright holder has approved doing this)

perl-package

Henri Yandell

Henri YandellFixed by Henri in this PR -
https://
NoCategoryProblemSource FilesSuggested byLeadsComments
1.
Source 
tree
* Move the various git submodules into third-party/ or similar so it's
simpler to see what is Apache original source when we review a release.
submodules
Henri Yandell
Haibin Lin
 
2.

Copyright

* Deal with the Copyright statements in perl-package (copyright holder has approved doing this)

perl-package

Henri Yandell

Henri YandellFixed by Henri in this PR -
https://github.com/apache/incubator-mxnet/pull/9191
3.

Formatting

* Lots of whitespace on end of NOTICE

NOTICE

Henri Yandell

Meghna Baijal
PR Merged
https://github.com/apache/incubator-mxnet/pull/9459
4.
Comments
* Comment added to CODEOWNERS to explain the file so we don't cause
community problems
CODEOWNERS
Henri Yandell
Steffen Rochel 
5.

LICENSE

* There was a suggestion to simplify the LICENSE to not explicitly list which packages are under each license. Something to consider.

LICENSE

Henri Yandell

Meghna Baijal

If this is done, it would resolve points 8-11 and 13-19 of this wiki
PR - https://
github.com/apache/incubator-mxnet/pull/
9484
9191
 
3.
LICENSE

Formatting

*

Update the Paths to license files once submodules are moved
LICENSE
Meghna Baijal
Haibin Lin  
Automated Check
* Update the license_header.py script instead of manual exclusions
tools/license_header.py
Meghna BaijalMeghna Baijalmakefiles,         
ISSUES IN SPECIFIC FILES 
    
6.
Specific 
Files

* Resolve License Header - if you follow the URL mentioned in the file it is unclear

if the code came form that site or was written for the project by the author

of that site.

example/image-classification/predict-cpp/image-classification-predict.cc

Justin McClean
  
7.
Specific 
Files
* Resolve License Header - This file has two license headers

Lots of whitespace on end of NOTICE

NOTICE

Henri Yandell

Meghna Baijal
PR Merged
https://github.com/apache/incubator-mxnet/pull/9459
4.
Comments
* Comment added to CODEOWNERS to explain the file so we don't cause
community problems
CODEOWNERS
Henri Yandell
Steffen Rochel
5.

LICENSE

* There was a suggestion to simplify the LICENSE to not explicitly list which packages are under each license. Something to consider.

LICENSE

Henri Yandell

Meghna Baijal

If this is done, it would resolve points 8-11 and 13-19 of this wiki
PR - https://github.com/apache/incubator-mxnet/pull/9484

LICENSE
* Update the Paths to license files once submodules are moved
LICENSE
Meghna Baijal
Haibin Lin

Automated Check
* Update the license_header.py script instead of manual exclusions
tools/license_header.py
Justin McClean
Meghna BaijalMeghna
Baijal
Possibly RAT got confused 
by the matching string. Does not need a fix.
makefiles,









ISSUES IN SPECIFIC FILES 




6
8
.
Specific 
Files

*

Check LICENSE - Listed as Apache License in the LICENSE but is it MIT license?

Resolve License Header - if you follow the URL mentioned in the file it is unclear

if the code came form that site or was written for the project by the author

of that site.

example/image-classification/predict-cpp/image-classification-predict.cc

nnvm/tvm/HalideIR/LICENSE


Justin McClean
Meghna BaijalSubmodule, not to be fixed as part of MXNet release
9.
Specific 
Files
* Check LICENSE - Listed as Apache License in the LICENSE but is it MIT license?


7.
Specific 
Files

* Resolve License Header - This file has two license headers

tools/license_header.py

example/rcnn/rcnn/cython/gpu_nms.pyx

Justin McClean
Meghna
BaijalRemoved details from LICENSE. Correctly added MIT license header and in LICENSE file in directory
 Baijal
Possibly RAT got confused 
by the matching string. Does not need a fix.
8
10
.
Specific 
Files

* Check LICENSE - Listed as Apache License in the LICENSE but is it MIT license?

example

nnvm/

rcnn

tvm/

rcnn/cython/gpu_nms.pyx

HalideIR/LICENSE

Justin McClean
Meghna Baijal
Removed details from LICENSE. Correctly added
Added to MIT license
header and
in LICENSE
file in directory
11
9.
Specific 
Files
* Check LICENSE - Listed as Apache License in the LICENSE but is it MIT license?example/rcnn/rcnn/cython/
cpu
gpu_nms.pyx
Justin McClean
Meghna Baijal
Removed details from LICENSE. Correctly added MIT license header and in LICENSE file in directory

Files licenses under different licenses, added to all in the top level LICENSE -

/incubator-mxnet/example/rcnn/LICENSE

10
12
.
Specific 
Files
*
Missing License Header - is it Apache License?

perl-package/AI-NNVMCAPI/Makefile.PL

Justin McClean

  
Check LICENSE - Listed as Apache License in the LICENSE but is it MIT license?example/rcnn/rcnn/cython/gpu_nms.pyx
Justin McClean
Meghna Baijal

Files licenses under different licenses, added to all in the top level LICENSE -

/incubator-mxnet/example/rcnn/LICENSE

11
13.
Specific 
Files

* Add to LICENSE - BSD license

src/operator/contrib/ctc_include/contrib/moderngpu/include/mgpudevice.cuh

Justin McClean
 Add BSD to license. Packages not named in LICENSE anymore14
.
Specific 
Files
*
Add to LICENSE - A dozen files here are BSD
Check LICENSE - Listed as Apache License in the LICENSE but is it MIT license?example/rcnn/rcnn/cython/cpu_nms.pyx
src/operator/contrib/ctc_include/contrib/moderngpu/include/device/
Justin McClean
 Add BSD to license. Packages not named in LICENSE anymore
Meghna Baijal

Files licenses under different licenses, added to all in the top level LICENSE -

/incubator-mxnet/example/rcnn/LICENSE

12
15
.
Specific 
Files

*

Add to LICENSE - BSD license

nnvm/tvm/dmlc-core/cmake/Modules/FindCrypto.cmake

Justin McClean
Meghna Baijal 

Missing License Header - is it Apache License?

perl-package/AI-NNVMCAPI/Makefile.PL

Justin McClean



13
16
.
Specific 
Files

*

Add

to

LICENSE

-

BSD

license

example/ssd/dataset/pycocotools/coco.py

src/operator/contrib/ctc_include/contrib/moderngpu/include/mgpudevice.cuh

Justin McClean
  

Wrongly Named in the LICENSE file as Warp-CTC, corrected
14
17
.
Specific 
Files

*

Add

to

LICENSE

-

6 files are BSD licensed

A dozen files here are BSD

src/operator/contrib/ctc_include/contrib/moderngpu/include/device/

example/rcnn/rcnn/pycocotools

Justin McClean
  

Wrongly Named in the LICENSE file as Warp-CTC, corrected
15
18
.
Specific 
Files

* Add to LICENSE - BSD license

nnvm/tvm/dmlc-core/cmake/Modules/FindCrypto.cmake

Justin McClean
 

Submodule, no edits

Packages not named in LICENSE anymore

Meghna BaijalRepeat again for the same file??
16.
19.
Specific 
Files

* Add to LICENSE - BSD license

cub/experimental/spmv_compare.cu

example/ssd/dataset/pycocotools/coco.py

Justin McClean
 
Submodule, no edits

Packages not named in LICENSE anymore


Already there in LICENSE file as MS coco
17
20
.
Specific 
Files

*

Incorrect License Header - Has ASF header but is it BSD

Add to LICENSE - 6 files are BSD licensed

example/rcnn/rcnn/pycocotools

prepare_mkl.sh

Justin McClean
 Does not say BSD, add?

Already there in LICENSE
18
21
.
Specific 
Files

*

Incorrect License Header - Has ASF header but is it BSD

Add to LICENSE - BSD license

dmlc-core/cmake/Modules/FindCrypto.cmake

src/operator/nn/im2col.h
src/operator/nn/im2col.cuh

Justin McClean
 
Created PR, in review 
https://github.com/apache/incubator-mxnet/pull/9462

Added to LICENSE as BSD

19
22
.
Specific 
Files

*

Incorrect License Header - Has ASF header but is it BSD

Add to LICENSE - BSD license

cub/experimental/spmv_compare.cu

src/operator/contrib/nn/deformable_im2col.h
src/operator/contrib/nn/deformable_im2col.cuhFirst

Justin McClean
 

CUB 
was
 23.
Specific Files
exists 
fixed for 1.0.0 here - https://github.com/apache/incubator-mxnet/pull/9170
Second in PR review - https://github.com/apache/incubator-mxnet/pull/9462
as BSD
20.

Specific

Files

* Incorrect License Header - Has ASF header but is it BSD

src/operator/contrib/ctc_include/contrib/moderngpu/include/mgpuenums.h

prepare_mkl.sh

Justin McClean
 License seems to be correct. No ASF header.

Does not say BSD, add?
21.
24. 

Specific

Files

* Incorrect License Header - Has ASF header but is it BSD

example

src/

ssd

operator/

dataset

nn/

pycocotools/coco

im2col.

py

h
src/operator/nn/im2col.cuh

Justin
Justin
 McClean
 

Removed ASF header in PR
ADD BSD License text??


Created PR, in review 
https://github.com/apache/incubator-mxnet/pull/9462
22.
25. 

Specific

Files

* Incorrect License Header - Has ASF header but is it

MIT

BSD

example

src/

rcnn/rcnn/cython/setup.py

operator/contrib/nn/deformable_im2col.h
src/operator/contrib/nn/deformable_im2col.cuh

Justin McClean
 

Removed ASF Header in PR
Add MIT license Text?


First was fixed for 1.0.0 here - https://github.com/apache/incubator-mxnet/pull/9170
Second in PR review - https://github.com/apache/incubator-mxnet/pull/9462
 23.
Specific
26.

Specific

Files

* Incorrect License Header - Has ASF header but is it MIT

example/rcnn/rcnn/cython/nms_kernel.cu

Justin McClean
 
Removed ASF Header in PR
Add MIT license Text?
27.

Specific

Files* Incorrect License Header - Has ASF header but is it
MIT
BSD
src/operator/contrib/ctc_include/contrib/moderngpu/include/mgpuenums.h
example/rcnn/rcnn/cython/setup.py
Justin McClean
 
 Repeat
 Specific Files

Resolve License: should this file get an apache license? (RAT thinks so but why does the script skip it?)

src/operator/special_functions-inl.h

            
APACHE RAT CHECK FAILURES
    
28.
RAT Failure
* Fix Submodules - RAT detected almost 2000 files with unknown licenses in submodules
Submodules (nnvm, dlpack, 3rdparty, ps-lite, mshadow) and R-package
  
Decision needed on how to handle submodule licenses
29.
RAT Failure
* Check Docs - RAT detected almost 200 files with unknown licenses in the Docs directory
/docs
   
30.
RAT Failure
* Fix dockerfiles without license headers
/docker
 
Meghna Baijal
 
31.
RAT Failure
* Fix docker_multiarch - unknown license header
/docker_multiarch
   
32.
RAT Failure
* Fix scala-package - unknown license
/scala-package
   
33.
RAT Failure
* Fix tools
/tools
   
34.
RAT Failure
* Fix tests
/tests
   
35.
RAT Failure
* Fix examples
/examples
   
36.
RAT Failure
* Check file types that can be ignored - .txt; .js, .md, .json, .yml, .*, 
/
 
Meghna Baijal
 
37.
RAT Failure
* Fix ctc_include
src/operator/contrib/ctc_include
     
 
     
 
 
     RAT gets it wrong!
This file already has a license but Apache RAT adds the AL too! 
src/operator/nn/pool.h                 

 


License seems to be correct. No ASF header.
24. 

Specific

Files

* Incorrect License Header - Has ASF header but is it BSD

example/ssd/dataset/pycocotools/coco.py

Justin McClean

Removed ASF header in PR
ADD BSD License text??

25. 

Specific

Files

* Incorrect License Header - Has ASF header but is it MIT

example/rcnn/rcnn/cython/setup.py

Justin McClean

Removed ASF Header in PR
Add MIT license Text?

26.

Specific

Files

* Incorrect License Header - Has ASF header but is it MIT

example/rcnn/rcnn/cython/nms_kernel.cu

Justin McClean

Removed ASF Header in PR
Add MIT license Text?
27.

Specific

Files

* Incorrect License Header - Has ASF header but is it MIT

example/rcnn/rcnn/cython/setup.py

Justin McClean

 Repeat

Specific Files

Resolve License: should this file get an apache license? (RAT thinks so but why does the script skip it?)

src/operator/special_functions-inl.h













APACHE RAT CHECK FAILURES




28.

RAT Failure

* Fix Submodules - RAT detected almost 2000 files with unknown licenses in submodules

Submodules (nnvm, dlpack, 3rdparty, ps-lite, mshadow) and R-package



Decision needed on how to handle submodule licenses
29.
RAT Failure
* Check Docs - RAT detected almost 200 files with unknown licenses in the Docs directory
/docs


Excluded for now
30.

RAT Failure

* Fix dockerfiles without license headers

/docker


Meghna Baijal
Added a top level License.md to this folder
31.

RAT Failure

* Fix docker_multiarch - unknown license header

/docker_multiarch


Meghna BaijalAdded a top level License.md to this folder
37.
RAT Failure
* Fix ctc_include
src/operator/contrib/ctc_include







































F. Static Linked Dependencies in Release

This section lists all dependencies used in the releases of pip and maven. Frank Liu pointed out some of them are using BSD3, GPL and customized License which should be placed in the official releases.

Currently, the licenses were covered when we created the static-linked so file which can be found in this PR.


OpenCV depends on following libraries, and can build them on the fly:

  • OpenBLAS
  • zlib (ver 1.2.6)
  • libjpeg-turbo (ver 1.5.90)
  • libpng (ver 1.6.34)
  • libtiff (ver 42 - 4.0.9)
  • eigen (ver 3.3.4)


ps-lite dependencies (USE_DIST_KVSTORE):

  • zeromq - 4.1.4
  • protobuf 2.5.0
  • lz4
  • cityhash

USE_S3

  • libcurl
  • libssl-dev

...