Release Retrospective to correct Apache MXNet source licenses in post MXNet 1.0 release.
Problem Description
Links to email threads and github issues that record the existing issues during various voting periods -
- https://github.com/apache/incubator-mxnet/issues/8913
- Email from Henri Yandell
- Email from Justin McClean
- Results of Apache RAT are in this text file - YetToFix.txt
Apache Licensing Policies
- LICENSE file requirements
- LICENSE requirements for distribution artifacts with multiple licenses
- NOTICE file requirements (Check Copyright year) - see also https://www.apache.org/legal/src-headers.html
- Apache Legal
- Acceptable and Unacceptable Dependency Licenses
Open Pull Requests to fix these Issues (Review help requested!)
- PR to fix License headers in specific files
- PR to fix the top level LICENSE file
- PR to update the license_header.py file and add apache licenses where missing
Open Issues/Questions/Doubts/Concerns (Help Requested!)
- What all can be excluded from RAT checks? Currently the following -
these file types - *.xml ; *.css ; *.txt; *.md ; \..* ; *.ipynb ; *.html ; *.js ; *.json ; *.svg; *.config
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/*
- There are still ~30 files with unknown licenses as per Apache RAT (`txt` attached)
- This list assumes all 4 PRs merged
- This list assumes above excluded folders and formats are acceptable
List of Issues based on Feedback
No | Category | Problem | Source Files | Suggested by | Leads | Comments |
---|---|---|---|---|---|---|
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. |
|
|
|
| ||
3. |
|
|
| Henri Yandell | Meghna Baijal | PR Merged |
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 |
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 | Meghna Baijal | Meghna Baijal | makefiles, | |
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 |
|
|
| Meghna Baijal | Possibly RAT got confused by the matching string. Does not need a fix. |
8. | Specific Files |
|
|
| Meghna Baijal | Submodule, not to be fixed as part of MXNet release |
9. | Specific Files | Justin McClean | Meghna Baijal | Removed details from LICENSE. Correctly added MIT license header and in LICENSE file in directory | ||
10. | Specific Files | Justin McClean | Meghna Baijal | Removed details from LICENSE. Correctly added MIT license header and in LICENSE file in directory | ||
11. | Specific Files | Justin McClean | Meghna Baijal | Removed details from LICENSE. Correctly added MIT license header and in LICENSE file in directory | ||
12. | Specific Files | * Missing License Header - is it Apache License? | perl-package/AI-NNVMCAPI/Makefile.PL | Justin McClean | ||
13. | Specific Files |
|
| Justin McClean | Add BSD to license. Packages not named in LICENSE anymore | |
14. | Specific Files |
|
| Justin McClean | Add BSD to license. Packages not named in LICENSE anymore | |
15. | Specific Files |
|
| Justin McClean | Meghna Baijal | |
16. | Specific Files | * Add to LICENSE - BSD license | example/ssd/dataset/pycocotools/coco.py | Justin McClean | ||
17. | Specific Files | * Add to LICENSE - 6 files are BSD licensed | example/rcnn/rcnn/pycocotools | Justin McClean | ||
18. | Specific Files | * Add to LICENSE - BSD license | dmlc-core/cmake/Modules/FindCrypto.cmake | Justin McClean | ||
19. | Specific Files | * Add to LICENSE - BSD license | cub/experimental/spmv_compare.cu | Justin McClean | Cub is added to LICENSE but is that a BSD license? | |
20. | Specific Files | * Incorrect License Header - Has ASF header but is it BSD | prepare_mkl.sh | Justin McClean | Does not say BSD, add? | |
21. | Specific Files | * Incorrect License Header - Has ASF header but is it BSD | src/operator/nn/im2col.h | Justin McClean | Created PR, in review | |
22. |
| * Incorrect License Header - Has ASF header but is it BSD |
| Justin McClean | First was fixed for 1.0.0 here - https://github.com/apache/incubator-mxnet/pull/9170 | |
23. | Specific Files | * Incorrect License Header - Has ASF header but is it BSD | src/operator/contrib/ctc_include/contrib/moderngpu/include/mgpuenums.h | Justin McClean | 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 | |
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 | |
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 | |
27. |
|
|
| 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 | ||||