Skip to content

systemtests: archive and compare iterations.log for implicit coupling #755

Closed
AdityaGupta716 wants to merge 4 commits intoprecice:developfrom
AdityaGupta716:systemtests/archive-iterations-logs
Closed

systemtests: archive and compare iterations.log for implicit coupling #755
AdityaGupta716 wants to merge 4 commits intoprecice:developfrom
AdityaGupta716:systemtests/archive-iterations-logs

Conversation

@AdityaGupta716
Copy link

Archives precice-*-iterations.log files from case directories into
iterations-logs/ on every run, and compares them by SHA-256 hash against
a reference sidecar (.iterations-hashes.json) to catch implicit-coupling
regressions.

What this does

  • _collect_iterations_logs() finds all precice-*-iterations.log files across each case directory
  • __archive_iterations_logs() copies them into iterations-logs/, prefixing with the case name when multiple cases are present to avoid filename collisions
  • __compare_iterations_hashes() reads the reference sidecar and fails fast on any hash mismatch, missing log, or unexpected extra log
  • Hash check runs before fieldcompare in run() so regressions are caught early with a clear message
  • run_for_reference_results() writes the .iterations-hashes.json sidecar automatically alongside the reference tar.gz at reference generation time

Backward compatibility

If no .iterations-hashes.json sidecar exists for a test, the hash check is skipped and the test runs as before. Existing tests are unaffected until reference results are regenerated.

Closes #440

@AdityaGupta716
Copy link
Author

hi @MakisH plz review

@MakisH MakisH added GSoC Contributed in the context of the Google Summer of Code systemtests labels Mar 16, 2026
@MakisH
Copy link
Member

MakisH commented Mar 23, 2026

This is almost identical to #743 (which was opened first), without referring to it. This is very bad practice (if copied without reference: plagiarism, if both using the same GenAI tool without disclosure: futuristic plagiarism).

I do not mind neither collaboration nor modern tools, but please disclose them. Copying from each other without attribution is not accepted.

@AdityaGupta716
Copy link
Author

@MakisH yea they are almost similar but the thing is that i was checking out new issue and the issues where no one was working on but i see that prnjal had opened a pr on the same thing i have worked on (heat exchanger )and i was irritated and i also saw him taking a few more of other ppls pr just adding some improvements on it i was going to point out but i had ur words in mind that said "work on the issue take ur time maintainers will pick the best one" so i didnt point it out cz normally u ask to assign

@MakisH
Copy link
Member

MakisH commented Mar 23, 2026

@AdityaGupta716 I notice the racing between various GSoC contributors. This is bound to happen, due to the volume, and assigning non-collaborators is not the solution.

The problem in this case is the identical code. This can happen in trivial PRs, but it cannot happen by chance in such complex and long PRs. I have already found such PRs from both you and @PranjalManhgaye that were almost identical:

The right thing to do (addressed now to everyone) is to disclose:

  • the previous work (other PRs) and the reason that a new one was needed. There are also proper technical ways to do this (e.g., build on top of the respective branch).
  • any GenAI tools used, which can lead to such authorship issues.

From my side, I just see duplicate PRs that I need to sort out to review the original one. It is clear to me that GSoC is a place to learn, so this is one thing to learn for the future.

From my side, sorry if I am only seeing this too late, but the PRs I reviewed today were too complex and too many to ignore the similarities.

@AdityaGupta716
Copy link
Author

@MakisH sry for this i will keep it in mind but i did review his pr it was nice only difference was Mine returns a (bool, reason) tuple from the hash comparison so the caller gets a specific error message,Mine adds a debug log when no iterations logs are found
his puts the sidecar generation in generate_reference_results.py which might be a better place for it
like normally i would point out things i would like to add in his pr but i was irritated from him so i opened a new one and once more i am sry for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

duplicate GSoC Contributed in the context of the Google Summer of Code systemtests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Archive and compare iterations.log

2 participants