From f25b92ed94bd46492b903a0b2ace29be78b3f944 Mon Sep 17 00:00:00 2001 From: Zhenghui Jin <69359374+barry-jin@users.noreply.github.com> Date: Wed, 29 Sep 2021 12:11:37 -0700 Subject: [PATCH] [CI] Add Simple GitHub-Action Based License Checker (#20617) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove ASF license headers on 3rdparty files based on discussion: > It depends on what you mean by significant, usually changes made to 3rd party files stay under the original license. See [1] on this, note that "Do not add the standard Apache License header to the top of third-party source files.”. If the license was to change, and the headers replaced then that needs to be noted in NOTICE. Please make sure that the license is noted in LICENSE. https://lists.apache.org/thread.html/r4010c53f976819c94f3450469db8b936f7c15cb046a61f0d488674d3%40%3Cgeneral.incubator.apache.org%3E --- .github/workflows/license_check.yml | 25 +++++++ .licenserc.yaml | 74 +++++++++++++++++++ LICENSE | 37 ++++++---- rat-excludes | 4 + src/operator/contrib/krprod.cc | 2 +- src/operator/numpy/np_einsum_op-inl.h | 19 ----- src/operator/numpy/np_einsum_op.cc | 19 ----- src/operator/numpy/np_einsum_path_op-inl.h | 19 ----- .../subgraph/tensorrt/nnvm_to_onnx-inl.h | 5 +- .../subgraph/tensorrt/onnx_to_tensorrt.h | 5 +- src/operator/subgraph/tensorrt/tensorrt-inl.h | 5 +- tests/python/gpu/test_numpy_op.py | 1 + 12 files changed, 137 insertions(+), 78 deletions(-) create mode 100644 .github/workflows/license_check.yml create mode 100644 .licenserc.yaml diff --git a/.github/workflows/license_check.yml b/.github/workflows/license_check.yml new file mode 100644 index 000000000000..ecc12811bb7e --- /dev/null +++ b/.github/workflows/license_check.yml @@ -0,0 +1,25 @@ +name: license check + +on: [push, pull_request] + +defaults: + run: + shell: bash + +jobs: + licensecheck: + runs-on: ubuntu-latest + strategy: + fail-fast: false + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Update Submodules + run: | + git submodule update --init --recursive + + - name: Check License Header + uses: apache/skywalking-eyes@main + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.licenserc.yaml b/.licenserc.yaml new file mode 100644 index 000000000000..e4a74305279a --- /dev/null +++ b/.licenserc.yaml @@ -0,0 +1,74 @@ +header: + license: + spdx-id: Apache-2.0 + copyright-owner: Apache Software Foundation + + paths-ignore: + - 'dist' + - 'licenses' + - '**/*.md' + - '**/*.ipynb' + - 'LICENSE' + - 'NOTICE' + - '3rdparty' + - '.gitignore' + - '.codecov.yml' + - '.gitattributes' + - '.github' + - '.gitmodules' + - '.licenserc.yaml' + - '.asf.yaml' + - 'CODEOWNERS' + - 'DISCLAIMER' + - 'KEYS' + - 'python/mxnet/_cy3/README' + - 'tools/dependencies/LICENSE.binary.dependencies' + # files not distributed in source archive (listed in tools/source-exclude-artifacts.txt) + - 'docs' + # files licensed under apache-2.0 license but do not include full license headers recognized by skywalking-eyes + - 'python/mxnet/cython/ndarray.pyx' + - 'python/mxnet/cython/symbol.pyx' + - 'src/operator/deformable_convolution-inl.h' + - 'src/operator/deformable_convolution.cc' + - 'src/operator/deformable_convolution.cu' + - 'src/operator/contrib/deformable_psroi_pooling-inl.h' + - 'src/operator/contrib/deformable_psroi_pooling.cc' + - 'src/operator/contrib/deformable_psroi_pooling.cu' + - 'src/operator/contrib/multi_proposal-inl.h' + - 'src/operator/contrib/multi_proposal.cc' + - 'src/operator/contrib/multi_proposal.cu' + - 'src/operator/contrib/psroi_pooling.cc' + - 'src/operator/contrib/psroi_pooling.cu' + - 'src/operator/nn/mkldnn/mkldnn_base-inl.h' + # files licensed under boost license + - 'cmake/Modules/FindJeMalloc.cmake' + # files licensed under bsd 3-clause + - 'cmake/upstream/FindBLAS.cmake' + - 'cmake/upstream/FindCUDAToolkit.cmake' + - 'cmake/upstream/select_compute_arch.cmake' + - 'src/operator/contrib/erfinv-inl.h' + - 'src/operator/numpy/np_einsum_op-inl.h' + - 'src/operator/numpy/np_einsum_op.cc' + - 'src/operator/numpy/np_einsum_path_op-inl.h' + # files licensed under caffe/mit license + - 'src/operator/modulated_deformable_convolution-inl.h' + - 'src/operator/modulated_deformable_convolution.cc' + - 'src/operator/modulated_deformable_convolution.cu' + - 'src/operator/contrib/nn/deformable_im2col.cuh' + - 'src/operator/contrib/nn/deformable_im2col.h' + - 'src/operator/contrib/nn/modulated_deformable_im2col.cuh' + - 'src/operator/contrib/nn/modulated_deformable_im2col.h' + - 'src/operator/nn/im2col.cuh' + - 'src/operator/nn/im2col.h' + - 'src/operator/nn/pool.cuh' + - 'src/operator/nn/pool.h' + # symlinks + - 'include/dlpack' # symlink to 3rdparty/dlpack/include/dlpack + - 'include/dmlc' # symlink to 3rdparty/dmlc-core/include/dmlc + - 'include/mshadow' # symlink to 3rdparty/mshadow/mshadow + - 'include/onednn' # symlinks to 3rdparty/onednn + # test/build data + - 'tests/python/mkl/data/test_mkldnn_test_mkldnn_model_model1.json' + + + comment: on-failure diff --git a/LICENSE b/LICENSE index d70e5ed6f419..795130c0e597 100644 --- a/LICENSE +++ b/LICENSE @@ -220,21 +220,39 @@ 3rdparty/ctc_include 3rdparty/dlpack + include/dlpack (header symlinks to 3rdparty/dlpack/include/dlpack) 3rdparty/dmlc-core + include/dmlc (header symlinks to 3rdparty/dmlc-core/include/dmlc) 3rdparty/mshadow + include/mshadow (header symlinks to 3rdparty/mshadow/mshadow) 3rdparty/tvm 3rdparty/tvm/3rdparty/dmlc-core 3rdparty/tvm/3rdparty/dlpack + include/nnvm (header symlinks to 3rdparty/tvm/nnvm/include/nnvm) 3rdparty/ps-lite 3rdparty/onednn + include/onednn (header symlinks to 3rdparty/onednn) 3rdparty/googletest/googlemock/scripts/generator 3rdparty/onnx-tensorrt/third_party/onnx/third_party/benchmark + 3rdparty/onnx-tensorrt/third_party/onnx/tools/protoc-gen-mypy.py 3rdparty/onednn/tests/benchdnn (Copy of the License available at top of current file) src/operator/special_functions-inl.h Cephes Library Functions (Copy of the License available at top of current file) 3rdparty/onednn/doc/assets/mathjax (Copy of the License available at top of current file) docs/python_docs/themes/mx-theme/mxtheme/static/material-design-icons-3.0.1 (Copy of the License available at top of current file) docs/python_docs/themes/mx-theme/mxtheme/static/font/Roboto (Copy of the License available at top of current file) 3rdparty/tvm/3rdparty/bfloat16/bfloat16.cc (Copy of the License available at top of current file) + src/operator/deformable_convolution-inl.h + src/operator/deformable_convolution.cc + src/operator/deformable_convolution.cu + src/operator/contrib/deformable_psroi_pooling-inl.h + src/operator/contrib/deformable_psroi_pooling.cc + src/operator/contrib/deformable_psroi_pooling.cu + src/operator/contrib/multi_proposal-inl.h + src/operator/contrib/multi_proposal.cc + src/operator/contrib/multi_proposal.cu + src/operator/contrib/psroi_pooling.cc + src/operator/contrib/psroi_pooling.cu + src/operator/nn/mkldnn/mkldnn_base-inl.h ======================================================================================= MIT license @@ -270,8 +288,12 @@ 3rdparty/googletest/googlemock 3rdparty/googletest/googletest cmake/upstream/FindCUDAToolkit.cmake + cmake/upstream/FindBLAS.cmake cmake/upstream/select_compute_arch.cmake src/operator/contrib/erfinv-inl.h + src/operator/numpy/np_einsum_op-inl.h + src/operator/numpy/np_einsum_path_op-inl.h + src/operator/numpy/np_einsum_op.cc ======================================================================================= 2-clause BSD license @@ -314,9 +336,6 @@ python/mxnet/onnx/mx2onnx/_export_onnx.py python/mxnet/onnx/mx2onnx/_op_translations/_op_translations_opset12.py python/mxnet/onnx/mx2onnx/_op_translations/_op_translations_opset13.py - src/operator/numpy/np_einsum_op-inl.h - src/operator/numpy/np_einsum_path_op-inl.h - src/operator/numpy/np_einsum_op.cc ======================================================================================= Apache-2.0 license + MIT License @@ -324,18 +343,7 @@ src/serialization/cnpy.h (Copy of the AL2 License available at the top of this file, MIT License available at licenses/MIT) src/serialization/cnpy.cc (Copy of the AL2 License available at the top of this file, MIT License available at licenses/MIT) - 3rdparty/onnx-tensorrt/third_party/onnx/tools/protoc-gen-mypy.py (Copy of the referenced AL2 License available at top of current file) src/operator/nn/layer_norm.cc (function LayerNormCPUKernel is adapated from MIT-licensed code) - (Source repository for below deformable conv operators - https://github.com/msracver/Deformable-ConvNets/tree/master/DCNv2_op) - src/operator/deformable_convolution-inl.h - src/operator/deformable_convolution.cc - src/operator/deformable_convolution.cu - - ======================================================================================= - Apache-2.0 license + Boost Software License, Version 1.0 - ======================================================================================= - - cmake/Modules/FindJeMalloc.cmake ======================================================================================= Boost Software License, Version 1.0 @@ -343,6 +351,7 @@ 3rdparty/intgemm/test/3rd_party/catch.hpp (Copy of the License available at licenses/BOOST1_0) 3rdparty/onednn/src/common/primitive_hashing.hpp + cmake/Modules/FindJeMalloc.cmake ======================================================================================= LLVM Release License diff --git a/rat-excludes b/rat-excludes index 12f7ca6ac8fc..83e2e0c83481 100644 --- a/rat-excludes +++ b/rat-excludes @@ -53,6 +53,7 @@ clipboard.js # Licenses licenses/* LICENSE.binary.dependencies +.licenserc.yaml # Generated files during build .buildinfo @@ -123,6 +124,9 @@ FindCUDAToolkit.cmake FindBLAS.cmake FindJeMalloc.cmake select_compute_arch.cmake +np_einsum_op-inl.h +np_einsum_op.cc +np_einsum_path_op-inl.h # Incorporated third-party source files from Microsoft that carry Apache 2.0 license, captured in licenses/ deformable_psroi_pooling.cu diff --git a/src/operator/contrib/krprod.cc b/src/operator/contrib/krprod.cc index 7a4e8bfda371..f4fadaa238a8 100644 --- a/src/operator/contrib/krprod.cc +++ b/src/operator/contrib/krprod.cc @@ -5,7 +5,7 @@ * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance -n * with the License. You may obtain a copy of the License at + * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * diff --git a/src/operator/numpy/np_einsum_op-inl.h b/src/operator/numpy/np_einsum_op-inl.h index 4aa8200cf8a7..5525b9209fc1 100644 --- a/src/operator/numpy/np_einsum_op-inl.h +++ b/src/operator/numpy/np_einsum_op-inl.h @@ -1,22 +1,3 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - /* * Copyright (c) 2005-2019, NumPy Developers. * diff --git a/src/operator/numpy/np_einsum_op.cc b/src/operator/numpy/np_einsum_op.cc index 486bb81599f9..afdb49b0f564 100644 --- a/src/operator/numpy/np_einsum_op.cc +++ b/src/operator/numpy/np_einsum_op.cc @@ -1,22 +1,3 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - /* * Copyright (c) 2005-2019, NumPy Developers. * All rights reserved. diff --git a/src/operator/numpy/np_einsum_path_op-inl.h b/src/operator/numpy/np_einsum_path_op-inl.h index bfdf081c5352..7471385bda59 100644 --- a/src/operator/numpy/np_einsum_path_op-inl.h +++ b/src/operator/numpy/np_einsum_path_op-inl.h @@ -1,22 +1,3 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - /* * Copyright (c) 2005-2019, NumPy Developers. * All rights reserved. diff --git a/src/operator/subgraph/tensorrt/nnvm_to_onnx-inl.h b/src/operator/subgraph/tensorrt/nnvm_to_onnx-inl.h index 727718a38885..80ae22583fa8 100644 --- a/src/operator/subgraph/tensorrt/nnvm_to_onnx-inl.h +++ b/src/operator/subgraph/tensorrt/nnvm_to_onnx-inl.h @@ -1,5 +1,3 @@ -#ifndef MXNET_OPERATOR_SUBGRAPH_TENSORRT_NNVM_TO_ONNX_INL_H_ -#define MXNET_OPERATOR_SUBGRAPH_TENSORRT_NNVM_TO_ONNX_INL_H_ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -25,6 +23,9 @@ * \author Marek Kolodziej, Clement Fuji Tsang */ +#ifndef MXNET_OPERATOR_SUBGRAPH_TENSORRT_NNVM_TO_ONNX_INL_H_ +#define MXNET_OPERATOR_SUBGRAPH_TENSORRT_NNVM_TO_ONNX_INL_H_ + #if MXNET_USE_TENSORRT #include diff --git a/src/operator/subgraph/tensorrt/onnx_to_tensorrt.h b/src/operator/subgraph/tensorrt/onnx_to_tensorrt.h index 3a9f316b470e..c2b1dd215937 100644 --- a/src/operator/subgraph/tensorrt/onnx_to_tensorrt.h +++ b/src/operator/subgraph/tensorrt/onnx_to_tensorrt.h @@ -1,5 +1,3 @@ -#ifndef MXNET_OPERATOR_SUBGRAPH_TENSORRT_ONNX_TO_TENSORRT_H_ -#define MXNET_OPERATOR_SUBGRAPH_TENSORRT_ONNX_TO_TENSORRT_H_ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -25,6 +23,9 @@ * \author Marek Kolodziej, Clement Fuji Tsang */ +#ifndef MXNET_OPERATOR_SUBGRAPH_TENSORRT_ONNX_TO_TENSORRT_H_ +#define MXNET_OPERATOR_SUBGRAPH_TENSORRT_ONNX_TO_TENSORRT_H_ + #if MXNET_USE_TENSORRT #include diff --git a/src/operator/subgraph/tensorrt/tensorrt-inl.h b/src/operator/subgraph/tensorrt/tensorrt-inl.h index 4f0896e7cf26..564401b08391 100644 --- a/src/operator/subgraph/tensorrt/tensorrt-inl.h +++ b/src/operator/subgraph/tensorrt/tensorrt-inl.h @@ -1,5 +1,3 @@ -#ifndef MXNET_OPERATOR_SUBGRAPH_TENSORRT_TENSORRT_INL_H_ -#define MXNET_OPERATOR_SUBGRAPH_TENSORRT_TENSORRT_INL_H_ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -25,6 +23,9 @@ * \author Marek Kolodziej, Clement Fuji Tsang */ +#ifndef MXNET_OPERATOR_SUBGRAPH_TENSORRT_TENSORRT_INL_H_ +#define MXNET_OPERATOR_SUBGRAPH_TENSORRT_TENSORRT_INL_H_ + #if MXNET_USE_TENSORRT #include diff --git a/tests/python/gpu/test_numpy_op.py b/tests/python/gpu/test_numpy_op.py index 5b31045e1abe..a72947dea1f6 100644 --- a/tests/python/gpu/test_numpy_op.py +++ b/tests/python/gpu/test_numpy_op.py @@ -13,6 +13,7 @@ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations +# under the License. import sys import numpy as onp