From 09956dab866901c04c3dd9dd3cb57026288a568b Mon Sep 17 00:00:00 2001 From: bneradt Date: Mon, 10 Aug 2026 10:37:08 -0500 Subject: [PATCH 1/3] Update copyright years from git history Derive each tracked file's copyright year from its most recent commit instead of applying the current calendar year only to changed files. Traverse history once, preserve ranges, and avoid third-party copyrights. Normalize existing project headers so a subsequent CI check starts clean. --- .agents/skills/commit/SKILL.md | 4 +- NOTICES | 2 +- src/core/case_insensitive_utils.h | 2 +- src/core/http2.h | 2 +- src/core/yaml_util.h | 2 +- .../format_argument/format_argument.test.py | 2 +- .../arguments/keys_argument/keys_arg.test.py | 2 +- .../port_argument/no_port_argument.test.py | 2 +- .../repeat_argument/repeat_argument.test.py | 2 +- .../gold_tests/autest-site/client.test.ext | 2 +- .../autest-site/directive_engine.py | 2 +- .../gold_tests/autest-site/proxy.test.ext | 2 +- .../autest-site/proxy_protocol_context.py | 2 +- .../autest-site/replay_gen.test.ext | 2 +- .../gold_tests/autest-site/server.test.ext | 2 +- .../gold_tests/autest-site/socket_util.py | 2 +- .../gold_tests/autest-site/test_proxy.py | 2 +- .../gold_tests/await/await.replay.yaml | 2 +- tests/autests/gold_tests/await/await.test.py | 2 +- tests/autests/gold_tests/body/body.test.py | 2 +- .../body_verification.test.py | 2 +- tests/autests/gold_tests/delay/delay.test.py | 2 +- .../gold_tests/delay/verify_duration.py | 2 +- .../gold_tests/doctest/doctest.test.py | 2 +- .../doctest/verify_example_replay_contents.py | 2 +- .../field_parsing/duplicate_fields.test.py | 2 +- .../field_parsing/empty_field.test.py | 2 +- .../field_parsing/empty_proxy.test.py | 2 +- .../field_parsing/parse_yaml.test.py | 2 +- tests/autests/gold_tests/http/http.test.py | 2 +- .../multiple_transactions/file3.yaml | 2 +- tests/autests/gold_tests/http2/http2.test.py | 2 +- .../http2_abort/http2_abort.test.py | 2 +- .../server_goaway_after_headers.yaml | 2 +- .../server_rst_stream_after_headers.yaml | 2 +- .../http2_close_on_goaway.test.py | 2 +- .../http2_close_on_goaway.yaml | 2 +- .../http2_frames/http2_frames.test.py | 2 +- .../http2_multi_data_frames.test.py | 2 +- .../http2_frames/verify_duration.py | 2 +- tests/autests/gold_tests/http3/http3.test.py | 2 +- tests/autests/gold_tests/https/https.test.py | 2 +- tests/autests/gold_tests/https/mtls.test.py | 2 +- tests/autests/gold_tests/ipv6/ipv6.test.py | 2 +- .../gold_tests/no_proxy/no_proxy.test.py | 2 +- .../proxy-protocol/proxy_protocol.test.py | 2 +- .../http_pp_v1_with_address.replay.yaml | 2 +- .../http_single_transaction_no_pp.replay.yaml | 2 +- .../http_single_transaction_pp_v1.replay.yaml | 2 +- .../http_single_transaction_pp_v2.replay.yaml | 2 +- ...https_single_transaction_pp_v1.replay.yaml | 2 +- ...https_single_transaction_pp_v2.replay.yaml | 2 +- .../single_transaction_ipv6_pp_v1.replay.yaml | 2 +- .../single_transaction_ipv6_pp_v2.replay.yaml | 2 +- .../gold_tests/replay_gen/replay_gen.test.py | 2 +- .../replay_files/status_verification.yaml | 2 +- .../status_verification.test.py | 2 +- .../strict_mode/strict_mode.test.py | 2 +- .../url_verification/url_verification.test.py | 2 +- tests/autests/test-env-check.sh | 2 +- tests/unit_tests/test_chunk_parsing.cc | 2 +- tools/clang-format.sh | 2 +- tools/copyright-update.sh | 80 ++++++++++++++----- tools/remap-config-to-url-list.py | 2 +- tools/replay-gen.py | 2 +- 65 files changed, 124 insertions(+), 86 deletions(-) diff --git a/.agents/skills/commit/SKILL.md b/.agents/skills/commit/SKILL.md index 842acf506..2dc32bb2a 100644 --- a/.agents/skills/commit/SKILL.md +++ b/.agents/skills/commit/SKILL.md @@ -9,7 +9,9 @@ When creating a commit for a patch: - Run `bash tools/format.sh` if formatting has not been run since the last edits. - Most files should have a copyright, save files like gold files and .json files which don't take comments. -- Run `bash tools/copyright-update.sh` after the final edits to update copyrights. With no argument it updates currently changed files; with a commit argument it updates the files touched by that commit. +- Run `bash tools/copyright-update.sh` after the final edits. It updates each + tracked file's copyright to its most recent commit year. With a commit + argument it limits the update to files touched by that commit. - Verify every changed or new file that carries a copyright header uses the current year before committing. - Write a short one-line summary (target: under ~60 characters). - Add a concise body (1-3 short paragraphs) focused on why the change is needed and how it resolves the issue. diff --git a/NOTICES b/NOTICES index 294cc319d..d0ab67247 100644 --- a/NOTICES +++ b/NOTICES @@ -1,6 +1,6 @@ Proxy Verifier -Copyright 2020, Verizon Media +Copyright 2026, Verizon Media SPDX-License-Identifier: Apache-2.0 ~~~ diff --git a/src/core/case_insensitive_utils.h b/src/core/case_insensitive_utils.h index 72be599fb..67ed1c47c 100644 --- a/src/core/case_insensitive_utils.h +++ b/src/core/case_insensitive_utils.h @@ -1,7 +1,7 @@ /** @file * Data structures to support case-insensitive containers. * - * Copyright 2021, Verizon Media + * Copyright 2026, Verizon Media * SPDX-License-Identifier: Apache-2.0 */ diff --git a/src/core/http2.h b/src/core/http2.h index 0f5f52780..c5b290932 100644 --- a/src/core/http2.h +++ b/src/core/http2.h @@ -1,7 +1,7 @@ /** @file * Common data structures and definitions for Proxy Verifier tools. * - * Copyright 2022, Verizon Media + * Copyright 2026, Verizon Media * SPDX-License-Identifier: Apache-2.0 */ diff --git a/src/core/yaml_util.h b/src/core/yaml_util.h index f6ad4cad8..c56bd0c62 100644 --- a/src/core/yaml_util.h +++ b/src/core/yaml_util.h @@ -1,6 +1,6 @@ /** @file * - * Copyright 2020, Verizon Media + * Copyright 2026, Verizon Media * SPDX-License-Identifier: Apache-2.0 */ diff --git a/tests/autests/gold_tests/arguments/format_argument/format_argument.test.py b/tests/autests/gold_tests/arguments/format_argument/format_argument.test.py index c290d8e6c..c40db99b6 100644 --- a/tests/autests/gold_tests/arguments/format_argument/format_argument.test.py +++ b/tests/autests/gold_tests/arguments/format_argument/format_argument.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2022, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/arguments/keys_argument/keys_arg.test.py b/tests/autests/gold_tests/arguments/keys_argument/keys_arg.test.py index d85f09a9e..9ce5a02b5 100644 --- a/tests/autests/gold_tests/arguments/keys_argument/keys_arg.test.py +++ b/tests/autests/gold_tests/arguments/keys_argument/keys_arg.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2022, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/arguments/port_argument/no_port_argument.test.py b/tests/autests/gold_tests/arguments/port_argument/no_port_argument.test.py index 31396318f..42a35eb68 100644 --- a/tests/autests/gold_tests/arguments/port_argument/no_port_argument.test.py +++ b/tests/autests/gold_tests/arguments/port_argument/no_port_argument.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/arguments/repeat_argument/repeat_argument.test.py b/tests/autests/gold_tests/arguments/repeat_argument/repeat_argument.test.py index 2ffdfbceb..78df23ab6 100644 --- a/tests/autests/gold_tests/arguments/repeat_argument/repeat_argument.test.py +++ b/tests/autests/gold_tests/arguments/repeat_argument/repeat_argument.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/client.test.ext b/tests/autests/gold_tests/autest-site/client.test.ext index d4134347a..6b875e52a 100755 --- a/tests/autests/gold_tests/autest-site/client.test.ext +++ b/tests/autests/gold_tests/autest-site/client.test.ext @@ -3,7 +3,7 @@ Implement the Proxy Verifier client extensions. ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/directive_engine.py b/tests/autests/gold_tests/autest-site/directive_engine.py index 86a2f55eb..4e86f5365 100644 --- a/tests/autests/gold_tests/autest-site/directive_engine.py +++ b/tests/autests/gold_tests/autest-site/directive_engine.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/proxy.test.ext b/tests/autests/gold_tests/autest-site/proxy.test.ext index faeb1aeb5..ae7a3cfcb 100755 --- a/tests/autests/gold_tests/autest-site/proxy.test.ext +++ b/tests/autests/gold_tests/autest-site/proxy.test.ext @@ -3,7 +3,7 @@ Implement Proxy Verifier test proxy logic ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/proxy_protocol_context.py b/tests/autests/gold_tests/autest-site/proxy_protocol_context.py index 9e54fc90c..12229ece6 100644 --- a/tests/autests/gold_tests/autest-site/proxy_protocol_context.py +++ b/tests/autests/gold_tests/autest-site/proxy_protocol_context.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/replay_gen.test.ext b/tests/autests/gold_tests/autest-site/replay_gen.test.ext index 717f6b958..e744ccb10 100755 --- a/tests/autests/gold_tests/autest-site/replay_gen.test.ext +++ b/tests/autests/gold_tests/autest-site/replay_gen.test.ext @@ -3,7 +3,7 @@ Implement the replay-gen.py extension. ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/server.test.ext b/tests/autests/gold_tests/autest-site/server.test.ext index 9aa98db78..f4d022300 100755 --- a/tests/autests/gold_tests/autest-site/server.test.ext +++ b/tests/autests/gold_tests/autest-site/server.test.ext @@ -3,7 +3,7 @@ Implement the Proxy Verifier test server extension. ''' # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/socket_util.py b/tests/autests/gold_tests/autest-site/socket_util.py index 8ca32bc13..984488f78 100755 --- a/tests/autests/gold_tests/autest-site/socket_util.py +++ b/tests/autests/gold_tests/autest-site/socket_util.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2020, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/test_proxy.py b/tests/autests/gold_tests/autest-site/test_proxy.py index 2efba8a1d..ec5b0e2d3 100644 --- a/tests/autests/gold_tests/autest-site/test_proxy.py +++ b/tests/autests/gold_tests/autest-site/test_proxy.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/await/await.replay.yaml b/tests/autests/gold_tests/await/await.replay.yaml index 40fe8ebdf..55f1265ae 100644 --- a/tests/autests/gold_tests/await/await.replay.yaml +++ b/tests/autests/gold_tests/await/await.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2022, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/await/await.test.py b/tests/autests/gold_tests/await/await.test.py index 6d013cf37..7753d10bf 100644 --- a/tests/autests/gold_tests/await/await.test.py +++ b/tests/autests/gold_tests/await/await.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2022, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/body/body.test.py b/tests/autests/gold_tests/body/body.test.py index f6bd8eb4a..c52eaee1c 100644 --- a/tests/autests/gold_tests/body/body.test.py +++ b/tests/autests/gold_tests/body/body.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/body_verification/body_verification.test.py b/tests/autests/gold_tests/body_verification/body_verification.test.py index 13aef1d12..31e0b11a7 100644 --- a/tests/autests/gold_tests/body_verification/body_verification.test.py +++ b/tests/autests/gold_tests/body_verification/body_verification.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2022, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/delay/delay.test.py b/tests/autests/gold_tests/delay/delay.test.py index 9e5f1b38c..712dfa123 100644 --- a/tests/autests/gold_tests/delay/delay.test.py +++ b/tests/autests/gold_tests/delay/delay.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/delay/verify_duration.py b/tests/autests/gold_tests/delay/verify_duration.py index 679be7c22..34a02a052 100755 --- a/tests/autests/gold_tests/delay/verify_duration.py +++ b/tests/autests/gold_tests/delay/verify_duration.py @@ -4,7 +4,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/doctest/doctest.test.py b/tests/autests/gold_tests/doctest/doctest.test.py index 13978890e..c822e9835 100644 --- a/tests/autests/gold_tests/doctest/doctest.test.py +++ b/tests/autests/gold_tests/doctest/doctest.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/doctest/verify_example_replay_contents.py b/tests/autests/gold_tests/doctest/verify_example_replay_contents.py index fa5da8215..5ea4e1939 100644 --- a/tests/autests/gold_tests/doctest/verify_example_replay_contents.py +++ b/tests/autests/gold_tests/doctest/verify_example_replay_contents.py @@ -4,7 +4,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/field_parsing/duplicate_fields.test.py b/tests/autests/gold_tests/field_parsing/duplicate_fields.test.py index ce7626588..ea43511a5 100644 --- a/tests/autests/gold_tests/field_parsing/duplicate_fields.test.py +++ b/tests/autests/gold_tests/field_parsing/duplicate_fields.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2020, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/field_parsing/empty_field.test.py b/tests/autests/gold_tests/field_parsing/empty_field.test.py index 31ea5ab94..7857dad8f 100644 --- a/tests/autests/gold_tests/field_parsing/empty_field.test.py +++ b/tests/autests/gold_tests/field_parsing/empty_field.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/field_parsing/empty_proxy.test.py b/tests/autests/gold_tests/field_parsing/empty_proxy.test.py index 8eef220cc..6949ad676 100644 --- a/tests/autests/gold_tests/field_parsing/empty_proxy.test.py +++ b/tests/autests/gold_tests/field_parsing/empty_proxy.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2020, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/field_parsing/parse_yaml.test.py b/tests/autests/gold_tests/field_parsing/parse_yaml.test.py index d5b223fa2..7c2a092cd 100644 --- a/tests/autests/gold_tests/field_parsing/parse_yaml.test.py +++ b/tests/autests/gold_tests/field_parsing/parse_yaml.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2020, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http/http.test.py b/tests/autests/gold_tests/http/http.test.py index affc6c18b..d6e10f440 100644 --- a/tests/autests/gold_tests/http/http.test.py +++ b/tests/autests/gold_tests/http/http.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http/replay_files/multiple_transactions/file3.yaml b/tests/autests/gold_tests/http/replay_files/multiple_transactions/file3.yaml index 6dc04dbaf..f31a88082 100644 --- a/tests/autests/gold_tests/http/replay_files/multiple_transactions/file3.yaml +++ b/tests/autests/gold_tests/http/replay_files/multiple_transactions/file3.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2022, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2/http2.test.py b/tests/autests/gold_tests/http2/http2.test.py index 94300c602..57c7629a5 100644 --- a/tests/autests/gold_tests/http2/http2.test.py +++ b/tests/autests/gold_tests/http2/http2.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2022, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_abort/http2_abort.test.py b/tests/autests/gold_tests/http2_abort/http2_abort.test.py index 59787a268..3c0bef872 100644 --- a/tests/autests/gold_tests/http2_abort/http2_abort.test.py +++ b/tests/autests/gold_tests/http2_abort/http2_abort.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_abort/replay_files/server_goaway_after_headers.yaml b/tests/autests/gold_tests/http2_abort/replay_files/server_goaway_after_headers.yaml index af8ff5958..35680648e 100644 --- a/tests/autests/gold_tests/http2_abort/replay_files/server_goaway_after_headers.yaml +++ b/tests/autests/gold_tests/http2_abort/replay_files/server_goaway_after_headers.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_abort/replay_files/server_rst_stream_after_headers.yaml b/tests/autests/gold_tests/http2_abort/replay_files/server_rst_stream_after_headers.yaml index b7373c7dd..ffda5d77e 100644 --- a/tests/autests/gold_tests/http2_abort/replay_files/server_rst_stream_after_headers.yaml +++ b/tests/autests/gold_tests/http2_abort/replay_files/server_rst_stream_after_headers.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.test.py b/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.test.py index 708895382..cef3bfc28 100644 --- a/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.test.py +++ b/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2024, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # Test.Summary = ''' diff --git a/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.yaml b/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.yaml index 005c6fbb2..1e99d9c8b 100644 --- a/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.yaml +++ b/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2024, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_frames/http2_frames.test.py b/tests/autests/gold_tests/http2_frames/http2_frames.test.py index 56d77d3ad..8b154cdcb 100644 --- a/tests/autests/gold_tests/http2_frames/http2_frames.test.py +++ b/tests/autests/gold_tests/http2_frames/http2_frames.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2022, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_frames/http2_multi_data_frames.test.py b/tests/autests/gold_tests/http2_frames/http2_multi_data_frames.test.py index 73bacca43..4d95bb5e7 100644 --- a/tests/autests/gold_tests/http2_frames/http2_multi_data_frames.test.py +++ b/tests/autests/gold_tests/http2_frames/http2_multi_data_frames.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_frames/verify_duration.py b/tests/autests/gold_tests/http2_frames/verify_duration.py index 2226ad38e..799b72c87 100755 --- a/tests/autests/gold_tests/http2_frames/verify_duration.py +++ b/tests/autests/gold_tests/http2_frames/verify_duration.py @@ -4,7 +4,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http3/http3.test.py b/tests/autests/gold_tests/http3/http3.test.py index 43d9a91a7..0d336b775 100644 --- a/tests/autests/gold_tests/http3/http3.test.py +++ b/tests/autests/gold_tests/http3/http3.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/https/https.test.py b/tests/autests/gold_tests/https/https.test.py index c1bac1a2d..0602a4fc5 100644 --- a/tests/autests/gold_tests/https/https.test.py +++ b/tests/autests/gold_tests/https/https.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/https/mtls.test.py b/tests/autests/gold_tests/https/mtls.test.py index dcbeee824..25e596740 100644 --- a/tests/autests/gold_tests/https/mtls.test.py +++ b/tests/autests/gold_tests/https/mtls.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/ipv6/ipv6.test.py b/tests/autests/gold_tests/ipv6/ipv6.test.py index 884ae3e8b..19138316d 100644 --- a/tests/autests/gold_tests/ipv6/ipv6.test.py +++ b/tests/autests/gold_tests/ipv6/ipv6.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/no_proxy/no_proxy.test.py b/tests/autests/gold_tests/no_proxy/no_proxy.test.py index 7000aa116..00b962ee5 100644 --- a/tests/autests/gold_tests/no_proxy/no_proxy.test.py +++ b/tests/autests/gold_tests/no_proxy/no_proxy.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2022, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/proxy_protocol.test.py b/tests/autests/gold_tests/proxy-protocol/proxy_protocol.test.py index 39d7c845b..acd0581a2 100644 --- a/tests/autests/gold_tests/proxy-protocol/proxy_protocol.test.py +++ b/tests/autests/gold_tests/proxy-protocol/proxy_protocol.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/http_pp_v1_with_address.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/http_pp_v1_with_address.replay.yaml index fb3d81773..f42ecf3e4 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/http_pp_v1_with_address.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/http_pp_v1_with_address.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_no_pp.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_no_pp.replay.yaml index f2ed452ec..f473b9d82 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_no_pp.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_no_pp.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v1.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v1.replay.yaml index 0acc8ef4b..29eb36441 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v1.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v1.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v2.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v2.replay.yaml index 93511ed84..65c8b5de3 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v2.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v2.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v1.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v1.replay.yaml index 2487df564..0c8f9413b 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v1.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v1.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # --- diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v2.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v2.replay.yaml index 8d35962bd..1e6eba581 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v2.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v2.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # --- diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v1.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v1.replay.yaml index 707945a72..aac31e5ba 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v1.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v1.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v2.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v2.replay.yaml index 4844f5fd9..2b4b73333 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v2.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v2.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/replay_gen/replay_gen.test.py b/tests/autests/gold_tests/replay_gen/replay_gen.test.py index ee2e34a52..efeed4b0a 100644 --- a/tests/autests/gold_tests/replay_gen/replay_gen.test.py +++ b/tests/autests/gold_tests/replay_gen/replay_gen.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/status_verification/replay_files/status_verification.yaml b/tests/autests/gold_tests/status_verification/replay_files/status_verification.yaml index b45414179..2efea6124 100644 --- a/tests/autests/gold_tests/status_verification/replay_files/status_verification.yaml +++ b/tests/autests/gold_tests/status_verification/replay_files/status_verification.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/status_verification/status_verification.test.py b/tests/autests/gold_tests/status_verification/status_verification.test.py index 4dfac3138..c46fbb9e8 100644 --- a/tests/autests/gold_tests/status_verification/status_verification.test.py +++ b/tests/autests/gold_tests/status_verification/status_verification.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2023, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/strict_mode/strict_mode.test.py b/tests/autests/gold_tests/strict_mode/strict_mode.test.py index 042d6208d..a1835ffa2 100644 --- a/tests/autests/gold_tests/strict_mode/strict_mode.test.py +++ b/tests/autests/gold_tests/strict_mode/strict_mode.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/url_verification/url_verification.test.py b/tests/autests/gold_tests/url_verification/url_verification.test.py index abdc8f097..ba3bb79fa 100644 --- a/tests/autests/gold_tests/url_verification/url_verification.test.py +++ b/tests/autests/gold_tests/url_verification/url_verification.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/test-env-check.sh b/tests/autests/test-env-check.sh index c0e2a97b0..5c42dda10 100755 --- a/tests/autests/test-env-check.sh +++ b/tests/autests/test-env-check.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2020, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/unit_tests/test_chunk_parsing.cc b/tests/unit_tests/test_chunk_parsing.cc index 67a52cd75..de01de285 100644 --- a/tests/unit_tests/test_chunk_parsing.cc +++ b/tests/unit_tests/test_chunk_parsing.cc @@ -1,7 +1,7 @@ /** @file * Unit tests for HttpReplay.h. * - * Copyright 2020, Verizon Media + * Copyright 2026, Verizon Media * SPDX-License-Identifier: Apache-2.0 */ diff --git a/tools/clang-format.sh b/tools/clang-format.sh index 179121828..e4b10c368 100755 --- a/tools/clang-format.sh +++ b/tools/clang-format.sh @@ -2,7 +2,7 @@ # # Simple wrapper to run clang-format on a bunch of files # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tools/copyright-update.sh b/tools/copyright-update.sh index 4f7d81f5f..c6fc9d562 100755 --- a/tools/copyright-update.sh +++ b/tools/copyright-update.sh @@ -1,7 +1,7 @@ #! /usr/bin/env bash # -# Given a commit, update all the Copyrights of the changed files. -# If no commit is provided, update the currently changed files in the worktree. +# Update Copyrights to the year of each file's most recent commit. +# If a commit is provided, limit the update to files changed by that commit. # # Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 @@ -11,31 +11,67 @@ usage="$(basename "$0") [git_commit]" fail() { - echo -e $1 + printf '%b\n' "$1" >&2 exit 1 } [ $# -le 1 ] || fail "Provide at most one git commit.\n\n${usage}" commit=${1:-} +copyright_owners='(Verizon Media|Yahoo)' +copyright_range='(Copyright [[:digit:]]{4}-)[[:digit:]]{4}' tools_dir=$(dirname "$0") git_root=$(dirname "${tools_dir}") -cd "${git_root}" -current_year=$(date +%Y) +cd "${git_root}" || fail "Could not enter the git worktree: ${git_root}" -while IFS= read -r -d '' changed_file; do - [ -f "${changed_file}" ] || continue - grep -q "Copyright " "${changed_file}" || continue - sed -i'.sedbak' \ - "s/Copyright 20[[:digit:]][[:digit:]]/Copyright ${current_year}/g" \ - "${changed_file}" -done < <( - if [ -n "${commit}" ]; then - git diff-tree --no-commit-id --name-only --diff-filter=ACMRTUXB -r -z "${commit}" - else - { - git diff --name-only --diff-filter=ACMRTUXB -z HEAD -- - git ls-files --others --exclude-standard -z - } | awk 'BEGIN { RS = "\0"; ORS = "\0" } !seen[$0]++' - fi -) +if [ -n "${commit}" ]; then + git rev-parse --verify "${commit}^{commit}" >/dev/null 2>&1 || \ + fail "Could not resolve git commit: ${commit}\n\n${usage}" +fi +[ "$(git rev-parse --is-shallow-repository)" = "false" ] || \ + fail "A complete git history is required to determine copyright years." -find . -name '*.sedbak' -delete +selected_files=$(mktemp "${TMPDIR:-/tmp}/copyright-update.XXXXXX") || \ + fail "Could not create a temporary file." +cleanup() +{ + rm -f -- "${selected_files}" +} +trap cleanup EXIT +trap 'exit 1' HUP INT TERM + +if [ -n "${commit}" ]; then + git diff-tree --no-commit-id --name-only --diff-filter=ACMRTUXB -r \ + "${commit}" > "${selected_files}" +else + git ls-files > "${selected_files}" +fi + +# A single history traversal avoids invoking git once for every tracked file. +git log --format='CopyrightYear:%cd' --date=format:%Y --name-only \ + --diff-filter=ACMRTUXB HEAD -- | + awk ' + NR == FNR { + selected[$0] = 1 + next + } + /^CopyrightYear:[[:digit:]]{4}$/ { + year = substr($0, 15) + next + } + year != "" && $0 in selected && !seen[$0]++ { + print year "\t" $0 + } + ' "${selected_files}" - | + while IFS="$(printf '\t')" read -r last_commit_year tracked_file; do + [ -f "${tracked_file}" ] || continue + # Do not alter copyrights embedded in vendored sources. + grep -Eq "Copyright [[:digit:]]{4}(-[[:digit:]]{4})?, ${copyright_owners}" \ + "${tracked_file}" || continue + + backup_suffix=".copyright-update.$$" + # A range retains its starting year; only its ending year changes. + sed -E -i"${backup_suffix}" \ + -e "s/${copyright_range}(, ${copyright_owners})/\\1${last_commit_year}\\2/g" \ + -e "s/Copyright [[:digit:]]{4}(, ${copyright_owners})/Copyright ${last_commit_year}\\1/g" \ + "${tracked_file}" + rm -f -- "${tracked_file}${backup_suffix}" + done diff --git a/tools/remap-config-to-url-list.py b/tools/remap-config-to-url-list.py index cd168dedd..4a7d255f1 100755 --- a/tools/remap-config-to-url-list.py +++ b/tools/remap-config-to-url-list.py @@ -2,7 +2,7 @@ # @file # -# Copyright 2021, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tools/replay-gen.py b/tools/replay-gen.py index fff67d1d4..8dcd998de 100755 --- a/tools/replay-gen.py +++ b/tools/replay-gen.py @@ -2,7 +2,7 @@ # @file # -# Copyright 2022, Verizon Media +# Copyright 2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # From f9c0c61de7314b9894a9a1519d17d9a73e82c7bd Mon Sep 17 00:00:00 2001 From: bneradt Date: Mon, 10 Aug 2026 10:54:39 -0500 Subject: [PATCH 2/3] Preserve initial copyright years Extend a single copyright year into a range when a file's latest commit is from a later year. Keep same-year headers singular and retain the starting year of existing ranges. Regenerate the normalized headers so their original years are preserved. --- NOTICES | 2 +- src/core/case_insensitive_utils.h | 2 +- src/core/http2.h | 2 +- src/core/yaml_util.h | 2 +- .../format_argument/format_argument.test.py | 2 +- .../arguments/keys_argument/keys_arg.test.py | 2 +- .../port_argument/no_port_argument.test.py | 2 +- .../repeat_argument/repeat_argument.test.py | 2 +- .../gold_tests/autest-site/client.test.ext | 2 +- .../autest-site/directive_engine.py | 2 +- .../gold_tests/autest-site/proxy.test.ext | 2 +- .../autest-site/proxy_protocol_context.py | 2 +- .../autest-site/replay_gen.test.ext | 2 +- .../gold_tests/autest-site/server.test.ext | 2 +- .../gold_tests/autest-site/socket_util.py | 2 +- .../gold_tests/autest-site/test_proxy.py | 2 +- .../gold_tests/await/await.replay.yaml | 2 +- tests/autests/gold_tests/await/await.test.py | 2 +- tests/autests/gold_tests/body/body.test.py | 2 +- .../body_verification.test.py | 2 +- tests/autests/gold_tests/delay/delay.test.py | 2 +- .../gold_tests/delay/verify_duration.py | 2 +- .../gold_tests/doctest/doctest.test.py | 2 +- .../doctest/verify_example_replay_contents.py | 2 +- .../field_parsing/duplicate_fields.test.py | 2 +- .../field_parsing/empty_field.test.py | 2 +- .../field_parsing/empty_proxy.test.py | 2 +- .../field_parsing/parse_yaml.test.py | 2 +- tests/autests/gold_tests/http/http.test.py | 2 +- .../multiple_transactions/file3.yaml | 2 +- tests/autests/gold_tests/http2/http2.test.py | 2 +- .../http2_abort/http2_abort.test.py | 2 +- .../server_goaway_after_headers.yaml | 2 +- .../server_rst_stream_after_headers.yaml | 2 +- .../http2_close_on_goaway.test.py | 2 +- .../http2_close_on_goaway.yaml | 2 +- .../http2_frames/http2_frames.test.py | 2 +- .../http2_multi_data_frames.test.py | 2 +- .../http2_frames/verify_duration.py | 2 +- tests/autests/gold_tests/http3/http3.test.py | 2 +- tests/autests/gold_tests/https/https.test.py | 2 +- tests/autests/gold_tests/https/mtls.test.py | 2 +- tests/autests/gold_tests/ipv6/ipv6.test.py | 2 +- .../gold_tests/no_proxy/no_proxy.test.py | 2 +- .../proxy-protocol/proxy_protocol.test.py | 2 +- .../http_pp_v1_with_address.replay.yaml | 2 +- .../http_single_transaction_no_pp.replay.yaml | 2 +- .../http_single_transaction_pp_v1.replay.yaml | 2 +- .../http_single_transaction_pp_v2.replay.yaml | 2 +- ...https_single_transaction_pp_v1.replay.yaml | 2 +- ...https_single_transaction_pp_v2.replay.yaml | 2 +- .../single_transaction_ipv6_pp_v1.replay.yaml | 2 +- .../single_transaction_ipv6_pp_v2.replay.yaml | 2 +- .../gold_tests/replay_gen/replay_gen.test.py | 2 +- .../replay_files/status_verification.yaml | 2 +- .../status_verification.test.py | 2 +- .../strict_mode/strict_mode.test.py | 2 +- .../url_verification/url_verification.test.py | 2 +- tests/autests/test-env-check.sh | 2 +- tests/unit_tests/test_chunk_parsing.cc | 2 +- tools/clang-format.sh | 2 +- tools/copyright-update.sh | 26 ++++++++++++++----- tools/remap-config-to-url-list.py | 2 +- tools/replay-gen.py | 2 +- 64 files changed, 82 insertions(+), 70 deletions(-) diff --git a/NOTICES b/NOTICES index d0ab67247..aef78d066 100644 --- a/NOTICES +++ b/NOTICES @@ -1,6 +1,6 @@ Proxy Verifier -Copyright 2026, Verizon Media +Copyright 2020-2026, Verizon Media SPDX-License-Identifier: Apache-2.0 ~~~ diff --git a/src/core/case_insensitive_utils.h b/src/core/case_insensitive_utils.h index 67ed1c47c..5dc3daa1c 100644 --- a/src/core/case_insensitive_utils.h +++ b/src/core/case_insensitive_utils.h @@ -1,7 +1,7 @@ /** @file * Data structures to support case-insensitive containers. * - * Copyright 2026, Verizon Media + * Copyright 2021-2026, Verizon Media * SPDX-License-Identifier: Apache-2.0 */ diff --git a/src/core/http2.h b/src/core/http2.h index c5b290932..3fa891354 100644 --- a/src/core/http2.h +++ b/src/core/http2.h @@ -1,7 +1,7 @@ /** @file * Common data structures and definitions for Proxy Verifier tools. * - * Copyright 2026, Verizon Media + * Copyright 2022-2026, Verizon Media * SPDX-License-Identifier: Apache-2.0 */ diff --git a/src/core/yaml_util.h b/src/core/yaml_util.h index c56bd0c62..f0ad6fd43 100644 --- a/src/core/yaml_util.h +++ b/src/core/yaml_util.h @@ -1,6 +1,6 @@ /** @file * - * Copyright 2026, Verizon Media + * Copyright 2020-2026, Verizon Media * SPDX-License-Identifier: Apache-2.0 */ diff --git a/tests/autests/gold_tests/arguments/format_argument/format_argument.test.py b/tests/autests/gold_tests/arguments/format_argument/format_argument.test.py index c40db99b6..34ad1500e 100644 --- a/tests/autests/gold_tests/arguments/format_argument/format_argument.test.py +++ b/tests/autests/gold_tests/arguments/format_argument/format_argument.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2022-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/arguments/keys_argument/keys_arg.test.py b/tests/autests/gold_tests/arguments/keys_argument/keys_arg.test.py index 9ce5a02b5..efd9371eb 100644 --- a/tests/autests/gold_tests/arguments/keys_argument/keys_arg.test.py +++ b/tests/autests/gold_tests/arguments/keys_argument/keys_arg.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2022-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/arguments/port_argument/no_port_argument.test.py b/tests/autests/gold_tests/arguments/port_argument/no_port_argument.test.py index 42a35eb68..3f43ed547 100644 --- a/tests/autests/gold_tests/arguments/port_argument/no_port_argument.test.py +++ b/tests/autests/gold_tests/arguments/port_argument/no_port_argument.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/arguments/repeat_argument/repeat_argument.test.py b/tests/autests/gold_tests/arguments/repeat_argument/repeat_argument.test.py index 78df23ab6..5631c4962 100644 --- a/tests/autests/gold_tests/arguments/repeat_argument/repeat_argument.test.py +++ b/tests/autests/gold_tests/arguments/repeat_argument/repeat_argument.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/client.test.ext b/tests/autests/gold_tests/autest-site/client.test.ext index 6b875e52a..de9a9f396 100755 --- a/tests/autests/gold_tests/autest-site/client.test.ext +++ b/tests/autests/gold_tests/autest-site/client.test.ext @@ -3,7 +3,7 @@ Implement the Proxy Verifier client extensions. ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/directive_engine.py b/tests/autests/gold_tests/autest-site/directive_engine.py index 4e86f5365..82438c4d8 100644 --- a/tests/autests/gold_tests/autest-site/directive_engine.py +++ b/tests/autests/gold_tests/autest-site/directive_engine.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/proxy.test.ext b/tests/autests/gold_tests/autest-site/proxy.test.ext index ae7a3cfcb..7cc0caa29 100755 --- a/tests/autests/gold_tests/autest-site/proxy.test.ext +++ b/tests/autests/gold_tests/autest-site/proxy.test.ext @@ -3,7 +3,7 @@ Implement Proxy Verifier test proxy logic ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/proxy_protocol_context.py b/tests/autests/gold_tests/autest-site/proxy_protocol_context.py index 12229ece6..b227aa22d 100644 --- a/tests/autests/gold_tests/autest-site/proxy_protocol_context.py +++ b/tests/autests/gold_tests/autest-site/proxy_protocol_context.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/replay_gen.test.ext b/tests/autests/gold_tests/autest-site/replay_gen.test.ext index e744ccb10..58c4f2d66 100755 --- a/tests/autests/gold_tests/autest-site/replay_gen.test.ext +++ b/tests/autests/gold_tests/autest-site/replay_gen.test.ext @@ -3,7 +3,7 @@ Implement the replay-gen.py extension. ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/server.test.ext b/tests/autests/gold_tests/autest-site/server.test.ext index f4d022300..b65d7f6af 100755 --- a/tests/autests/gold_tests/autest-site/server.test.ext +++ b/tests/autests/gold_tests/autest-site/server.test.ext @@ -3,7 +3,7 @@ Implement the Proxy Verifier test server extension. ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/socket_util.py b/tests/autests/gold_tests/autest-site/socket_util.py index 984488f78..49fab9540 100755 --- a/tests/autests/gold_tests/autest-site/socket_util.py +++ b/tests/autests/gold_tests/autest-site/socket_util.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2020-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/autest-site/test_proxy.py b/tests/autests/gold_tests/autest-site/test_proxy.py index ec5b0e2d3..c99757d98 100644 --- a/tests/autests/gold_tests/autest-site/test_proxy.py +++ b/tests/autests/gold_tests/autest-site/test_proxy.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/await/await.replay.yaml b/tests/autests/gold_tests/await/await.replay.yaml index 55f1265ae..50c0061f9 100644 --- a/tests/autests/gold_tests/await/await.replay.yaml +++ b/tests/autests/gold_tests/await/await.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2022-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/await/await.test.py b/tests/autests/gold_tests/await/await.test.py index 7753d10bf..6bbe506c7 100644 --- a/tests/autests/gold_tests/await/await.test.py +++ b/tests/autests/gold_tests/await/await.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2022-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/body/body.test.py b/tests/autests/gold_tests/body/body.test.py index c52eaee1c..a1e84df6f 100644 --- a/tests/autests/gold_tests/body/body.test.py +++ b/tests/autests/gold_tests/body/body.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/body_verification/body_verification.test.py b/tests/autests/gold_tests/body_verification/body_verification.test.py index 31e0b11a7..42a167e50 100644 --- a/tests/autests/gold_tests/body_verification/body_verification.test.py +++ b/tests/autests/gold_tests/body_verification/body_verification.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2022-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/delay/delay.test.py b/tests/autests/gold_tests/delay/delay.test.py index 712dfa123..70247914c 100644 --- a/tests/autests/gold_tests/delay/delay.test.py +++ b/tests/autests/gold_tests/delay/delay.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/delay/verify_duration.py b/tests/autests/gold_tests/delay/verify_duration.py index 34a02a052..6e075bc38 100755 --- a/tests/autests/gold_tests/delay/verify_duration.py +++ b/tests/autests/gold_tests/delay/verify_duration.py @@ -4,7 +4,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/doctest/doctest.test.py b/tests/autests/gold_tests/doctest/doctest.test.py index c822e9835..4e11dd99e 100644 --- a/tests/autests/gold_tests/doctest/doctest.test.py +++ b/tests/autests/gold_tests/doctest/doctest.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/doctest/verify_example_replay_contents.py b/tests/autests/gold_tests/doctest/verify_example_replay_contents.py index 5ea4e1939..586aec76b 100644 --- a/tests/autests/gold_tests/doctest/verify_example_replay_contents.py +++ b/tests/autests/gold_tests/doctest/verify_example_replay_contents.py @@ -4,7 +4,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/field_parsing/duplicate_fields.test.py b/tests/autests/gold_tests/field_parsing/duplicate_fields.test.py index ea43511a5..81985ef2f 100644 --- a/tests/autests/gold_tests/field_parsing/duplicate_fields.test.py +++ b/tests/autests/gold_tests/field_parsing/duplicate_fields.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2020-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/field_parsing/empty_field.test.py b/tests/autests/gold_tests/field_parsing/empty_field.test.py index 7857dad8f..58a04b530 100644 --- a/tests/autests/gold_tests/field_parsing/empty_field.test.py +++ b/tests/autests/gold_tests/field_parsing/empty_field.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/field_parsing/empty_proxy.test.py b/tests/autests/gold_tests/field_parsing/empty_proxy.test.py index 6949ad676..6a8bdb030 100644 --- a/tests/autests/gold_tests/field_parsing/empty_proxy.test.py +++ b/tests/autests/gold_tests/field_parsing/empty_proxy.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2020-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/field_parsing/parse_yaml.test.py b/tests/autests/gold_tests/field_parsing/parse_yaml.test.py index 7c2a092cd..729d3e5b0 100644 --- a/tests/autests/gold_tests/field_parsing/parse_yaml.test.py +++ b/tests/autests/gold_tests/field_parsing/parse_yaml.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2020-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http/http.test.py b/tests/autests/gold_tests/http/http.test.py index d6e10f440..aabd0998d 100644 --- a/tests/autests/gold_tests/http/http.test.py +++ b/tests/autests/gold_tests/http/http.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http/replay_files/multiple_transactions/file3.yaml b/tests/autests/gold_tests/http/replay_files/multiple_transactions/file3.yaml index f31a88082..025370712 100644 --- a/tests/autests/gold_tests/http/replay_files/multiple_transactions/file3.yaml +++ b/tests/autests/gold_tests/http/replay_files/multiple_transactions/file3.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2022-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2/http2.test.py b/tests/autests/gold_tests/http2/http2.test.py index 57c7629a5..2950f503e 100644 --- a/tests/autests/gold_tests/http2/http2.test.py +++ b/tests/autests/gold_tests/http2/http2.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2022-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_abort/http2_abort.test.py b/tests/autests/gold_tests/http2_abort/http2_abort.test.py index 3c0bef872..09de6fc83 100644 --- a/tests/autests/gold_tests/http2_abort/http2_abort.test.py +++ b/tests/autests/gold_tests/http2_abort/http2_abort.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_abort/replay_files/server_goaway_after_headers.yaml b/tests/autests/gold_tests/http2_abort/replay_files/server_goaway_after_headers.yaml index 35680648e..da15aba01 100644 --- a/tests/autests/gold_tests/http2_abort/replay_files/server_goaway_after_headers.yaml +++ b/tests/autests/gold_tests/http2_abort/replay_files/server_goaway_after_headers.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_abort/replay_files/server_rst_stream_after_headers.yaml b/tests/autests/gold_tests/http2_abort/replay_files/server_rst_stream_after_headers.yaml index ffda5d77e..506a848a8 100644 --- a/tests/autests/gold_tests/http2_abort/replay_files/server_rst_stream_after_headers.yaml +++ b/tests/autests/gold_tests/http2_abort/replay_files/server_rst_stream_after_headers.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.test.py b/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.test.py index cef3bfc28..91d4ea2b7 100644 --- a/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.test.py +++ b/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2024-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # Test.Summary = ''' diff --git a/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.yaml b/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.yaml index 1e99d9c8b..958dcc6ad 100644 --- a/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.yaml +++ b/tests/autests/gold_tests/http2_close_on_goaway/http2_close_on_goaway.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2024-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_frames/http2_frames.test.py b/tests/autests/gold_tests/http2_frames/http2_frames.test.py index 8b154cdcb..0701bf79b 100644 --- a/tests/autests/gold_tests/http2_frames/http2_frames.test.py +++ b/tests/autests/gold_tests/http2_frames/http2_frames.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2022-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_frames/http2_multi_data_frames.test.py b/tests/autests/gold_tests/http2_frames/http2_multi_data_frames.test.py index 4d95bb5e7..2d3c9f5df 100644 --- a/tests/autests/gold_tests/http2_frames/http2_multi_data_frames.test.py +++ b/tests/autests/gold_tests/http2_frames/http2_multi_data_frames.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http2_frames/verify_duration.py b/tests/autests/gold_tests/http2_frames/verify_duration.py index 799b72c87..3a7a1b1bf 100755 --- a/tests/autests/gold_tests/http2_frames/verify_duration.py +++ b/tests/autests/gold_tests/http2_frames/verify_duration.py @@ -4,7 +4,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/http3/http3.test.py b/tests/autests/gold_tests/http3/http3.test.py index 0d336b775..39b7e110b 100644 --- a/tests/autests/gold_tests/http3/http3.test.py +++ b/tests/autests/gold_tests/http3/http3.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/https/https.test.py b/tests/autests/gold_tests/https/https.test.py index 0602a4fc5..944549b98 100644 --- a/tests/autests/gold_tests/https/https.test.py +++ b/tests/autests/gold_tests/https/https.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/https/mtls.test.py b/tests/autests/gold_tests/https/mtls.test.py index 25e596740..b6bf6e66e 100644 --- a/tests/autests/gold_tests/https/mtls.test.py +++ b/tests/autests/gold_tests/https/mtls.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/ipv6/ipv6.test.py b/tests/autests/gold_tests/ipv6/ipv6.test.py index 19138316d..e89e0cac9 100644 --- a/tests/autests/gold_tests/ipv6/ipv6.test.py +++ b/tests/autests/gold_tests/ipv6/ipv6.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/no_proxy/no_proxy.test.py b/tests/autests/gold_tests/no_proxy/no_proxy.test.py index 00b962ee5..27d21e82f 100644 --- a/tests/autests/gold_tests/no_proxy/no_proxy.test.py +++ b/tests/autests/gold_tests/no_proxy/no_proxy.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2022-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/proxy_protocol.test.py b/tests/autests/gold_tests/proxy-protocol/proxy_protocol.test.py index acd0581a2..ae5261a32 100644 --- a/tests/autests/gold_tests/proxy-protocol/proxy_protocol.test.py +++ b/tests/autests/gold_tests/proxy-protocol/proxy_protocol.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/http_pp_v1_with_address.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/http_pp_v1_with_address.replay.yaml index f42ecf3e4..d0836e020 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/http_pp_v1_with_address.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/http_pp_v1_with_address.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_no_pp.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_no_pp.replay.yaml index f473b9d82..b4b19fc18 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_no_pp.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_no_pp.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v1.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v1.replay.yaml index 29eb36441..d3590b196 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v1.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v1.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v2.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v2.replay.yaml index 65c8b5de3..100d90593 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v2.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/http_single_transaction_pp_v2.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v1.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v1.replay.yaml index 0c8f9413b..769c7984e 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v1.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v1.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # --- diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v2.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v2.replay.yaml index 1e6eba581..3e57efe0f 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v2.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/https_single_transaction_pp_v2.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # --- diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v1.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v1.replay.yaml index aac31e5ba..68fcc6bd4 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v1.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v1.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v2.replay.yaml b/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v2.replay.yaml index 2b4b73333..c3f80497c 100644 --- a/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v2.replay.yaml +++ b/tests/autests/gold_tests/proxy-protocol/replay_files/single_transaction_ipv6_pp_v2.replay.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/replay_gen/replay_gen.test.py b/tests/autests/gold_tests/replay_gen/replay_gen.test.py index efeed4b0a..b1e64f1c6 100644 --- a/tests/autests/gold_tests/replay_gen/replay_gen.test.py +++ b/tests/autests/gold_tests/replay_gen/replay_gen.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/status_verification/replay_files/status_verification.yaml b/tests/autests/gold_tests/status_verification/replay_files/status_verification.yaml index 2efea6124..771d4553d 100644 --- a/tests/autests/gold_tests/status_verification/replay_files/status_verification.yaml +++ b/tests/autests/gold_tests/status_verification/replay_files/status_verification.yaml @@ -1,6 +1,6 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/status_verification/status_verification.test.py b/tests/autests/gold_tests/status_verification/status_verification.test.py index c46fbb9e8..6daf8be4c 100644 --- a/tests/autests/gold_tests/status_verification/status_verification.test.py +++ b/tests/autests/gold_tests/status_verification/status_verification.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2023-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/strict_mode/strict_mode.test.py b/tests/autests/gold_tests/strict_mode/strict_mode.test.py index a1835ffa2..bd76e5546 100644 --- a/tests/autests/gold_tests/strict_mode/strict_mode.test.py +++ b/tests/autests/gold_tests/strict_mode/strict_mode.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/gold_tests/url_verification/url_verification.test.py b/tests/autests/gold_tests/url_verification/url_verification.test.py index ba3bb79fa..80a01e682 100644 --- a/tests/autests/gold_tests/url_verification/url_verification.test.py +++ b/tests/autests/gold_tests/url_verification/url_verification.test.py @@ -3,7 +3,7 @@ ''' # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/autests/test-env-check.sh b/tests/autests/test-env-check.sh index 5c42dda10..976417c92 100755 --- a/tests/autests/test-env-check.sh +++ b/tests/autests/test-env-check.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2026, Verizon Media +# Copyright 2020-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tests/unit_tests/test_chunk_parsing.cc b/tests/unit_tests/test_chunk_parsing.cc index de01de285..6ac4bb338 100644 --- a/tests/unit_tests/test_chunk_parsing.cc +++ b/tests/unit_tests/test_chunk_parsing.cc @@ -1,7 +1,7 @@ /** @file * Unit tests for HttpReplay.h. * - * Copyright 2026, Verizon Media + * Copyright 2020-2026, Verizon Media * SPDX-License-Identifier: Apache-2.0 */ diff --git a/tools/clang-format.sh b/tools/clang-format.sh index e4b10c368..447116943 100755 --- a/tools/clang-format.sh +++ b/tools/clang-format.sh @@ -2,7 +2,7 @@ # # Simple wrapper to run clang-format on a bunch of files # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tools/copyright-update.sh b/tools/copyright-update.sh index c6fc9d562..d7d259c93 100755 --- a/tools/copyright-update.sh +++ b/tools/copyright-update.sh @@ -18,6 +18,8 @@ fail() commit=${1:-} copyright_owners='(Verizon Media|Yahoo)' copyright_range='(Copyright [[:digit:]]{4}-)[[:digit:]]{4}' +copyright_single='(Copyright [[:digit:]]{4})' +copyright_pattern="Copyright ([[:digit:]]{4})(-([[:digit:]]{4}))?, ${copyright_owners}" tools_dir=$(dirname "$0") git_root=$(dirname "${tools_dir}") cd "${git_root}" || fail "Could not enter the git worktree: ${git_root}" @@ -64,14 +66,24 @@ git log --format='CopyrightYear:%cd' --date=format:%Y --name-only \ while IFS="$(printf '\t')" read -r last_commit_year tracked_file; do [ -f "${tracked_file}" ] || continue # Do not alter copyrights embedded in vendored sources. - grep -Eq "Copyright [[:digit:]]{4}(-[[:digit:]]{4})?, ${copyright_owners}" \ - "${tracked_file}" || continue + copyright=$(grep -Em1 "${copyright_pattern}" "${tracked_file}") || continue + [[ "${copyright}" =~ ${copyright_pattern} ]] || continue + first_year=${BASH_REMATCH[1]} + last_header_year=${BASH_REMATCH[3]} backup_suffix=".copyright-update.$$" - # A range retains its starting year; only its ending year changes. - sed -E -i"${backup_suffix}" \ - -e "s/${copyright_range}(, ${copyright_owners})/\\1${last_commit_year}\\2/g" \ - -e "s/Copyright [[:digit:]]{4}(, ${copyright_owners})/Copyright ${last_commit_year}\\1/g" \ - "${tracked_file}" + if [ -n "${last_header_year}" ]; then + [ "${last_header_year}" != "${last_commit_year}" ] || continue + # A range retains its starting year; only its ending year changes. + sed -E -i"${backup_suffix}" \ + -e "s/${copyright_range}(, ${copyright_owners})/\\1${last_commit_year}\\2/g" \ + "${tracked_file}" + else + [ "${first_year}" != "${last_commit_year}" ] || continue + # Preserve the first year by extending a single year into a range. + sed -E -i"${backup_suffix}" \ + -e "s/${copyright_single}(, ${copyright_owners})/\\1-${last_commit_year}\\2/g" \ + "${tracked_file}" + fi rm -f -- "${tracked_file}${backup_suffix}" done diff --git a/tools/remap-config-to-url-list.py b/tools/remap-config-to-url-list.py index 4a7d255f1..9a33fb11c 100755 --- a/tools/remap-config-to-url-list.py +++ b/tools/remap-config-to-url-list.py @@ -2,7 +2,7 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2021-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # diff --git a/tools/replay-gen.py b/tools/replay-gen.py index 8dcd998de..7ba3f3a5b 100755 --- a/tools/replay-gen.py +++ b/tools/replay-gen.py @@ -2,7 +2,7 @@ # @file # -# Copyright 2026, Verizon Media +# Copyright 2022-2026, Verizon Media # SPDX-License-Identifier: Apache-2.0 # From 7be124dd78f7515056e451ef603409d979baf421 Mon Sep 17 00:00:00 2001 From: bneradt Date: Mon, 10 Aug 2026 11:01:47 -0500 Subject: [PATCH 3/3] Add pull request preparation script Provide one contributor command that formats the tree and normalizes copyright years before opening a pull request. Point CONTRIBUTING and the agent commit guidance at the shared workflow. --- .agents/skills/commit/SKILL.md | 9 ++++----- CONTRIBUTING.md | 3 ++- tools/pr-prep.sh | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 6 deletions(-) create mode 100755 tools/pr-prep.sh diff --git a/.agents/skills/commit/SKILL.md b/.agents/skills/commit/SKILL.md index 2dc32bb2a..041a358cb 100644 --- a/.agents/skills/commit/SKILL.md +++ b/.agents/skills/commit/SKILL.md @@ -7,12 +7,11 @@ description: Write a git commit message and verify formatting before committing. When creating a commit for a patch: -- Run `bash tools/format.sh` if formatting has not been run since the last edits. +- Run `bash tools/pr-prep.sh` after the final edits to format the worktree and + update copyright years. - Most files should have a copyright, save files like gold files and .json files which don't take comments. -- Run `bash tools/copyright-update.sh` after the final edits. It updates each - tracked file's copyright to its most recent commit year. With a commit - argument it limits the update to files touched by that commit. -- Verify every changed or new file that carries a copyright header uses the current year before committing. +- Verify every changed or new file that carries a copyright header ends with + its most recent commit year before committing. - Write a short one-line summary (target: under ~60 characters). - Add a concise body (1-3 short paragraphs) focused on why the change is needed and how it resolves the issue. - Wrap all commit message lines at 72 characters or less. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c68518457..6d4fcc48a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,7 +18,8 @@ Please follow [best practices](https://github.com/trein/dev-best-practices/wiki/ When your code is ready to be submitted, read github's article about how to [submit a pull request](https://help.github.com/articles/creating-a-pull-request/) to begin the code review process and follow its directions. Before creaing a pull request, please do the following to make sure the patch is ready for review: -1. Run the tools/format.sh script to format the source code according to the repository's formatting standards. +1. Run `tools/pr-prep.sh` to format the source code and update copyright years + according to the repository's standards. 1. Verify that all AuTests pass (see the [README](https://github.com/yahoo/proxy-verifier/blob/master/README.md) for instructions on how to run the AuTests). 1. Verify that all unit tests pass (see the [README](https://github.com/yahoo/proxy-verifier/blob/master/README.md) for instructions on how to run the unit tests). diff --git a/tools/pr-prep.sh b/tools/pr-prep.sh new file mode 100755 index 000000000..54ba48e7f --- /dev/null +++ b/tools/pr-prep.sh @@ -0,0 +1,14 @@ +#! /usr/bin/env bash +# +# Prepare the worktree for a pull request. +# +# Copyright 2026, Verizon Media +# SPDX-License-Identifier: Apache-2.0 +# + +set -e + +tools_dir=$(dirname -- "$0") + +bash -e "${tools_dir}/format.sh" +bash -e "${tools_dir}/copyright-update.sh"