Skip to content

Feat/allow parallel execution and pushes of ProjectRepos on two different machines#117

Merged
hannahlanzrath merged 4 commits intomainfrom
feat/allow_parallel_runs_of_projects
Feb 25, 2026
Merged

Feat/allow parallel execution and pushes of ProjectRepos on two different machines#117
hannahlanzrath merged 4 commits intomainfrom
feat/allow_parallel_runs_of_projects

Conversation

@hannahlanzrath
Copy link
Contributor

@hannahlanzrath hannahlanzrath commented Feb 12, 2026

Summary

This PR introduces a change to the output repository push logic to support parallel result pushes from multiple machines / instances of the from the same ProjectRepo plus corresponding tests and test changes.

The new test simulates two independent clones of the same CADET-RDM project pushing results to the same remote output repository.

@hannahlanzrath hannahlanzrath force-pushed the feat/allow_parallel_runs_of_projects branch 13 times, most recently from bac99fe to 9044edd Compare February 12, 2026 19:09
@schmoelder
Copy link
Contributor

Hey Hannah, thanks for putting this together. Just wondering, about the scope of this PR. Seems like there are some conflicts and some documentation related things which I thought we had already merged. Could you please check again if you were up to date on your base branch?

@hannahlanzrath hannahlanzrath force-pushed the feat/allow_parallel_runs_of_projects branch 2 times, most recently from fb51870 to 0eef9fd Compare February 19, 2026 08:12
@hannahlanzrath
Copy link
Contributor Author

Hey Hannah, thanks for putting this together. Just wondering, about the scope of this PR. Seems like there are some conflicts and some documentation related things which I thought we had already merged. Could you please check again if you were up to date on your base branch?

Whoops, should be fine now again.

@hannahlanzrath hannahlanzrath force-pushed the feat/allow_parallel_runs_of_projects branch 2 times, most recently from 430d71c to 61bbd5f Compare February 19, 2026 08:20
@schmoelder schmoelder linked an issue Feb 19, 2026 that may be closed by this pull request
Copy link
Contributor

@schmoelder schmoelder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed earlier, this PR takes a strategy where we try avoiding conflicts in the first place. by first pulling in new data before committing. However, this only works if a single commit is added. Also I noticed that when running a reset --hard, it nukes all local changes.

Instead, we could go another route and try to rebase. I'm not sure how well it handles this but we should try.


commit_obj = self.output_repo._git_repo.commit(output_branch_name)
output_repo_hash = commit_obj.hexsha
output_commit_message = commit_obj.message.replace("\n", "; ")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not really related to this PR but I don't really understand why we have a semicolon at the end of our commit messages...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no clue honestly. :D

@hannahlanzrath
Copy link
Contributor Author

hannahlanzrath commented Feb 20, 2026

Thanks for the review!

I see where I am introducing issues now, and I think I understand the problem better.

I have another idea that might be much simpler and cleaner:

Instead of appending to an existing log.tsv, we could simply read the run history and reconstruct the metadata into a new log.tsv on commit. That way we could avoid these issues altogether. What do you think?

@hannahlanzrath hannahlanzrath force-pushed the feat/allow_parallel_runs_of_projects branch 4 times, most recently from 6249f6a to 02bc99c Compare February 23, 2026 10:45
@hannahlanzrath
Copy link
Contributor Author

hannahlanzrath commented Feb 23, 2026

Okay so, with a fresh head I gave everything some thoughts again. And I have came to the conclusion that the test cases and issues that I thought about were more complex than the issue we actually have. So I have now just added rebase to our pull strategy when a conflict is hit. I tried it out on my machine and that worked with two different repos. :) So maybe you can give it a try again @schmoelder .

Copy link
Contributor

@schmoelder schmoelder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, I will test it later.

I agree, rebasing should work most of the time since we never edit the same line, and only add.

@hannahlanzrath hannahlanzrath force-pushed the feat/allow_parallel_runs_of_projects branch 2 times, most recently from e87a8ca to a412bed Compare February 23, 2026 11:46
@schmoelder
Copy link
Contributor

I'm not done with testing yet, but if push=False, this needs #119 to be merged first.

@schmoelder
Copy link
Contributor

ok, seems to have worked! 🥳

@hannahlanzrath hannahlanzrath force-pushed the feat/allow_parallel_runs_of_projects branch from a412bed to 44cff20 Compare February 25, 2026 14:00
@hannahlanzrath hannahlanzrath merged commit b53a480 into main Feb 25, 2026
5 checks passed
@hannahlanzrath hannahlanzrath deleted the feat/allow_parallel_runs_of_projects branch February 25, 2026 14:04
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

Successfully merging this pull request may close these issues.

Feature Request: Support for Parallel Case Execution

2 participants