diff --git a/analyzer/config/analyzer_version.json b/analyzer/config/analyzer_version.json index f978e36055..e63ce28982 100644 --- a/analyzer/config/analyzer_version.json +++ b/analyzer/config/analyzer_version.json @@ -1,8 +1,8 @@ { "version": { "major" : "6", - "minor" : "23", - "revision" : "0", + "minor" : "22", + "revision" : "2", "rc" : "" } } diff --git a/analyzer/tools/build-logger/tests/unit/test_paths.py b/analyzer/tools/build-logger/tests/unit/test_paths.py index c1ce67b3eb..5cfa9c5ae8 100644 --- a/analyzer/tools/build-logger/tests/unit/test_paths.py +++ b/analyzer/tools/build-logger/tests/unit/test_paths.py @@ -4,6 +4,7 @@ import os import shutil import tempfile +from typing import Mapping from . import BasicLoggerTest, empty_env, REPO_ROOT AVAILABLE_GNU_COMPILERS = [ @@ -13,6 +14,15 @@ ] +def append_host_LD_LIBRARY_PATH(env: Mapping[str, str]) -> Mapping[str, str]: + LD_LIBRARY_PATH = os.getenv("LD_LIBRARY_PATH") + if LD_LIBRARY_PATH: + if "LD_LIBRARY_PATH" not in env: + env["LD_LIBRARY_PATH"] = "" + env["LD_LIBRARY_PATH"] += ':' + LD_LIBRARY_PATH + return env + + class EscapingTests(BasicLoggerTest): def test_compiler_path1(self): """ @@ -242,6 +252,7 @@ def test_response_file(self): """Test clang-specific response files.""" logger_env = self.get_envvars() # clang might need Z3 + logger_env = append_host_LD_LIBRARY_PATH(logger_env) file = self.source_file binary = self.binary_file clang = shutil.which("clang") @@ -277,6 +288,7 @@ def test_response_file_contain_source_file(self): """ logger_env = self.get_envvars() # clang might need Z3 + logger_env = append_host_LD_LIBRARY_PATH(logger_env) file = self.source_file binary = self.binary_file clang = shutil.which("clang") diff --git a/setup.py b/setup.py index ef7c27276c..aa3f25b99b 100644 --- a/setup.py +++ b/setup.py @@ -141,7 +141,7 @@ def run(self): setuptools.setup( name="codechecker", - version="6.23.0", + version="6.22.2", author='CodeChecker Team (Ericsson)', author_email='codechecker-tool@googlegroups.com', description="CodeChecker is an analyzer tooling, defect database and " diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index ab9d4c3706..61b11d8ea3 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,6 +1,6 @@ name: codechecker base: core18 -version: '6.23.0' +version: '6.22.2' summary: CodeChecker is an analyzer tooling, defect database and viewer extension description: | CodeChecker is an analyzer tooling, defect database and viewer extension. @@ -33,7 +33,7 @@ parts: codechecker: plugin: python python-version: python3 - source: https://github.com/Ericsson/codechecker/archive/v6.23.0.tar.gz + source: https://github.com/Ericsson/codechecker/archive/v6.22.2.tar.gz build-packages: - curl - gcc-multilib diff --git a/web/client/codechecker_client/blame_info.py b/web/client/codechecker_client/blame_info.py index 9d02d7c70e..c6dd7f12c5 100644 --- a/web/client/codechecker_client/blame_info.py +++ b/web/client/codechecker_client/blame_info.py @@ -118,7 +118,7 @@ def assemble_blame_info( # being present in windows, so stuff like setting up # PYTHONPATH in parent CodeChecker before store is executed # are lost. - if sys.platform == "win32": + if sys.platform == "win32" or sys.platform == "darwin": file_blame_info = __collect_blame_info_for_files(file_paths) else: with ProcessPoolExecutor() as executor: diff --git a/web/client/codechecker_client/cmd/store.py b/web/client/codechecker_client/cmd/store.py index b0663bbb7d..1bcd67a9b8 100644 --- a/web/client/codechecker_client/cmd/store.py +++ b/web/client/codechecker_client/cmd/store.py @@ -370,8 +370,12 @@ def filter_source_files_with_comments( # being present in windows, so stuff like setting up # PYTHONPATH in parent CodeChecker before store is executed # are lost. - if sys.platform == "win32": + if sys.platform == "win32": #or sys.platform == "darwin": return get_source_file_with_comments(jobs) + elif sys.platform == "darwin": + import multiprocess + with multiprocess.Pool() as pool: + return get_source_file_with_comments(jobs, pool.map) else: with ProcessPoolExecutor() as executor: return get_source_file_with_comments(jobs, executor.map) @@ -449,6 +453,13 @@ def assemble_zip(inputs, zip_file, client, checker_labels: CheckerLabels): if sys.platform == "win32": analyzer_result_file_reports = parse_analyzer_result_files( analyzer_result_file_paths, checker_labels) + + elif sys.platform == "darwin": + import multiprocess + with multiprocess.Pool() as pool: + analyzer_result_file_reports = parse_analyzer_result_files( + analyzer_result_file_paths, checker_labels, pool.map) + else: with ProcessPoolExecutor() as executor: analyzer_result_file_reports = parse_analyzer_result_files( diff --git a/web/client/codechecker_client/cmd_line_client.py b/web/client/codechecker_client/cmd_line_client.py index 9cede31eea..a14aeecb89 100644 --- a/web/client/codechecker_client/cmd_line_client.py +++ b/web/client/codechecker_client/cmd_line_client.py @@ -1025,13 +1025,16 @@ def get_diff_local_dirs( filtered_report_hashes = [] context = webserver_context.get_context() + statuses_str = [ttypes.ReviewStatus._VALUES_TO_NAMES[x].lower() + for x in report_filter.reviewStatus] + base_results = get_report_dir_results( report_dirs, report_filter, context.checker_labels) + base_results = [res for res in base_results + if res.check_source_code_comments(statuses_str)] + new_results = get_report_dir_results( new_report_dirs, report_filter, context.checker_labels) - - statuses_str = [ttypes.ReviewStatus._VALUES_TO_NAMES[x].lower() - for x in report_filter.reviewStatus] new_results = [res for res in new_results if res.check_source_code_comments(statuses_str)] diff --git a/web/config/web_version.json b/web/config/web_version.json index f978e36055..e63ce28982 100644 --- a/web/config/web_version.json +++ b/web/config/web_version.json @@ -1,8 +1,8 @@ { "version": { "major" : "6", - "minor" : "23", - "revision" : "0", + "minor" : "22", + "revision" : "2", "rc" : "" } } diff --git a/web/server/codechecker_server/api/mass_store_run.py b/web/server/codechecker_server/api/mass_store_run.py index 0fd4bce90c..afeb63b81d 100644 --- a/web/server/codechecker_server/api/mass_store_run.py +++ b/web/server/codechecker_server/api/mass_store_run.py @@ -1323,10 +1323,15 @@ def store(self) -> int: runtime = round(time.time() - start_time, 2) zip_size_kb = round(zip_size / 1024) + tag_desc = "" + if self.__tag: + tag_desc = f", under tag '{self.__tag}'" + LOG.info("'%s' stored results (%s KB " - "/decompressed/) to run '%s' (id: %d) in " + "/decompressed/) to run '%s' (id: %d) %s in " "%s seconds.", self.user_name, - zip_size_kb, self.__name, run_id, runtime) + zip_size_kb, self.__name, run_id, tag_desc, + runtime) iso_start_time = datetime.fromtimestamp( start_time).isoformat() diff --git a/web/server/vue-cli/src/views/NewFeatures.vue b/web/server/vue-cli/src/views/NewFeatures.vue index d9ae2606cc..0993720f61 100644 --- a/web/server/vue-cli/src/views/NewFeatures.vue +++ b/web/server/vue-cli/src/views/NewFeatures.vue @@ -2,6 +2,31 @@ + + + + + + + CodeChecker failed to build on Ubuntu 22.04 in its previous release + because of two issues: some of our dependencies broke with the + release of python3.9, and we didn't support GNU Make-s new way of + creating build jobs. These issues are all fixed now, so CodeChecker + should work with the latest version of python and GNU Make! + + + +