<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>On 2024-12-09 21:39, Joseph D. Darcy wrote:</p>
    <blockquote type="cite" cite="mid:40cf00ef-c5dd-4c25-81c1-eed2e14a3429@oracle.com">
      
      <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>
      </p>
    </blockquote>
    Agreed.<br>
    <blockquote type="cite" cite="mid:40cf00ef-c5dd-4c25-81c1-eed2e14a3429@oracle.com">
      <p> <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>
    </blockquote>
    <p>Agreed. Note that this check can be done by only having access to
      the source code; no git metadata is required.</p>
    <p>But there is a third kind of check, and that is if the year
      should be updated. This check can only be done with some
      additional metadata present. Skara is in a unique position to
      enforce this, since it knows when a commit is being added and the
      current year at that time. This cannot be checked by a test that
      has only access to the source code. It *can* be done locally if
      you have the git repo available, but that is not the case for e.g.
      how we run tests in the Oracle CI.</p>
    <p>So I believe that, if we can -- as Archie described it -- find a
      "well-defined and algorithmically decidable" rule for copyright
      year updates, that it should be enforced by Skara. <br>
    </p>
    <p>/Magnus<br>
    </p>
    <blockquote type="cite" cite="mid:40cf00ef-c5dd-4c25-81c1-eed2e14a3429@oracle.com">
      <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>
    </blockquote>
  </body>
</html>