diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 59d50dd..1d00e8c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -39,6 +39,23 @@ jobs: set -xeuo pipefail bash admin/run_clang_format.sh -d + copyright-check: + name: copyright-check + runs-on: ubuntu-24.04 + timeout-minutes: 30 + + steps: + - name: Check out source tree + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Run copyright header check + shell: bash + run: | + set -xeuo pipefail + bash admin/apply_copyright.sh -d + cmake-format-lint: name: cmake-format-lint runs-on: ubuntu-24.04 diff --git a/admin/apply_copyright.sh b/admin/apply_copyright.sh index 438e6a7..70116b1 100644 --- a/admin/apply_copyright.sh +++ b/admin/apply_copyright.sh @@ -14,141 +14,189 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -ex +set -euo pipefail + REPO_ROOT=$(git rev-parse --show-toplevel) +CHECK_ONLY=false +FIX_YEARS=false +ERRORS=0 -# Define the Python copyright header -PY_COPYRIGHT_HEADER='# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed 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. +usage() { + echo "Usage: apply_copyright.sh [-d] [-f]" +} + +while getopts ":df" opt; do + case "${opt}" in + d) + CHECK_ONLY=true + ;; + f) + FIX_YEARS=true + ;; + \?) + usage + exit 1 + ;; + esac +done + +if [ "${CHECK_ONLY}" = true ] && [ "${FIX_YEARS}" = true ]; then + usage + exit 1 +fi + +report_issue() { + local message="$1" + echo "${message}" + ERRORS=$((ERRORS + 1)) +} + +find_included_files() { + find "${REPO_ROOT}" -maxdepth 1 -type f "$@" -print0 + find \ + "${REPO_ROOT}/src" \ + "${REPO_ROOT}/nvmolkit" \ + "${REPO_ROOT}/tests" \ + "${REPO_ROOT}/benchmarks" \ + -type f "$@" -not -path "*/rdkit_extensions/*" -print0 +} -' +get_file_year() { + local file="$1" + local relative_path="${file#${REPO_ROOT}/}" + local commit_year -# Find all Python files and add the header (excluding rdkit_extensions folder) -find "$REPO_ROOT" -name "*.py" -not -path "*/rdkit_extensions/*" | while read -r file; do - # Check if the file already contains the header - if ! grep -q "SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES" "$file"; then - # Add the header to the file - echo "Adding copyright header to Python file: $file" - echo "$PY_COPYRIGHT_HEADER$(cat "$file")" > "$file" + commit_year=$(git log --diff-filter=A --follow --format=%ad --date=format:%Y -- "${relative_path}" | tail -n 1 || true) + if [ -z "${commit_year}" ]; then + commit_year=$(date +%Y) + fi + + if [ "${commit_year}" -le 2025 ]; then + echo "2025" else - echo "Python file already has copyright header: $file" + echo "2026" fi -done +} + +get_existing_header_year() { + local file="$1" + local year_match + + year_match=$(sed -nE 's/^.*SPDX-FileCopyrightText: Copyright \(c\) ([0-9]{4}).*$/\1/p' "${file}" | head -n 1) + if [ -n "${year_match}" ]; then + echo "${year_match}" + fi +} + +make_header() { + local comment_prefix="$1" + local year="$2" + + cat < "$file" + sed -i -E \ + "0,/SPDX-FileCopyrightText: Copyright \\(c\\) [0-9]{4}/s//SPDX-FileCopyrightText: Copyright (c) ${year}/" \ + "${file}" +} + +write_header() { + local file="$1" + local comment_prefix="$2" + local year="$3" + local preserve_shebang="$4" + local temp_file + local first_line + + temp_file=$(mktemp) + + if [ "${preserve_shebang}" = true ] && IFS= read -r first_line < "${file}" && [[ "${first_line}" == '#!'* ]]; then + printf '%s\n' "${first_line}" > "${temp_file}" + make_header "${comment_prefix}" "${year}" >> "${temp_file}" + tail -n +2 "${file}" >> "${temp_file}" else - echo "C++ file already has copyright header: $file" + make_header "${comment_prefix}" "${year}" > "${temp_file}" + cat "${file}" >> "${temp_file}" fi -done -# Define the shell script copyright header -SH_COPYRIGHT_HEADER='# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed 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. + mv "${temp_file}" "${file}" +} + +process_file() { + local file="$1" + local comment_prefix="$2" + local file_label="$3" + local preserve_shebang="$4" + local expected_year + local existing_year + + expected_year=$(get_file_year "${file}") + existing_year=$(get_existing_header_year "${file}") -' - -# Find all shell script files and add the header -find "$REPO_ROOT" -name "*.sh" | while read -r file; do - # Check if the file already contains the header - if ! grep -q "SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES" "$file"; then - # Check if file starts with shebang and preserve it - if head -n1 "$file" | grep -q "^#!"; then - # File has shebang, add header after it - echo "Adding copyright header to shell script (after shebang): $file" - shebang=$(head -n1 "$file") - rest=$(tail -n +2 "$file") - echo "$shebang -$SH_COPYRIGHT_HEADER$rest" > "$file" + if [ "${existing_year:-}" = "${expected_year}" ]; then + return + fi + + if [ -n "${existing_year:-}" ]; then + if [ "${CHECK_ONLY}" = true ]; then + report_issue "Wrong copyright year in ${file_label} file: ${file} (expected ${expected_year})" + return + fi + + if [ "${FIX_YEARS}" = true ]; then + echo "Fixing copyright year in ${file_label} file: ${file}" + replace_year "${file}" "${expected_year}" else - # No shebang, add header at the beginning - echo "Adding copyright header to shell script: $file" - echo "$SH_COPYRIGHT_HEADER$(cat "$file")" > "$file" + echo "${file_label} file already has copyright header with a different year: ${file}" fi - else - echo "Shell script already has copyright header: $file" + return fi -done - -# Define the CMake copyright header -CMAKE_COPYRIGHT_HEADER='# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed 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. -' - -# Find all CMake files and add the header -find "$REPO_ROOT" -type f \( -name "CMakeLists.txt" -o -name "*.cmake" \) | while read -r file; do - # Check if the file already contains the header - if ! grep -q "SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES" "$file"; then - # Add the header to the file - echo "Adding copyright header to CMake file: $file" - echo "$CMAKE_COPYRIGHT_HEADER$(cat "$file")" > "$file" - # Format the CMake file after adding copyright header - echo "Formatting CMake file: $file" - cmake-format -i "$file" - else - echo "CMake file already has copyright header: $file" - # Still format the file to ensure consistent formatting - echo "Formatting CMake file: $file" - cmake-format -i "$file" + if [ "${CHECK_ONLY}" = true ]; then + report_issue "Missing copyright header in ${file_label} file: ${file}" + return fi -done + + echo "Adding copyright header to ${file_label} file: ${file}" + write_header "${file}" "${comment_prefix}" "${expected_year}" "${preserve_shebang}" +} + +while IFS= read -r -d '' file; do + process_file "${file}" "#" "Python" false +done < <(find_included_files -name "*.py") + +while IFS= read -r -d '' file; do + process_file "${file}" "//" "C++" false +done < <(find_included_files \( -name "*.h" -o -name "*.cpp" -o -name "*.cuh" -o -name "*.cu" \)) + +while IFS= read -r -d '' file; do + process_file "${file}" "#" "shell script" true +done < <(find_included_files -name "*.sh") + +while IFS= read -r -d '' file; do + process_file "${file}" "#" "CMake" false +done < <(find_included_files \( -name "CMakeLists.txt" -o -name "*.cmake" \)) + +if [ "${CHECK_ONLY}" = true ] && [ "${ERRORS}" -ne 0 ]; then + exit 1 +fi diff --git a/admin/distribute/merge_conda_artifacts.sh b/admin/distribute/merge_conda_artifacts.sh index c98699d..1d8d25d 100644 --- a/admin/distribute/merge_conda_artifacts.sh +++ b/admin/distribute/merge_conda_artifacts.sh @@ -1,4 +1,19 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed 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. + # # Merge multiple conda build_artifacts directories into one channel directory # so that verify_conda_version_combinations.sh can use a single local endpoint. diff --git a/admin/distribute/unzip_all_conda_artifacts.sh b/admin/distribute/unzip_all_conda_artifacts.sh index 9125246..d58d93e 100644 --- a/admin/distribute/unzip_all_conda_artifacts.sh +++ b/admin/distribute/unzip_all_conda_artifacts.sh @@ -1,4 +1,19 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed 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. + # # Unzip all .zip files in a given folder (e.g. Azure conda artifact zips). # Handles nested zips: unzips top-level .zip files, then recursively unzips any diff --git a/admin/distribute/verify_conda_distributable.sh b/admin/distribute/verify_conda_distributable.sh old mode 100755 new mode 100644 index 3882051..bacd218 --- a/admin/distribute/verify_conda_distributable.sh +++ b/admin/distribute/verify_conda_distributable.sh @@ -1,5 +1,18 @@ #!/usr/bin/env bash - +# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed 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. set -exuo pipefail if [[ $# -ne 4 ]]; then diff --git a/admin/distribute/verify_conda_version_combinations.sh b/admin/distribute/verify_conda_version_combinations.sh old mode 100755 new mode 100644 index 2362a79..db81a96 --- a/admin/distribute/verify_conda_version_combinations.sh +++ b/admin/distribute/verify_conda_version_combinations.sh @@ -1,5 +1,18 @@ #!/usr/bin/env bash - +# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed 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. set -uo pipefail if [[ $# -ne 3 ]]; then diff --git a/benchmarks/benchmark_timing.py b/benchmarks/benchmark_timing.py index 13e8ecc..0a9ce62 100644 --- a/benchmarks/benchmark_timing.py +++ b/benchmarks/benchmark_timing.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/benchmarks/conformer_rmsd_bench.py b/benchmarks/conformer_rmsd_bench.py index 7f219f1..3353d07 100644 --- a/benchmarks/conformer_rmsd_bench.py +++ b/benchmarks/conformer_rmsd_bench.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/benchmarks/updateInverseHessianBench.cu b/benchmarks/updateInverseHessianBench.cu index 93baa79..faed037 100644 --- a/benchmarks/updateInverseHessianBench.cu +++ b/benchmarks/updateInverseHessianBench.cu @@ -1,3 +1,18 @@ +// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed 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. + #include #include diff --git a/nvmolkit/_mmff_bridge.py b/nvmolkit/_mmff_bridge.py index 1a5bfd2..c869f80 100644 --- a/nvmolkit/_mmff_bridge.py +++ b/nvmolkit/_mmff_bridge.py @@ -1,3 +1,18 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed 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. + """Bridge RDKit MMFF property objects into nvMolKit's internal MMFF config. This shim exists because RDKit ``Mol`` objects pass cleanly across the Python/C++ diff --git a/nvmolkit/batchedForcefield.cpp b/nvmolkit/batchedForcefield.cpp index d9e040e..18c319a 100644 --- a/nvmolkit/batchedForcefield.cpp +++ b/nvmolkit/batchedForcefield.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/nvmolkit/batchedForcefield.py b/nvmolkit/batchedForcefield.py index 004f554..84dacb3 100644 --- a/nvmolkit/batchedForcefield.py +++ b/nvmolkit/batchedForcefield.py @@ -1,3 +1,18 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed 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. + """Evaluate forcefield energies and gradients for batches of RDKit molecules. This module provides batched forcefield wrappers. The examples below use diff --git a/nvmolkit/conformerRmsd.cpp b/nvmolkit/conformerRmsd.cpp index 74a9cb1..4df8a67 100644 --- a/nvmolkit/conformerRmsd.cpp +++ b/nvmolkit/conformerRmsd.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/nvmolkit/conformerRmsd.py b/nvmolkit/conformerRmsd.py index 6559cae..8ad49f5 100644 --- a/nvmolkit/conformerRmsd.py +++ b/nvmolkit/conformerRmsd.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/nvmolkit/substructure.cpp b/nvmolkit/substructure.cpp index c5870a5..f4e78f3 100644 --- a/nvmolkit/substructure.cpp +++ b/nvmolkit/substructure.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/nvmolkit/substructure.py b/nvmolkit/substructure.py index a86daf7..35a0a0f 100644 --- a/nvmolkit/substructure.py +++ b/nvmolkit/substructure.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/nvmolkit/tests/test_batched_forcefield.py b/nvmolkit/tests/test_batched_forcefield.py index 5189e5b..66d2b33 100644 --- a/nvmolkit/tests/test_batched_forcefield.py +++ b/nvmolkit/tests/test_batched_forcefield.py @@ -1,3 +1,18 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed 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. + import os import pytest diff --git a/nvmolkit/tests/test_conformer_rmsd.py b/nvmolkit/tests/test_conformer_rmsd.py index 4b4794a..14df940 100644 --- a/nvmolkit/tests/test_conformer_rmsd.py +++ b/nvmolkit/tests/test_conformer_rmsd.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/nvmolkit/tests/test_substructure.py b/nvmolkit/tests/test_substructure.py index 96b8ad8..5d3fda3 100644 --- a/nvmolkit/tests/test_substructure.py +++ b/nvmolkit/tests/test_substructure.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/conformer_rmsd.cu b/src/conformer_rmsd.cu index 60d393e..bb10445 100644 --- a/src/conformer_rmsd.cu +++ b/src/conformer_rmsd.cu @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/conformer_rmsd.h b/src/conformer_rmsd.h index 3ebc397..f6b70e1 100644 --- a/src/conformer_rmsd.h +++ b/src/conformer_rmsd.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/conformer_rmsd_mol.cpp b/src/conformer_rmsd_mol.cpp index b6b2dd3..7ecc167 100644 --- a/src/conformer_rmsd_mol.cpp +++ b/src/conformer_rmsd_mol.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/conformer_rmsd_mol.h b/src/conformer_rmsd_mol.h index bfdefa7..f4225bd 100644 --- a/src/conformer_rmsd_mol.h +++ b/src/conformer_rmsd_mol.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/forcefields/batched_forcefield.cpp b/src/forcefields/batched_forcefield.cpp index 16bc6a1..a41276e 100644 --- a/src/forcefields/batched_forcefield.cpp +++ b/src/forcefields/batched_forcefield.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/forcefields/batched_forcefield.h b/src/forcefields/batched_forcefield.h index 00d2720..09d3c5d 100644 --- a/src/forcefields/batched_forcefield.h +++ b/src/forcefields/batched_forcefield.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/forcefields/dg_batched_forcefield.cu b/src/forcefields/dg_batched_forcefield.cu index 140aba3..bc0827e 100644 --- a/src/forcefields/dg_batched_forcefield.cu +++ b/src/forcefields/dg_batched_forcefield.cu @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/forcefields/dg_batched_forcefield.h b/src/forcefields/dg_batched_forcefield.h index bfd4a6c..9b8b562 100644 --- a/src/forcefields/dg_batched_forcefield.h +++ b/src/forcefields/dg_batched_forcefield.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/forcefields/etk_batched_forcefield.cu b/src/forcefields/etk_batched_forcefield.cu index 4ccf455..5af6216 100644 --- a/src/forcefields/etk_batched_forcefield.cu +++ b/src/forcefields/etk_batched_forcefield.cu @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/forcefields/etk_batched_forcefield.h b/src/forcefields/etk_batched_forcefield.h index df6ed2e..d547298 100644 --- a/src/forcefields/etk_batched_forcefield.h +++ b/src/forcefields/etk_batched_forcefield.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/forcefields/forcefield_constraints.cpp b/src/forcefields/forcefield_constraints.cpp index aea90ca..9570991 100644 --- a/src/forcefields/forcefield_constraints.cpp +++ b/src/forcefields/forcefield_constraints.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/forcefields/forcefield_constraints.h b/src/forcefields/forcefield_constraints.h index 606e5f6..1b68adc 100644 --- a/src/forcefields/forcefield_constraints.h +++ b/src/forcefields/forcefield_constraints.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/forcefields/mmff_batched_forcefield.cu b/src/forcefields/mmff_batched_forcefield.cu index 7a1dbd9..ef9c341 100644 --- a/src/forcefields/mmff_batched_forcefield.cu +++ b/src/forcefields/mmff_batched_forcefield.cu @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/forcefields/mmff_batched_forcefield.h b/src/forcefields/mmff_batched_forcefield.h index f5cb6ab..91b131d 100644 --- a/src/forcefields/mmff_batched_forcefield.h +++ b/src/forcefields/mmff_batched_forcefield.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/minimizer/bfgs_minimize_permol_kernels.cu b/src/minimizer/bfgs_minimize_permol_kernels.cu index 87437dd..387cfee 100644 --- a/src/minimizer/bfgs_minimize_permol_kernels.cu +++ b/src/minimizer/bfgs_minimize_permol_kernels.cu @@ -1,3 +1,18 @@ +// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed 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. + #include #include "bfgs_minimize_permol_kernels.h" diff --git a/src/substruct/CMakeLists.txt b/src/substruct/CMakeLists.txt index f770cb3..d52bb24 100644 --- a/src/substruct/CMakeLists.txt +++ b/src/substruct/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. # All rights reserved. SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); you may not diff --git a/src/substruct/substruct_constants.h b/src/substruct/substruct_constants.h index 54fe908..f802af3 100644 --- a/src/substruct/substruct_constants.h +++ b/src/substruct/substruct_constants.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/substruct/substruct_types.h b/src/substruct/substruct_types.h index b8a1887..0690b76 100644 --- a/src/substruct/substruct_types.h +++ b/src/substruct/substruct_types.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/utils/openmp_helpers.cpp b/src/utils/openmp_helpers.cpp index d4ee5fe..be78ed8 100644 --- a/src/utils/openmp_helpers.cpp +++ b/src/utils/openmp_helpers.cpp @@ -1,3 +1,18 @@ +// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed 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. + #include "openmp_helpers.h" namespace nvMolKit { diff --git a/src/utils/rdkit_compat.h b/src/utils/rdkit_compat.h index 9abf04f..1eaba55 100644 --- a/src/utils/rdkit_compat.h +++ b/src/utils/rdkit_compat.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/tests/test_boolean_tree.cu b/tests/test_boolean_tree.cu index 5625dd9..b1246eb 100644 --- a/tests/test_boolean_tree.cu +++ b/tests/test_boolean_tree.cu @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/tests/test_openmp_helpers.cpp b/tests/test_openmp_helpers.cpp index 123b4e1..857efeb 100644 --- a/tests/test_openmp_helpers.cpp +++ b/tests/test_openmp_helpers.cpp @@ -1,5 +1,17 @@ -// Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 +// +// Licensed 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. #include #include