ginkgo-project / ginkgo

Numerical linear algebra software package
https://ginkgo-project.github.io/
BSD 3-Clause "New" or "Revised" License
415 stars 90 forks source link

Release 1.8.0 to master #1622

Closed tcojean closed 5 months ago

tcojean commented 5 months ago

This should be the same as #1621 but for the master branch, including all the updated commits.

Please check the README extensively, as it is the main point of failure (changes develop -> master) together with the main CMakeLists.txt

codecov[bot] commented 5 months ago

Codecov Report

Attention: Patch coverage is 91.90069% with 199 lines in your changes missing coverage. Please review.

Project coverage is 90.03%. Comparing base (49242ff) to head (e7b0127).

Files Patch % Lines
core/config/stop_config.cpp 12.50% 35 Missing :warning:
core/config/preconditioner_config.cpp 63.51% 27 Missing :warning:
core/solver/multigrid.cpp 84.34% 18 Missing :warning:
core/config/config_helper.hpp 77.04% 14 Missing :warning:
core/device_hooks/common_kernels.inc.cpp 0.00% 9 Missing :warning:
core/solver/cb_gmres.cpp 47.05% 9 Missing :warning:
core/base/workspace_aliases.hpp 86.66% 8 Missing :warning:
core/base/segmented_array.cpp 87.03% 7 Missing :warning:
core/config/dispatch.hpp 45.45% 6 Missing :warning:
core/preconditioner/batch_jacobi.cpp 89.09% 6 Missing :warning:
... and 25 more
Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #1622 +/- ## ========================================== - Coverage 91.33% 90.03% -1.31% ========================================== Files 688 758 +70 Lines 56097 61155 +5058 ========================================== + Hits 51238 55059 +3821 - Misses 4859 6096 +1237 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

yhmtsai commented 5 months ago
diff --git a/benchmark/test/test_framework.py.in b/benchmark/test/test_framework.py.in
diff --git a/benchmark/test/test_framework.py.in b/benchmark/test/test_framework.py.in
index 48f3ca608b..62c4293e7c 100644
--- a/benchmark/test/test_framework.py.in
+++ b/benchmark/test/test_framework.py.in
@@ -22,7 +22,8 @@ denumberify_paths = [
     "rhs_norm",
     "max_relative_norm2",
 ]
-detypenameify_key_starts = ["generate(", "apply(", "advanced_apply(", "copy(", "check("]
+detypenameify_key_starts = [
+    "generate(", "apply(", "advanced_apply(", "copy(", "check("]
 empty_string_paths = ["filename"]
 empty_array_paths = [
     "recurrent_residuals",
@@ -148,9 +149,7 @@ def compare_output_impl(
         )
     )
     ignore_patterns = [
-        "This is Ginkgo",  # version numbers + tag
-        "    the .* module is",  # version numbers + tag
-        "    running with core module",  # version numbers + tag
+        "    the .* module is",  # version numbers
         "DEBUG: (begin|end  ) (allocate|free)",  # allocations
     ]
     typename_patterns = [
@@ -179,7 +178,8 @@ def compare_output_impl(
         ignore_patterns=ignore_patterns,
         replace_patterns=typename_patterns,
 empty_string_paths = ["filename"]
 empty_array_paths = [
     "recurrent_residuals",
@@ -148,9 +149,7 @@ def compare_output_impl(
         )
     )
     ignore_patterns = [
-        "This is Ginkgo",  # version numbers + tag
-        "    the .* module is",  # version numbers + tag
-        "    running with core module",  # version numbers + tag
+        "    the .* module is",  # version numbers
         "DEBUG: (begin|end  ) (allocate|free)",  # allocations
     ]
     typename_patterns = [
@@ -179,7 +178,8 @@ def compare_output_impl(
         ignore_patterns=ignore_patterns,
         replace_patterns=typename_patterns,
     )
-    expected_stdout_processed = sanitize_json_text(open(expected_stdout).read())
+    expected_stdout_processed = sanitize_json_text(
+        open(expected_stdout).read())
     expected_stderr_processed = sanitize_text(
         open(expected_stderr).read(),
         ignore_patterns=ignore_patterns,
@@ -190,7 +190,8 @@ def compare_output_impl(
         print("FAIL: stdout differs")
         print(
             "\n".join(
-                difflib.unified_diff(expected_stdout_processed, result_stdout_processed)
+                difflib.unified_diff(
+                    expected_stdout_processed, result_stdout_processed)
             )
         )
         failed = True
@@ -198,7 +199,8 @@ def compare_output_impl(
         print("FAIL: stderr differs")
         print(
             "\n".join(
-                difflib.unified_diff(expected_stderr_processed, result_stderr_processed)
+                difflib.unified_diff(
+                    expected_stderr_processed, result_stderr_processed)
             )
         )
         failed = True

this is diff between develop and this branch I think the ignore_patterns should be the same I will also suggest revert other format changes in this file to keep the master and develop less gap the following changes in stderr are unnecessary

+This is Ginkgo 1.8.0 (master)
+    running with core module 1.8.0 (master)
tcojean commented 5 months ago

Thanks for catching this diff Mike, now the diff with develop looks good. I have no idea where all this came from

ginkgo-bot commented 5 months ago

Error: The following files need to be formatted:

accessor/accessor_helper.hpp
accessor/block_col_major.hpp
accessor/cuda_helper.hpp
accessor/hip_helper.hpp
accessor/index_span.hpp
accessor/math.hpp
accessor/range.hpp
accessor/reduced_row_major.hpp
accessor/reduced_row_major_reference.hpp
accessor/reference_helper.hpp
accessor/row_major.hpp
accessor/scaled_reduced_row_major.hpp
accessor/scaled_reduced_row_major_reference.hpp
accessor/utils.hpp
dev_tools/oneapi/fake_interface/cooperative_groups.cuh
dev_tools/oneapi/working_directory/trick/cooperative_groups.hpp
dev_tools/oneapi/working_directory/trick/dim3_t.hpp
dev_tools/oneapi/working_directory/trick/reduction.hpp
dev_tools/oneapi/working_directory/trick/sorting.hpp
dev_tools/oneapi/working_directory/trick/thread_ids.hpp
examples/adaptiveprecision-blockjacobi/adaptiveprecision-blockjacobi.cpp
examples/cb-gmres/cb-gmres.cpp
examples/custom-matrix-format/custom-matrix-format.cpp
examples/custom-matrix-format/stencil_kernel.cu
examples/custom-stopping-criterion/custom-stopping-criterion.cpp
examples/ginkgo-overhead/ginkgo-overhead.cpp
examples/ginkgo-ranges/ginkgo-ranges.cpp
examples/heat-equation/heat-equation.cpp
examples/ilu-preconditioned-solver/ilu-preconditioned-solver.cpp
examples/inverse-iteration/inverse-iteration.cpp
examples/ir-ilu-preconditioned-solver/ir-ilu-preconditioned-solver.cpp
examples/iterative-refinement/iterative-refinement.cpp
examples/minimal-cuda-solver/minimal-cuda-solver.cpp
examples/mixed-multigrid-preconditioned-solver/mixed-multigrid-preconditioned-solver.cpp
examples/mixed-multigrid-solver/mixed-multigrid-solver.cpp
examples/mixed-precision-ir/mixed-precision-ir.cpp
examples/multigrid-preconditioned-solver-customized/multigrid-preconditioned-solver-customized.cpp
examples/multigrid-preconditioned-solver/multigrid-preconditioned-solver.cpp
examples/nine-pt-stencil-solver/nine-pt-stencil-solver.cpp
examples/papi-logging/papi-logging.cpp
examples/performance-debugging/performance-debugging.cpp
examples/poisson-solver/poisson-solver.cpp
examples/preconditioned-solver/preconditioned-solver.cpp
examples/preconditioner-export/preconditioner-export.cpp
examples/schroedinger-splitting/schroedinger-splitting.cpp
examples/simple-solver-logging/simple-solver-logging.cpp
examples/three-pt-stencil-solver/three-pt-stencil-solver.cpp
include/ginkgo/core/log/papi.hpp
third_party/SuiteSparse/wrapper32.cpp
third_party/SuiteSparse/wrapper64.cpp

You can find a formatting patch under Artifacts here or run format! if you have write access to Ginkgo

sonarcloud[bot] commented 5 months ago

Quality Gate Passed Quality Gate passed

Issues
286 New issues
47 Accepted issues

Measures
9 Security Hotspots
77.3% Coverage on New Code
7.0% Duplication on New Code

See analysis details on SonarCloud

pratikvn commented 5 months ago

There seems to be some issue with format ? Is that expected ?

tcojean commented 5 months ago

The format job relies on the base branch (master) which isn't the same format as develop. The format bot is incorrect. Maybe in the future we should base all GithubCI scripts on develop, like we do for e.g. the mirroring

upsj commented 5 months ago

I think we should try to stick with pull_request_target for security reasons, basing things on develop would be a bit harder.

In that vein, I actually have a suggestion: We would have much less work if master was closer to develop - what we could do there would be after merging the release PR into develop, we could create a commit setting the tag to master and immediately revert it, pointing master to the intermediate state before reversal. That way, commits between master and develop are not duplicated, and we have little to no effort in reviewing release PRs to master.