Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--trim-path-prefix broken in 6.24.0 #4354

Open
dholm opened this issue Sep 24, 2024 · 2 comments
Open

--trim-path-prefix broken in 6.24.0 #4354

dholm opened this issue Sep 24, 2024 · 2 comments

Comments

@dholm
Copy link

dholm commented Sep 24, 2024

Describe the bug

We just upgraded from CodeChecker 6.23.1 to 6.24.0 and the --trim-path-prefix option to CodeChecker parse appears to have stopped working as the generated HTML pages are using the absolute path to the build folders on our Jenkins machines now.

CodeChecker version

[INFO 2024-09-24 06:54] - CodeChecker analyzer version:
---------------------------------------------------------------
Kind                 | Version
---------------------------------------------------------------
Base package version | 6.24.0
Package build date   | 2024-08-27T14:08
Git commit ID (hash) | ea795071d62637c69300f4528b6c46c75b2274bc
Git tag information  | 6.24
---------------------------------------------------------------

[INFO 2024-09-24 06:54] - CodeChecker web version:
------------------------------------------------------------------------------
Kind                                | Version
------------------------------------------------------------------------------
Base package version                | 6.24.0
Package build date                  | 2024-08-27T14:08
Git commit ID (hash)                | ea795071d62637c69300f4528b6c46c75b2274bc
Git tag information                 | 6.24
Server supported Thrift API version | 6.58
Client Thrift API version           | 6.58
------------------------------------------------------------------------------

To Reproduce

After analyzing the code, run CodeChecker parse --export html --print-steps --trim-path-prefix "<absolute-path-to-source-code>" --ignore <our-skipfile> --output "<build-dir>/code-checker-report" "<build-dir>/code-checker".
Steps to reproduce the behaviour:

Expected behaviour

In the report generated by 6.23.1 it looks like this:
image

In the report generated by 6.24.0 it looks like this:
image

Desktop (please complete the following information)

  • OS: GNU/Linux
  • Browser: Firefox
  • Version: 130.0
@dholm
Copy link
Author

dholm commented Sep 25, 2024

We suspect that this also impacts skipfile because our reports now includes all the files in our skipfile as well.

@eseiler
Copy link

eseiler commented Nov 19, 2024

I encountered the same issue.

Changing report.file.id to report.file.path makes it work again.

Apparently, file.id is the absolute path and file.path the path with (optional) trimming applied.

Version Info
CodeChecker analyzer version:
---------------------------------------------------------------
Kind                 | Version                                 
---------------------------------------------------------------
Base package version | 6.24.4                                  
Package build date   | 2024-10-28T15:46                        
Git commit ID (hash) | 454d978191ed42c8202a2244dc092dfb6fd8c83a
Git tag information  | 6.24.4                                  
---------------------------------------------------------------

CodeChecker web version:
------------------------------------------------------------------------------
Kind                                | Version                                 
------------------------------------------------------------------------------
Base package version                | 6.24.4                                  
Package build date                  | 2024-10-28T15:46                        
Git commit ID (hash)                | 454d978191ed42c8202a2244dc092dfb6fd8c83a
Git tag information                 | 6.24.4                                  
Server supported Thrift API version | 6.58                                    
Client Thrift API version           | 6.58                                    
------------------------------------------------------------------------------

I directly edited the contents installed by pip (/<venv-path>/lib/python3.12/site-packages/codechecker_report_converter/report/output/html/html.py)

Edit:

This might be more robust (i.e., not have unintended side-effects):

diff --git a/tools/report-converter/codechecker_report_converter/report/output/html/html.py b/tools/report-converter/codechecker_report_converter/report/output/html/html.py
index c102199c..85bacfed 100644
--- a/tools/report-converter/codechecker_report_converter/report/output/html/html.py
+++ b/tools/report-converter/codechecker_report_converter/report/output/html/html.py
@@ -309,7 +309,7 @@ class HtmlBuilder:
 
         table_reports = map(lambda data: {
             'link': os.path.basename(data['link']),
-            'file-path': data['report']['fileId'],
+            'file-path': self.files[data['report']['fileId']]['filePath'],
             'report-hash': data['report']['reportHash'],
             'checker-name': data['report']['checker']['name'],
             'checker-url': data['report']['checker']['url'],

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

No branches or pull requests

2 participants