contributing: Use SPDX copyright tags in individually resolved file headers#7762
Open
wenzeslaus wants to merge 1 commit into
Open
contributing: Use SPDX copyright tags in individually resolved file headers#7762wenzeslaus wants to merge 1 commit into
wenzeslaus wants to merge 1 commit into
Conversation
…eaders Convert 91 files whose notices the bulk conversions left for a person: notices naming several holders, notices whose license text is separated from them by an author list, and a handful of one-off shapes. Holders are split into one line per person with a shared year range repeated on each line, keeping email addresses and affiliations as written. Author lists and other text interleaved with the old notices stay in place. The USA-CERL notices from 1992 in lib/linkm convert with the identifier under the CERL-era rule, without carrying over the "All rights reserved" phrase. In lib/gis/asprintf.c, with its own clause for the team next to a named one, the named holder keeps its years and the collective line is bare, following the v.delaunay precedent. 27 files remain for another round and are listed in the attached report: individual-held notices from 1993 on with no license text, and headers that need reading in full, such as the r.sun address block and the v.perturb textbook-algorithm attributions. Two of them are vendored web assets and belong with the third-party exclusions. The edits were generated as one reviewed replacement per file by a script that asserts each old text occurs exactly once and refuses anything it cannot resolve safely. The script was written and this conversion prepared with AI assistance (Claude Code with Opus 4.8 and Fable 5); the decisions are the author's.
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.
Converts 91 files whose notices the bulk conversions (#7743, #7756) left for a person: notices naming several holders, notices whose license text is separated from them by an author list, and a handful of one-off shapes.
A typical replacement:
The policy decisions were made during GRASS Community Meeting 2026 in San Michele all'Adige.
Like the other conversion PRs, this should technically merge after #7749, which defines "Other GRASS authors", but it does not have to.
The edits were generated as one reviewed replacement per file by a script that asserts each old text occurs exactly once and refuses anything it cannot resolve safely. The script was written and this conversion prepared with AI assistance (Claude Code with Opus 4.8 and Fable 5); the decisions are the author's.
Details: decisions, deferred files, and how it was checked (AI generated)
Decisions
lib/datetimenotices name two people joined by an ampersand; each gets a line with the shared year:1995 Bill Brown <brown@gis.uiuc.edu>and1995 Michael Shapiro.lib/linkmnotices,Copyright 1992 USA-CERL All rights reserved., convert with the identifier under the CERL-era rule of contributing: Use SPDX copyright tags in unlabeled file headers #7756. The "All rights reserved" phrase is not carried over: it grants nothing and contradicts the license the code has shipped under.lib/gis/asprintf.ccarries its own clause for the team next to a named one. Following the v.delaunay precedent of contributing: Use SPDX copyright tags in more complicated file headers #7751, the named holder keeps its years and the collective line is bare, so the team clause years 2002-2014 are not carried over. This is the only file in this PR where years from the old notice are not preserved.Adam Laza, GSoC 2016stays on one line as written, the same treatment as affiliations.d.legendnotices (...Development Team*) is treated as formatting, not text.man/build_check.py, deferred by contributing: Use SPDX copyright tags in unlabeled file headers #7756 because the pinned ruff hook rewrote it on the unmodified base, converts cleanly here: with the new header the hook accepts the file as it is.Left for another round (27 files)
lib/rst/interp_float,v.lrs.segment): adding an identifier would assert a license the file never stated, so they wait for their authors.r.sunaddress block with several email addresses, thev.perturbandv.normaltextbook-algorithm attributions,r.resamp.rst,r.surf.area,mswindows/osgeo4w/mysql_config, andutils/gitlog2changelog.py.man/jquery.fixedheadertable.min.js,man/parser_standard_options.css) that belong with the third-party exclusions.Each is listed with its verbatim notice in the attached
hand-deferred.md.Checked
The generating script asserts for every file that the old text occurs exactly once and that the trailing bytes do not change, and it refuses notices it cannot resolve safely; everything it refused is in the deferred list rather than half-converted. Across the 91 files: no license prose remains, the set of years on notice lines is unchanged everywhere except the asprintf case called out above, no emitted C line exceeds 78 columns, and
pre-commitover all files passes with nothing reformatted. The script (resolve_bare.py.txt), the conversion library it builds on from the earlier PRs (spdx_headers.py.txt), and the deferred report (hand-deferred.md) are attached.hand-deferred.md
resolve_bare.py.txt
spdx_headers.py.txt