From a80b56a1eb919b2858753199fab60bef3e5b4c30 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 23 Jul 2025 12:33:23 +0200 Subject: [PATCH 1/6] Modify README to match Example template --- cadetrdm/initialize_repo.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/cadetrdm/initialize_repo.py b/cadetrdm/initialize_repo.py index de98278..43d2907 100644 --- a/cadetrdm/initialize_repo.py +++ b/cadetrdm/initialize_repo.py @@ -233,22 +233,20 @@ def create_environment_yml(): def create_readme(): - readme_lines = ["# Project repo", "Your code goes in this repo.", "Please add a description here including: ", - "- authors", "- project", "- things we will find interesting later", "", "", - "Please update the environment.yml with your python environment requirements.", "", "", - "The output repository can be found at:", - "[output_repo]() (not actually set yet because no remote has been configured at this moment"] + readme_lines = ["## Output Repository", + "", + "The output data for this case study can be found here:", + "[Link to Output Repository]() (not actually set yet because no remote has been configured at this moment)"] write_lines_to_file("README.md", readme_lines, open_type="a") def create_output_readme(): - readme_lines = ["# Output repo", "Your results will be stored here.", "Please add a description here including: ", - "- authors", "- project", "- things we will find interesting later", "", "", - "The project repository can be found at:", - "[project_repo]() (not actually set yet because no remote has been configured at this moment"] + readme_lines = ["## Project Repository", + "", + "The project repository for this case study is available here:", + "[Link to Project Repository]() (not actually set yet because no remote has been configured at this moment)"] write_lines_to_file("README.md", readme_lines, open_type="a") def create_dockerfile(): - write_lines_to_file("Dockerfile", dockerfile_template, open_type="w") - + write_lines_to_file("Dockerfile", dockerfile_template, open_type="w") \ No newline at end of file From 7bf5200b8d845632a57fc757dbb4ca6159e7db87 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 23 Jul 2025 14:00:09 +0200 Subject: [PATCH 2/6] Expand output README to match template --- cadetrdm/initialize_repo.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cadetrdm/initialize_repo.py b/cadetrdm/initialize_repo.py index 43d2907..0a8bb9b 100644 --- a/cadetrdm/initialize_repo.py +++ b/cadetrdm/initialize_repo.py @@ -241,7 +241,12 @@ def create_readme(): def create_output_readme(): - readme_lines = ["## Project Repository", + readme_lines = ["# Output repository for Example Simulation with CADET", + "This repository stores the simulation results for RDM-Example. `CADET-RDM` automatically tracks all simulations that are started by running `main.py` from the corresponding project repository.", + "", + "Each simulation run creates a dedicated branch in this output repository. The results are saved within the `src` folder of the respective branch. Additionally, a `log.tsv` file in the main branch records metadata for all runs, uniquely linking each output branch to its originating run in the project repository.", + "", + "## Project Repository", "", "The project repository for this case study is available here:", "[Link to Project Repository]() (not actually set yet because no remote has been configured at this moment)"] From b322752d51d5975932ae48bb68cf6f039351b538 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 23 Jul 2025 14:34:25 +0200 Subject: [PATCH 3/6] Change repo_identifier to "Link to () Repository" --- cadetrdm/repositories.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cadetrdm/repositories.py b/cadetrdm/repositories.py index a7c00cd..2ac08b9 100644 --- a/cadetrdm/repositories.py +++ b/cadetrdm/repositories.py @@ -562,14 +562,14 @@ def add_remote(self, remote_url, remote_name=None): if output_repo.has_uncomitted_changes: output_repo.stash_all_changes() output_repo.checkout(output_repo.main_branch) - output_repo.add_list_of_remotes_in_readme_file("project_repo", self.remote_urls) + output_repo.add_list_of_remotes_in_readme_file("Link to Project Repository", self.remote_urls) output_repo.add("README.md") output_repo.commit("Add remote for project repo", verbosity=0, add_all=False) if self._metadata["is_output_repo"]: # This folder is an output repo project_repo = ProjectRepo(self.path.parent) project_repo.update_output_remotes_json() - project_repo.add_list_of_remotes_in_readme_file("output_repo", self.remote_urls) + project_repo.add_list_of_remotes_in_readme_file("Link to Output Repository", self.remote_urls) project_repo.add(project_repo.data_json_path) project_repo.add("README.md") project_repo.commit("Add remote for output repo", verbosity=0, add_all=False) @@ -745,7 +745,7 @@ def add_list_of_remotes_in_readme_file(self, repo_identifier: str, remotes_url_l line_to_be_modified = filelines_giving_output_repo[0] filelines[line_to_be_modified] = output_link_line elif len(filelines_giving_output_repo) == 0: - filelines.append("The output repo can be found at:\n") + filelines.append("The output repository can be found at:\n") #method can be used for project and output repositories, "the corresponding repository can be found at... would be better" filelines.append(output_link_line) else: raise RuntimeError(f"Multiple lines in the README.md at {readme_filepath}" @@ -1157,13 +1157,13 @@ def check(self, commit=True): # update urls in main branch of output_repo self.output_repo._git.checkout(self.output_repo.main_branch) - self.output_repo.add_list_of_remotes_in_readme_file("project_repo", self.remote_urls) + self.output_repo.add_list_of_remotes_in_readme_file("Link to Project Repository", self.remote_urls) if commit: self.output_repo.commit(message="Update remote links", add_all=False, verbosity=1) def update_output_remotes_json(self): output_repo_remotes = self.output_repo.remote_urls - self.add_list_of_remotes_in_readme_file("output_repo", output_repo_remotes) + self.add_list_of_remotes_in_readme_file("Link to Output Repository", output_repo_remotes) with open(self.data_json_path, "r") as file_handle: metadata = json.load(file_handle) @@ -1297,7 +1297,7 @@ def _get_new_output_branch(self, force=False): # update urls in main branch of output_repo output_repo._git.checkout(output_repo.main_branch) project_repo_remotes = self.remote_urls - output_repo.add_list_of_remotes_in_readme_file("project_repo", project_repo_remotes) + output_repo.add_list_of_remotes_in_readme_file("Link to Project Repository", project_repo_remotes) output_repo.commit("Update urls", verbosity=0) # Create the new branch From f9b37ff5d2d04d108d7daa80b0e6c1e12b2f8d54 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 23 Jul 2025 15:00:46 +0200 Subject: [PATCH 4/6] Add function to remove spaces before repo_identifier --- cadetrdm/initialize_repo.py | 2 +- cadetrdm/repositories.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cadetrdm/initialize_repo.py b/cadetrdm/initialize_repo.py index 0a8bb9b..e9852dd 100644 --- a/cadetrdm/initialize_repo.py +++ b/cadetrdm/initialize_repo.py @@ -248,7 +248,7 @@ def create_output_readme(): "", "## Project Repository", "", - "The project repository for this case study is available here:", + "The project repository for this case study is available here: ", "[Link to Project Repository]() (not actually set yet because no remote has been configured at this moment)"] write_lines_to_file("README.md", readme_lines, open_type="a") diff --git a/cadetrdm/repositories.py b/cadetrdm/repositories.py index 2ac08b9..1e4f7ba 100644 --- a/cadetrdm/repositories.py +++ b/cadetrdm/repositories.py @@ -740,7 +740,7 @@ def add_list_of_remotes_in_readme_file(self, repo_identifier: str, remotes_url_l with open(readme_filepath, "r") as file_handle: filelines = file_handle.readlines() filelines_giving_output_repo = [i for i in range(len(filelines)) - if filelines[i].startswith(f"[{repo_identifier}](")] + if filelines[i].strip().startswith(f"[{repo_identifier}](")] if len(filelines_giving_output_repo) == 1: line_to_be_modified = filelines_giving_output_repo[0] filelines[line_to_be_modified] = output_link_line From 7f7d4c4a250520dc2c24ed96af855227d0c4a599 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 23 Jul 2025 15:20:34 +0200 Subject: [PATCH 5/6] Add encoding="utf-8" to catch encoding error --- cadetrdm/repositories.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cadetrdm/repositories.py b/cadetrdm/repositories.py index 1e4f7ba..86e98bb 100644 --- a/cadetrdm/repositories.py +++ b/cadetrdm/repositories.py @@ -737,7 +737,7 @@ def add_list_of_remotes_in_readme_file(self, repo_identifier: str, remotes_url_l for output_repo_remote in remotes_url_list_http) + "\n" readme_filepath = self.path / "README.md" - with open(readme_filepath, "r") as file_handle: + with open(readme_filepath, "r", encoding="utf-8") as file_handle: filelines = file_handle.readlines() filelines_giving_output_repo = [i for i in range(len(filelines)) if filelines[i].strip().startswith(f"[{repo_identifier}](")] From 43cb00cb84a0e9049c2a814e9748d8f2b0807051 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 23 Jul 2025 16:39:01 +0200 Subject: [PATCH 6/6] Modify repo_identifier in test to match README identifier --- tests/test_git_adapter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_git_adapter.py b/tests/test_git_adapter.py index 9086c66..f53f343 100644 --- a/tests/test_git_adapter.py +++ b/tests/test_git_adapter.py @@ -277,10 +277,10 @@ def test_rdm_check(): repo.check() with open(repo.path / "README.md", "r") as handle: readme_lines = handle.readlines() - assert f'[output_repo]({ssh_url_to_http_url(new_output_url)})\n' in readme_lines + assert f'[Link to Output Repository]({ssh_url_to_http_url(new_output_url)})\n' in readme_lines with open(repo.output_repo.path / "README.md", "r") as handle: readme_lines = handle.readlines() - assert f'[project_repo]({ssh_url_to_http_url(new_project_url)})\n' in readme_lines + assert f'[Link to Project Repository]({ssh_url_to_http_url(new_project_url)})\n' in readme_lines def test_copy_external_data():