Skip to content

Normalize the copyright line to the project's accepted form #765

Description

@fdesbiens

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions