<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>FWIW, when I've thought about the topic of copyright and licenses
before, I think there are several aspects that can be separated.</p>
<p>One is a syntactic-only check, as the in-flight Skara PR may
provide. I think having a syntactic-only check is Skara is
reasonable.<br>
<br>
A semantic check is "does file F have the proper license for its
role in the project?" For example, GPL vs GPL w the classpath
exception or "@test /nodynamiccopyright/" for certain langtools
tests, etc.<br>
<br>
These checks are complicated enough and have enough change over
time that I don't think they are appropriate for Skara. However,
they could be accommodated by check/test that lived in the
repository and was evolved with the repository.</p>
<p>-Joe<br>
</p>
<div class="moz-cite-prefix">On 12/9/2024 11:32 AM, Archie Cobbs
wrote:<br>
</div>
<blockquote type="cite" cite="mid:CANSoFxsd1e_Se9yo1iLuAU8MTXXX7MTjfP3wdfWBsZJMA1XV5Q@mail.gmail.com">
<div dir="ltr">
<div>OK thanks. Apologies for getting confused, I'm not familiar
with the skara code so I'm not always sure what I'm looking
at.</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I
personally think Skara shouldn't do that, but it is a topic
that might be worth discussing for a future Enhancement.</blockquote>
<div><br>
</div>
<div>I think it's a good idea, but only to the extent that "the
right thing to do" is well-defined and algorithmically
decidable (so the likelihood of false positives is virtually
zero).<br>
</div>
<div><br>
</div>
<div>There seems to be some debate about whether copyright
updates are required for "significant" changes or all changes;
only the latter case is "well-defined" so this idea would
depend on confirmation of an "all changes" policy - that is,
unless someone can encode "significant" into an algorithm.<br>
</div>
<div><br>
</div>
<div>In other words, it seems like a sufficiently conservative
implementation (zero false positives) would be a net win.<br>
</div>
<div><br>
</div>
<div>-Archie<br>
</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Mon, Dec 9, 2024 at 1:16 PM
Kevin Rushforth <<a href="mailto:kevin.rushforth@oracle.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">kevin.rushforth@oracle.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div> No, The Skara PR in question isn't proposing to do this.
Rather it is checking that _if_ the Copyright header is
updated, it is syntactically correct.<br>
<br>
It would be an item for further discussion to have Skara
actually get into the business of whether the copyright
header should be updated and what the copyright year(s)
should be. I personally think Skara shouldn't do that, but
it is a topic that might be worth discussing for a future
Enhancement.<br>
<br>
-- Kevin<br>
<br>
<br>
<div>On 12/9/2024 10:37 AM, Archie Cobbs wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Bleh, ignore my comment. I didn't realize the
PR#1702 you referenced is already proposing doing
this!</div>
<div><br>
</div>
<div>-Archie<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Mon, Dec 9, 2024 at
10:45 AM Archie Cobbs <<a href="mailto:archie.cobbs@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">archie.cobbs@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>Thanks for working on this... something of a
thankless task :)</div>
<div><br>
</div>
<div>I'm sure you've considered this but I'll ask
anyway. Would it make (more or less) sense to try
and enforce the policy on the front-end?</div>
<div><br>
</div>
<div>By that I mean adding another checkbox
requirement to skara's handling of PR's: "🔲
Change must update copyright dates where
applicable"<br>
</div>
<div><br>
</div>
<div>The check could start out being conservative:</div>
<div>
<ul>
<li>Only applies to files with certain
extensions and/or matching some filter list</li>
<li>Only applies to files containing a
recognizable copyright text line</li>
</ul>
<div>-Archie<br>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Mon, Dec 9,
2024 at 7:06 AM Magnus Ihse Bursie <<a href="mailto:magnus.ihse.bursie@oracle.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">magnus.ihse.bursie@oracle.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>I felt responsibility for the .github files,
and wanted to check if there were more build
system files needed updating. So I ran a more
comprehensive script, and discovered a *lot*
more files that needed updating. Like a
thousand or so...<br>
</p>
<p>I have opened a series of issues starting at
<a href="https://bugs.openjdk.org/browse/JDK-8345793" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8345793</a>
and going up to <a href="https://bugs.openjdk.org/browse/JDK-8345805" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8345805</a>
to update these headers.</p>
<p>I agree, this should be automated. We're
starting to slowly get there, see <a href="https://github.com/openjdk/skara/pull/1702" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/openjdk/skara/pull/1702</a>
for a first step.</p>
<p>/Magnus<br>
</p>
<div>On 2024-12-03 16:45, Archie Cobbs wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Dumb question...</div>
<div><br>
</div>
<div>It seems like the thing with updating
copyright years in source files could be
better automated. At least, couldn't there
be a test that fails if you forget?<br clear="all">
</div>
<div><br>
</div>
<div>FWIW my little updater script says that
these files still need to be updated to
2024:</div>
<div style="margin-left:40px"><span style="font-family:monospace"><br>
</span></div>
<div style="margin-left:40px"><span style="font-family:monospace">.github/actions/config/action.yml<br>
.github/actions/do-build/action.yml<br>
.github/actions/get-bootjdk/action.yml<br>
.github/actions/get-bundles/action.yml<br>
.github/actions/get-msys2/action.yml<br>
.github/scripts/gen-build-failure-report.sh<br>
.github/scripts/gen-test-summary.sh<br>
.github/workflows/build-cross-compile.yml<br>
.github/workflows/test.yml<br>
src/java.base/share/classes/jdk/internal/org/xml/sax/Attributes.java<br>
src/java.base/share/classes/jdk/internal/org/xml/sax/InputSource.java<br>
src/java.base/share/classes/jdk/internal/org/xml/sax/SAXException.java<br>
src/java.base/share/classes/jdk/internal/org/xml/sax/SAXParseException.java<br>
src/java.base/share/classes/jdk/internal/org/xml/sax/XMLReader.java<br>
src/java.base/share/classes/jdk/internal/org/xml/sax/helpers/DefaultHandler.java<br>
src/java.base/share/classes/jdk/internal/platform/Metrics.java<br>
test/hotspot/jtreg/compiler/vectorization/runner/BasicIntOpTest.java<br>
test/hotspot/jtreg/compiler/vectorization/runner/BasicLongOpTest.java<br>
test/hotspot/jtreg/compiler/whitebox/DeoptimizeFramesTest.java</span></div>
<div><br>
</div>
<div>-Archie<br>
</div>
<div><br>
</div>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature">Archie
L. Cobbs<br>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
<div><br clear="all">
</div>
<br>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature">Archie L. Cobbs<br>
</div>
</blockquote>
</div>
<div><br clear="all">
</div>
<br>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature">Archie L. Cobbs<br>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
<div><br clear="all">
</div>
<br>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature">Archie L. Cobbs<br>
</div>
</blockquote>
</body>
</html>