You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kie.apache.org by "jomarko (via GitHub)" <gi...@apache.org> on 2025/12/23 14:18:49 UTC

[PR] kie-issues#1670: Migrate Apache licenses check to apache rat 0.17.x [incubator-kie-optaplanner]

jomarko opened a new pull request, #3189:
URL: https://github.com/apache/incubator-kie-optaplanner/pull/3189

   Closes: https://github.com/apache/incubator-kie-issues/issues/1670
   
   <!--
   Thank you for submitting this pull request.
   
   Please provide all relevant information as outlined below. Feel free to delete
   a section if that type of information is not available.
   -->
   
   ### JIRA
   
   <!-- Add a JIRA ticket link if it exists. -->
   <!-- Example: https://issues.redhat.com/browse/PLANNER-1234 -->
   
   ### Referenced pull requests
   
   <!-- Add URLs of all referenced pull requests if they exist. This is only required when making
   changes that span multiple apache repositories and depend on each other. -->
   <!-- Example:
   - https://github.com/kiegroup/droolsjbpm-build-bootstrap/pull/1234
   - https://github.com/apache/incubator-kie-drools/pull/3000
   - https://github.com/apache/incubator-kie-optaplanner/pull/899
   - etc.
   -->
   
   ### Checklist
   - [ ] Documentation updated if applicable.
   - [ ] Release notes updated if applicable.
   - [ ] Upgrade recipe provided if applicable.
   
   <details>
   <summary>
   How to replicate CI configuration locally?
   </summary>
   
   Build Chain tool does "simple" maven build(s), the builds are just Maven commands, but because the repositories relates and depends on each other and any change in API or class method could affect several of those repositories there is a need to use [build-chain tool](https://github.com/kiegroup/github-action-build-chain) to handle cross repository builds and be sure that we always use latest version of the code for each repository.
    
   [build-chain tool](https://github.com/kiegroup/github-action-build-chain) is a build tool which can be used on command line locally or in Github Actions workflow(s), in case you need to change multiple repositories and send multiple dependent pull requests related with a change you can easily reproduce the same build by executing it on Github hosted environment or locally in your development environment. See [local execution](https://github.com/kiegroup/github-action-build-chain#local-execution) details to get more information about it.
   </details>
   
   <details>
   <summary>
   How to retest this PR or trigger a specific build:
   </summary>
   
   - for <b>pull request checks</b>  
     Please add comment: <b>Jenkins retest this</b>
   
   - for a <b>specific pull request check</b>  
     please add comment: <b>Jenkins (re)run [optaplanner|optaplanner-quickstarts] tests</b>
     
   - for a <b>full downstream build</b> 
     - for <b>jenkins</b> job: 
       please add comment: <b>Jenkins run fdb</b>
     - for <b>github actions</b> job: 
       add the label `run_fdb`
   
   - for a <b>compile downstream build</b>  
     please add comment: <b>Jenkins run cdb</b>
   
   - for a <b>full production downstream build</b>  
     please add comment: <b>Jenkins execute product fdb</b>
   
   - for an <b>upstream build</b>  
     please add comment: <b>Jenkins run upstream</b>
   
   - for <b>quarkus branch checks</b>  
     Run checks against Quarkus current used branch  
     Please add comment: <b>Jenkins run quarkus-branch</b>
   
   - for a <b>quarkus branch specific check</b>  
     Run checks against Quarkus current used branch  
     Please add comment: <b>Jenkins (re)run [optaplanner|optaplanner-quickstarts] quarkus-branch</b>
   
   - for <b>quarkus main checks</b>  
     Run checks against Quarkus main branch  
     Please add comment: <b>Jenkins run quarkus-main</b>
   
   - for a <b>specific quarkus main check</b>  
     Run checks against Quarkus main branch  
     Please add comment: <b>Jenkins (re)run [optaplanner|optaplanner-quickstarts] quarkus-branch</b>
   
   - for <b>quarkus lts checks</b>  
     Run checks against Quarkus lts branch  
     Please add comment: <b>Jenkins run quarkus-lts</b>
   
   - for a <b>specific quarkus lts check</b>  
     Run checks against Quarkus lts branch  
     Please add comment: <b>Jenkins (re)run [optaplanner|optaplanner-quickstarts] quarkus-lts</b>
   
   - for <b>native checks</b>  
     Run native checks  
     Please add comment: <b>Jenkins run native</b>
   
   - for a <b>specific native check</b>  
     Run native checks 
     Please add comment: <b>Jenkins (re)run [optaplanner|optaplanner-quickstarts] native</b>
   
   - for <b>native lts checks</b>  
     Run native checks against quarkus lts branch
     Please add comment: <b>Jenkins run native-lts</b>
   
   - for a <b>specific native lts check</b>  
     Run native checks against quarkus lts branch
     Please add comment: <b>Jenkins (re)run [optaplanner|optaplanner-quickstarts] native-lts</b>
   
   </details>
   
   ### CI Status
   
    You can check OptaPlanner repositories CI status from [Chain Status webpage](https://apache.github.io/incubator-kie-optaplanner/).
   
   <details>
   <summary>
   How to backport a pull request to a different branch?
   </summary>
   
   In order to automatically create a **backporting pull request** please add one or more labels having the following format `backport-<branch-name>`, where `<branch-name>` is the name of the branch where the pull request must be backported to (e.g., `backport-7.67.x` to backport the original PR to the `7.67.x` branch).
   
   > **NOTE**: **backporting** is an action aiming to move a change (usually a commit) from a branch (usually the main one) to another one, which is generally referring to a still maintained release branch. Keeping it simple: it is about to move a specific change or a set of them from one branch to another.
   
   Once the original pull request is successfully merged, the automated action will create one backporting pull request per each label (with the previous format) that has been added.
   
   If something goes wrong, the author will be notified and at this point a manual backporting is needed.
   
   > **NOTE**: this automated backporting is triggered whenever a pull request on `main` branch is labeled or closed, but both conditions must be satisfied to get the new PR created.
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org


Re: [PR] kie-issues#1670: Migrate Apache licenses check to apache rat 0.17.x [incubator-kie-optaplanner]

Posted by "kbowers-ibm (via GitHub)" <gi...@apache.org>.
kbowers-ibm merged PR #3189:
URL: https://github.com/apache/incubator-kie-optaplanner/pull/3189


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org


Re: [PR] kie-issues#1670: Migrate Apache licenses check to apache rat 0.17.x [incubator-kie-optaplanner]

Posted by "Copilot (via GitHub)" <gi...@apache.org>.
Copilot commented on code in PR #3189:
URL: https://github.com/apache/incubator-kie-optaplanner/pull/3189#discussion_r2660550628


##########
.github/workflows/ci_check_license_headers.yaml:
##########
@@ -33,9 +33,16 @@ jobs:
 
       - name: Download Apache RAT
         run: |
-          curl -LO https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.16.1/apache-rat-0.16.1.jar
+          curl -LO https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.17/apache-rat-0.17.jar
 
       - name: Run Apache RAT
         run: |
-          java -jar apache-rat-0.16.1.jar -d . -E .rat-excludes | grep "== File:" && echo "The files listed above are missing license headers." && exit 1 || echo "All files have license headers."
-
+          java -jar apache-rat-0.17.jar -E .rat-excludes -- . > .rat-reports 2>&1
+          if grep -q "^! Unapproved:" .rat-reports || grep -q "INFO:   Unapproved:  [1-9]" .rat-reports; then
+            echo "❌ Apache RAT check FAILED - Files with unapproved licenses found:"
+            echo ""
+            sed -n '/Files with unapproved licenses/,/^\*\*\*\*\*/p' .rat-reports | grep -v "^\*\*\*\*\*"

Review Comment:
   The sed command extracts content between "Files with unapproved licenses" and asterisks, but this assumes a specific output format from Apache RAT 0.17. If the output format has changed from version 0.16.1, this pattern might not match, causing the check to silently pass even when there are unapproved files. Additionally, the pattern is fragile: if RAT outputs any line with five or more asterisks before the actual section marker, the extraction will stop prematurely. Consider verifying this output format matches Apache RAT 0.17's actual output.
   ```suggestion
               # Print detailed information about unapproved files without relying on fragile section delimiters
               grep "^! Unapproved:" .rat-reports || true
               grep "INFO:   Unapproved:  [1-9]" .rat-reports || true
   ```



##########
.github/workflows/ci_check_license_headers.yaml:
##########
@@ -33,9 +33,16 @@ jobs:
 
       - name: Download Apache RAT
         run: |
-          curl -LO https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.16.1/apache-rat-0.16.1.jar
+          curl -LO https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.17/apache-rat-0.17.jar
 
       - name: Run Apache RAT
         run: |
-          java -jar apache-rat-0.16.1.jar -d . -E .rat-excludes | grep "== File:" && echo "The files listed above are missing license headers." && exit 1 || echo "All files have license headers."
-
+          java -jar apache-rat-0.17.jar -E .rat-excludes -- . > .rat-reports 2>&1
+          if grep -q "^! Unapproved:" .rat-reports || grep -q "INFO:   Unapproved:  [1-9]" .rat-reports; then

Review Comment:
   The grep pattern "INFO:   Unapproved:  [1-9]" has a critical flaw: it requires exactly two spaces between "Unapproved:" and the digit. If Apache RAT 0.17 outputs a different number of spaces (e.g., single space or variable spacing based on number alignment), this pattern will fail to detect unapproved files. Consider using a more flexible pattern like "INFO:.*Unapproved:[ ]+[1-9]" or verify the exact output format from Apache RAT 0.17 to ensure this pattern matches correctly.
   ```suggestion
             if grep -q "^! Unapproved:" .rat-reports || grep -Eq "INFO:.*Unapproved:[ ]+[1-9]" .rat-reports; then
   ```



##########
.github/workflows/ci_check_license_headers.yaml:
##########
@@ -33,9 +33,16 @@ jobs:
 
       - name: Download Apache RAT
         run: |
-          curl -LO https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.16.1/apache-rat-0.16.1.jar
+          curl -LO https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.17/apache-rat-0.17.jar
 
       - name: Run Apache RAT
         run: |
-          java -jar apache-rat-0.16.1.jar -d . -E .rat-excludes | grep "== File:" && echo "The files listed above are missing license headers." && exit 1 || echo "All files have license headers."
-
+          java -jar apache-rat-0.17.jar -E .rat-excludes -- . > .rat-reports 2>&1
+          if grep -q "^! Unapproved:" .rat-reports || grep -q "INFO:   Unapproved:  [1-9]" .rat-reports; then

Review Comment:
   The grep patterns on line 41 check for two different formats. However, if neither pattern matches (because Apache RAT 0.17 uses a different output format than expected), the condition will evaluate to false and the workflow will report success even when there are unapproved licenses. Consider adding validation to ensure the RAT command executed successfully and produced expected output before checking for failures.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org


Re: [PR] kie-issues#1670: Migrate Apache licenses check to apache rat 0.17.x [incubator-kie-optaplanner]

Posted by "yesamer (via GitHub)" <gi...@apache.org>.
yesamer commented on PR #3189:
URL: https://github.com/apache/incubator-kie-optaplanner/pull/3189#issuecomment-3884346771

   @jomarko I assume you reviewed the below suggestions. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org


Re: [PR] kie-issues#1670: Migrate Apache licenses check to apache rat 0.17.x [incubator-kie-optaplanner]

Posted by "jomarko (via GitHub)" <gi...@apache.org>.
jomarko commented on PR #3189:
URL: https://github.com/apache/incubator-kie-optaplanner/pull/3189#issuecomment-3895745150

   Pushed updates to Apache RAT check was to ensure filename with Unapproved license is listed in github action. See https://github.com/apache/incubator-kie-kogito-runtimes/pull/4154#issuecomment-3895735361


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org


Re: [PR] kie-issues#1670: Migrate Apache licenses check to apache rat 0.17.x [incubator-kie-optaplanner]

Posted by "yesamer (via GitHub)" <gi...@apache.org>.
yesamer commented on PR #3189:
URL: https://github.com/apache/incubator-kie-optaplanner/pull/3189#issuecomment-3718259040

   @jomarko Can you please double-check if the below suggestions are reasonable? 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org