The copyright line in this repository is written four different ways. As of 2026-09-22 there are 3645 lines that do not match the project's accepted form:
| Variant |
Count |
(c) YYYY-present Eclipse ThreadX contributors |
3568 |
Copyright (C) YYYY Eclipse ThreadX contributors |
75 |
(c) YYYY Eclipse ThreadX Contributors |
2 |
The accepted form is Copyright (c) YYYY Eclipse ThreadX contributors.
Rules
Exactly four transformations, applied to our own notice only:
| From |
To |
Copyright (c) YYYY-present Eclipse ThreadX contributors |
Copyright (c) YYYY Eclipse ThreadX contributors |
Copyright (c) YYYY-present Eclipse ThreadX Contributors |
Copyright (c) YYYY Eclipse ThreadX contributors |
Copyright (C) YYYY Eclipse ThreadX contributors |
Copyright (c) YYYY Eclipse ThreadX contributors |
Copyright (c) YYYY Eclipse ThreadX Contributors |
Copyright (c) YYYY Eclipse ThreadX contributors |
The year is kept as written. 2024-present becomes 2024, not 2026 — bumping it would assert a copyright year the file has not earned, which is a different act from fixing a format.
Scope boundary
Only the Eclipse ThreadX contributors line is touched. Copyright (C) appears widely in this tree as part of third-party notices — libgit2, Alibaba Group, ETH Zurich, The Internet Society, Arm, Express Logic, Cadence and others — and none of it is ours to edit, whatever its capitalisation.
Watch for a file where dropping -present would leave two identical copyright lines, one already carrying the plain year. There was one such file across the six repositories when this was measured; it needs collapsing by hand rather than by the script.
Timing
Start of the cycle, not the end. Release preparation already rewrites version constants across most of the tree, and two tree-wide mechanical diffs in one window means no way to tell which one broke a port that CI does not build. Landing this early also gives in-flight pull requests a full cycle to absorb the conflict rather than hitting them at the cut.
Regenerate, do not rebase
The transformation is mechanical, so at merge time branch fresh from dev and re-run it rather than replaying a stale diff through hundreds of trivial conflicts. What is reviewed here is the rules and the boundary, not the diff — the diff is disposable and will be regenerated.
The pull request also carries
A scripts/check_copyright.sh enforcing the four rules above, wired into the existing repo_checks.yml beside the AI disclosure check, so this cannot drift back. It has to land with the sweep rather than before it, or it fails on every line the sweep is about to fix.
Its own commit SHA appended to .git-blame-ignore-revs, which can only be done after it merges.
Counts above were measured on 2026-09-22 and will drift. Re-measure before starting.
The copyright line in this repository is written four different ways. As of 2026-09-22 there are 3645 lines that do not match the project's accepted form:
(c) YYYY-present Eclipse ThreadX contributorsCopyright (C) YYYY Eclipse ThreadX contributors(c) YYYY Eclipse ThreadX ContributorsThe accepted form is
Copyright (c) YYYY Eclipse ThreadX contributors.Rules
Exactly four transformations, applied to our own notice only:
Copyright (c) YYYY-present Eclipse ThreadX contributorsCopyright (c) YYYY Eclipse ThreadX contributorsCopyright (c) YYYY-present Eclipse ThreadX ContributorsCopyright (c) YYYY Eclipse ThreadX contributorsCopyright (C) YYYY Eclipse ThreadX contributorsCopyright (c) YYYY Eclipse ThreadX contributorsCopyright (c) YYYY Eclipse ThreadX ContributorsCopyright (c) YYYY Eclipse ThreadX contributorsThe year is kept as written.
2024-presentbecomes2024, not2026— bumping it would assert a copyright year the file has not earned, which is a different act from fixing a format.Scope boundary
Only the Eclipse ThreadX contributors line is touched.
Copyright (C)appears widely in this tree as part of third-party notices — libgit2, Alibaba Group, ETH Zurich, The Internet Society, Arm, Express Logic, Cadence and others — and none of it is ours to edit, whatever its capitalisation.Watch for a file where dropping
-presentwould leave two identical copyright lines, one already carrying the plain year. There was one such file across the six repositories when this was measured; it needs collapsing by hand rather than by the script.Timing
Start of the cycle, not the end. Release preparation already rewrites version constants across most of the tree, and two tree-wide mechanical diffs in one window means no way to tell which one broke a port that CI does not build. Landing this early also gives in-flight pull requests a full cycle to absorb the conflict rather than hitting them at the cut.
Regenerate, do not rebase
The transformation is mechanical, so at merge time branch fresh from
devand re-run it rather than replaying a stale diff through hundreds of trivial conflicts. What is reviewed here is the rules and the boundary, not the diff — the diff is disposable and will be regenerated.The pull request also carries
A
scripts/check_copyright.shenforcing the four rules above, wired into the existingrepo_checks.ymlbeside the AI disclosure check, so this cannot drift back. It has to land with the sweep rather than before it, or it fails on every line the sweep is about to fix.Its own commit SHA appended to
.git-blame-ignore-revs, which can only be done after it merges.Counts above were measured on 2026-09-22 and will drift. Re-measure before starting.