Skip to content

[chore] Switch to SPDX license headers#94

Merged
line-o merged 1 commit into
eXist-db:mainfrom
joewiz:spdx-headers
May 20, 2026
Merged

[chore] Switch to SPDX license headers#94
line-o merged 1 commit into
eXist-db:mainfrom
joewiz:spdx-headers

Conversation

@joewiz

@joewiz joewiz commented May 18, 2026

Copy link
Copy Markdown
Member

[This response was co-authored with Claude Code. -Joe]

Per @line-o's request on #91, switch to SPDX-style license headers following the pattern adopted by eXist-db/monex#323.

Summary

  • Replaces the 17-line LGPL-2.1 boilerplate in every source file with a 2-line SPDX header
  • Copyright lines are preserved exactly — most files keep Copyright (C) 2016 Claudius Teodorescu; pom.xml and CryptoIT.java keep Copyright (C) 2016 The eXist-db Authors. No attribution change.
  • Net -232 lines across 15 source files

Implementation

The legacy template used ${organization} property substitution to share one boilerplate file across two <licenseSet> blocks. With the short SPDX form, that indirection caused the license plugin's strict-match to misfire. Replaced with two concrete templates (LGPL2.1-claudius-template.txt, LGPL2.1-existdb-template.txt), one per copyright holder — clearer and machine-checkable.

Also flipped strictCheck from false to true now that templates and file headers match exactly (the plugin had been warning about this for years).

Test plan

Coordination

This branches from main, not from exist-7-compat (#93). Whichever lands first, the other should rebase. The two PRs touch independent files except for pom.xml — that conflict is mechanical.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these headers on the templates files always crack me up…. what does that even mean

@duncdrum duncdrum left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, the test failures are unrelated.

joewiz added a commit to joewiz/crypto-exist-java-lib that referenced this pull request May 19, 2026
Same one-time fix as in eXist-db#93 / eXist-db#94 — GitHub disabled actions/cache@v2
in May 2026, breaking every push on the legacy workflow; and Maven
3.8.1+ blocks the http:// repository URLs that exist-apps-parent
1.11.0 still declares.

When eXist-db#93 lands this commit drops cleanly on rebase.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@joewiz

joewiz commented May 19, 2026

Copy link
Copy Markdown
Member Author

[This response was co-authored with Claude Code. -Joe]

CI status update:

  • Build step ✅ after updating the legacy CI workflow (GitHub disabled actions/cache@v2 last week, breaking the main workflow on every push) and overriding the inherited http:// eXist repo URLs to https:// — committed as 6471ab7
  • Test step 🔴 with the same 3 failures present on main against eXist 5.3.0 (2 AWS REST + 1 NegativeArraySize) — not introduced by this PR. The license-header change can't affect those.

If the CI red is concerning, #95 cleans up the test suite end-to-end (46/46 green). #94, #95, #93 should land together to leave the repo in a fully-green state.

joewiz added a commit to joewiz/crypto-exist-java-lib that referenced this pull request May 19, 2026
Same one-time fix as in eXist-db#93 / eXist-db#94 / eXist-db#97 — when this PR rebases onto
post-eXist-db#93 main, this commit drops cleanly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@codacy-production

codacy-production Bot commented May 19, 2026

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 0 duplication

Metric Results
Complexity 0
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@line-o

line-o commented May 19, 2026

Copy link
Copy Markdown
Member

@joewiz should this be rebased now or should it wait for #95

Replace the 17-line LGPL-2.1 boilerplate in every source file with a
2-line SPDX header, matching the pattern adopted by eXist-db/monex#323.

Copyright lines are preserved exactly: most files keep
"Copyright (C) 2016 Claudius Teodorescu"; pom.xml and CryptoIT.java
keep "Copyright (C) 2016 The eXist-db Authors".

Implementation:
- LGPL2.1-template.txt -> two concrete templates (one per copyright
  holder) so license:check can match without property substitution
- license-maven-plugin: switched to strictCheck=true now that the
  templates and file headers are exact matches

Verified with `mvn -B license:check` and `mvn -B compile` on Java 21.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@line-o line-o requested review from a team and duncdrum May 20, 2026 08:59

@line-o line-o left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@line-o line-o merged commit f7f2fde into eXist-db:main May 20, 2026
4 checks passed
joewiz added a commit to joewiz/crypto-exist-java-lib that referenced this pull request May 20, 2026
- SecureXmlParsers.java: switch to the SPDX 2-line header introduced in eXist-db#94
  (per @line-o, @duncdrum). New file, so eXist-db Authors copyright;
  pom.xml updated to include it in the existdb licenseSet and exclude
  it from the Claudius one.
- README: add a sentence noting the doctype gate is intentionally
  hardcoded for this conservative hardening round, and that opt-out
  follow-ups (e.g. an extra parameter or module toggle) for callers
  who legitimately need to validate signed docs with a DOCTYPE
  declaration would be welcome (per @duncdrum).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants