Adopt the CodeMatters copyright - #755
Open
alexander-yevsyukov wants to merge 5 commits into
Open
Conversation
The repository's copyright holder changes from TeamDev to CodeMatters, Lda. Add the `CodeMatters Open-Source` IntelliJ profile, make it the default, and re-stamp every source header that carried the TeamDev notice. The profile as first drafted carried `/*`, ` * `, and ` */` inside its `notice` value. IntelliJ stores a notice as bare text and adds comment markers per language, so the markers would have been emitted twice in `.kt` headers and as C-style markers in `.sh`, `.py`, and `.xml` files. The value is stored bare, matching `TeamDev_Open_Source.xml`. The draft also lacked `settings/@default`, which is what `update_copyright.py` reads to resolve the notice; it is restored, and `module2copyright` now names the same profile so the IDE and the script agree. Headers were stamped by `update-copyright`. Thirteen files it filters out were stamped through its own `updated_text()`, so their rendering is identical: `.gitignore`, which has no extension for `style_for()` to map, and the twelve files under `io/spine/dependency/build/`, which `is_excluded()` drops because it tests every path segment against `EXCLUDED_DIRS` and so mistakes that source package for Gradle's output directory. That check belongs to the shared `agents` repository and is left for a fix there. `TeamDev_Open_Source.xml` stays: `migrate` distributes `.idea` to consumer repositories while preserving each consumer's own `profiles_settings.xml`, so repositories still on the TeamDev profile must be able to resolve it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The comment explaining why `profiles_settings.xml` is preserved listed `TeamDev Open-Source` as the profile open-source repositories keep. That is now one of two: config distributes `CodeMatters Open-Source` alongside it, so a consumer can migrate on its own schedule. Say so, and say why it matters here: with both profiles shipped, this file is the only thing deciding which notice a consumer's headers get, which is the reason the preservation fails closed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Two attribution strings are baked into build output rather than into source headers, so re-stamping the headers left them naming TeamDev: the Dokka footer rendered on every generated API page, and `Implementation-Vendor` written into each published JAR's manifest. Point both at CodeMatters, Lda. so the artifacts agree with the sources they are built from. Already-published JARs keep the old vendor; only builds from here on carry the new one. `Bundle-License` is untouched — the licence is unchanged, only the holder. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The comment named `CodeMatters Open-Source` and `TeamDev Open-Source` as the notice a repository adopts. They are profile names; a profile contains a notice. The block exists to be precise about which profile applies, so the two should not be blurred there. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The notice reproduced the Apache-2.0 appendix verbatim, including its `http://` link to the licence text. Serve the reader a secure link instead: `https://www.apache.org/licenses/LICENSE-2.0`. Re-stamp every header from the amended profile so the sources and the profile stay identical. `LICENSE` keeps the upstream text unchanged — it is the licence itself, not our notice, and is reproduced as published. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes the repository's copyright holder from TeamDev to CodeMatters, Lda., and re-stamps every source header from the new IntelliJ profile.
What changed
The profile. Adds
.idea/copyright/CodeMatters_Open_Source.xmland makes it the default inprofiles_settings.xml.TeamDev_Open_Source.xmlstays:migratedistributes.ideato consumer repositories while preserving each consumer's ownprofiles_settings.xml, so a repository still on the TeamDev profile must be able to resolve it. Both open-source profiles now ship side by side, which is what lets a consumer migrate on its own schedule.261 source headers, re-stamped from that profile. The notice is the Apache-2.0 appendix boilerplate, verbatim, with
https://in place of the appendix'shttp://link.Two attribution strings baked into build output, which re-stamping headers does not reach:
DokkaExts.kt)Implementation-Vendorwritten into each published JAR's manifest (write-manifest.gradle.kts)migrate's comment explaining whyprofiles_settings.xmlis preserved, which namedTeamDev Open-Sourceas the open-source profile.For the reviewer
The diff is 264 files, but 259 changed only inside their copyright header block. Verified two independent ways: stripping the header from the
masterandHEADversions and comparing the remainder, and diffing everything from*/onward. The real review surface is 5 files — the two profile XMLs, the two string literals above, andmigrate's comment.That matters most for
buildSrc/src/main/kotlin/io/spine/dependency/, where 95 files appear in the diff: no version constant, artifact coordinate, or BOM changed. Nothing was silently bumped.Commits are split so the mechanical re-stamp is separable from the changes that carry meaning.
Known follow-up, not addressed here
The notice is wrapped to 97 characters, which fits the block (
*prefix → 100) and hash (#→ 99) comment styles but overflows the XML style (~→ 101, against a 100-char limit) inbuildSrc/quality/checkstyle.xml,checkstyle-suppressions.xml, andpmd.xml. Nothing breaks — detekt does not scan XML — but the fix belongs in the profile (rewrap the notice body to ≤96), and it would propagate to every consumer repo, so it is left as a deliberate decision rather than folded in silently.Separately,
update_copyright.pyskips 12 files underio/spine/dependency/build/: itsis_excluded()tests every path segment againstEXCLUDED_DIRS, which contains"build", so it mistakes that source package for Gradle's output directory. Those files were stamped through the script's ownupdated_text()so their rendering is identical. The fix belongs in theagentsrepository.Verification
./gradlew -p buildSrc buildpasses on JDK 17 at HEAD.dokkaGenerateis not registered inbuildSrc, so no Dokka run applies. No version gate — this repository has no rootversion.gradle.kts.🤖 Generated with Claude Code