<!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>