From 57852d60e72302f742fe76bac8bb4247b9543de6 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:23 +0200 Subject: [PATCH 01/14] Update readthedocs to access dependency groups Co-authored-by: Hannah Lanzrath --- .readthedocs.yaml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 7a910a2..0ebc37b 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -7,21 +7,17 @@ version: 2 # Set the version of Python and other tools you might need build: - os: ubuntu-22.04 + os: ubuntu-lts-latest tools: - python: "mambaforge-4.10" + python: "mambaforge-latest" + jobs: + install: + - pip install .[all] --group docs # Build documentation in the docs/ directory with Sphinx sphinx: - configuration: docs/source/conf.py + configuration: docs/source/conf.py # Optionally declare the Python requirements required to build your docs conda: environment: environment.yml - -python: - install: - - method: pip - path: . - extra_requirements: - - docs From 3f9f5e02d6e50a0c6f6e5d0086ce900001f2d932 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:23 +0200 Subject: [PATCH 02/14] Update and add meta files for GitHub Co-authored-by: Hannah Lanzrath --- .gitignore | 1 + AUTHORS.md | 8 +++ CITATION.bib | 2 + CODE_OF_CONDUCT.md | 128 +++++++++++++++++++++++++++++++++++++++++++++ README.md | 5 +- SECURITY.md | 17 ++++++ 6 files changed, 159 insertions(+), 2 deletions(-) create mode 100644 AUTHORS.md create mode 100644 CITATION.bib create mode 100644 CODE_OF_CONDUCT.md create mode 100644 SECURITY.md diff --git a/.gitignore b/.gitignore index 881fb92..f27c67d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ dist tmp .ipynb_checkpoints /tests/non_rdm_repo/ +.vscode diff --git a/AUTHORS.md b/AUTHORS.md new file mode 100644 index 0000000..92c994f --- /dev/null +++ b/AUTHORS.md @@ -0,0 +1,8 @@ +# Contributors + +* [Ronald Jäpel](https://github.com/ronald-jaepel) (Forschungszentrum Juelich GmbH, IBG-1: Biotechnology, Juelich, Germany) +* [Hannah Lanzrath](https://github.com/hannahlanzrath) (Forschungszentrum Juelich GmbH, IBG-1: Biotechnology, Juelich, Germany) +* [Johannes Schmölder](https://github.com/schmoelder) (Forschungszentrum Juelich GmbH, IBG-1: Biotechnology, Juelich, Germany) +* [Katharina Paul](https://github.com/katharinapaul2403) (Forschungszentrum Juelich GmbH, IBG-1: Biotechnology, Juelich, Germany) +* [Daniel Klauß](https://github.com/daklauss) (Forschungszentrum Juelich GmbH, IBG-1: Biotechnology, Juelich, Germany) +* [Eric von Lieres](https://github.com/lieres) (Forschungszentrum Juelich GmbH, IBG-1: Biotechnology, Juelich, - Germany) \ No newline at end of file diff --git a/CITATION.bib b/CITATION.bib new file mode 100644 index 0000000..c88f646 --- /dev/null +++ b/CITATION.bib @@ -0,0 +1,2 @@ +% As an open-source project, CADET-RDM relies on the support and recognition from users and researchers to thrive. +% Therefore, we kindly ask that any publications or projects leveraging the capabilities of CADET-RDM acknowledge its creators and their contributions by citing an adequate selection of our publications. \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..81bf3d9 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +cadet@fz-juelich.de. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/README.md b/README.md index 4a0d94d..41023c9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Welcome to CADET-RDM, a project by the Forschungszentrum Jülich. -This tool aims to help track and version control: +This toolbox aims to help track and version control: - input data - code - software versions @@ -12,4 +12,5 @@ and allow for easy sharing, integration, and reproduction of generated results. ## Documentation -You can read the documentation [here](https://cadet-rdm.readthedocs.io). \ No newline at end of file +The documentation contains a user guide with helpful information on how to install CADET-RDM, how to quickly start working with it and a more detailed explaination of its tools. +The documentation can be found [here](https://cadet-rdm.readthedocs.io). \ No newline at end of file diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..3fa3663 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,17 @@ +# Security Policy + +## 1. No Network Dependencies + +CADET operates entirely offline and does not require any network access, nor does it handle sensitive information such as personal identifiers. This eliminates common attack vectors like network exploits or data breaches. + +## 2. Code Integrity and Contribution Reviews + +While there are no significant security risks associated with using CADET, we maintain strict controls over our source code. Any external contributions to the project are thoroughly reviewed and must meet our contribution guidelines. All pull requests are checked to ensure they do not introduce vulnerabilities. + +## 3. Dependency Management + +CADET does not rely on third-party libraries that introduce network or verification components. We carefully manage dependencies to ensure they are up-to-date and secure. + +## 4. Reporting Vulnerabilities + +Though CADET does not involve typical security risks, we encourage users and contributors to report any unexpected behavior or potential vulnerabilities they may discover. Please contact us via cadet@fz-juelich.de if you believe you've found a security issue. From ee934fb8576ae237732b7ee5f31c50e243b4f21b Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:23 +0200 Subject: [PATCH 03/14] Update private repositories in tests Co-authored-by: Hannah Lanzrath --- tests/case.yml | 2 +- tests/test_container_docker.py | 2 +- tests/test_container_podman.py | 2 +- tests/test_git_adapter.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/case.yml b/tests/case.yml index 7f597b9..3636853 100644 --- a/tests/case.yml +++ b/tests/case.yml @@ -1,6 +1,6 @@ ProjectRepo: path: tmp/template - url: git@github.com:ronald-jaepel/rdm_testing_template.git + url: git@github.com:cadet/RDM-Testing-Template.git branch: main Options: commit_message: Trying out new things diff --git a/tests/test_container_docker.py b/tests/test_container_docker.py index 484ca51..8624200 100644 --- a/tests/test_container_docker.py +++ b/tests/test_container_docker.py @@ -12,7 +12,7 @@ def test_run_dockered(): rdm_example = ProjectRepo( path=WORK_DIR / 'template', - url="git@github.com:ronald-jaepel/rdm_testing_template.git", + url="git@github.com:cadet/RDM-Testing-Template.git", suppress_lfs_warning=True ) diff --git a/tests/test_container_podman.py b/tests/test_container_podman.py index 65d5c19..325e462 100644 --- a/tests/test_container_podman.py +++ b/tests/test_container_podman.py @@ -17,7 +17,7 @@ def test_run_in_podman(): rdm_example = ProjectRepo( path=WORK_DIR / 'template', - url="git@github.com:ronald-jaepel/rdm_testing_template.git", + url="git@github.com:cadet/RDM-Testing-Template.git", branch="main", suppress_lfs_warning=True ) diff --git a/tests/test_git_adapter.py b/tests/test_git_adapter.py index f53f343..7d684dc 100644 --- a/tests/test_git_adapter.py +++ b/tests/test_git_adapter.py @@ -158,7 +158,7 @@ def try_initialize_from_remote(): if Path("test_repo_from_remote").exists(): delete_path("test_repo_from_remote") ProjectRepo.clone( - url="git@github.com:ronald-jaepel/rdm_testing_template.git", + url="git@github.com:cadet/RDM-Testing-Template.git", to_path="test_repo_from_remote" ) assert try_init_gitpython_repo("test_repo_from_remote") From ccee45bd731c4a1463eaf27f79654539651a77f7 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:24 +0200 Subject: [PATCH 04/14] Add sphinx_subfigure to configuration Co-authored-by: Hannah Lanzrath --- docs/source/conf.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 8e5a1e4..f5eb50c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -94,6 +94,9 @@ sitemap_locales = [None] sitemap_url_scheme = "{link}" +### Figure +extensions.append("sphinx_subfigure") + # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] @@ -107,7 +110,7 @@ myst_enable_extensions = [ "dollarmath", "amsmath", - "colon_fence", + "colon_fence" ] # -- Options for HTML output ------------------------------------------------- From 6065a7243272525baad769ad66ec73d0ae305517 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:24 +0200 Subject: [PATCH 05/14] Fix typos and directy speech Co-authored-by: Hannah Lanzrath --- .readthedocs.yaml | 4 ++-- docs/Makefile | 2 +- docs/source/bibliography.md | 4 ++-- docs/source/conf.py | 9 ++++++--- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 0ebc37b..df03fed 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -5,7 +5,7 @@ # Required version: 2 -# Set the version of Python and other tools you might need +# Set the version of Python and other tools that might be needed build: os: ubuntu-lts-latest tools: @@ -18,6 +18,6 @@ build: sphinx: configuration: docs/source/conf.py -# Optionally declare the Python requirements required to build your docs +# Optionally declare the Python requirements required to build the docs conda: environment: environment.yml diff --git a/docs/Makefile b/docs/Makefile index f18b212..d568ce7 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,7 +1,7 @@ # Minimal makefile for Sphinx documentation # -# You can set these variables from the command line. +# These variables can be set from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build SPHINXPROJ = CADET-RDM diff --git a/docs/source/bibliography.md b/docs/source/bibliography.md index 814c151..dce5e8c 100644 --- a/docs/source/bibliography.md +++ b/docs/source/bibliography.md @@ -7,6 +7,6 @@ ``` ```{bibliography} ./references.bib +:all: :style: unsrt -``` - +``` \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index f5eb50c..6249797 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -30,7 +30,7 @@ # -- General configuration --------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# extensions coming with Sphinx (named 'sphinx.ext.*') or custom # ones. # Extensions @@ -43,7 +43,7 @@ '.rst': 'restructuredtext', '.ipynb': 'myst-nb', '.myst': 'myst-nb', - '.md': 'myst-nb', + '.md': 'myst-nb' } ## Numpydoc @@ -74,12 +74,15 @@ ## Viewcode extensions.append("sphinx.ext.viewcode") +## View figures +extensions.append("sphinx_subfigure") + ## Copy Button extensions.append("sphinx_copybutton") ## BibTeX extensions.append("sphinxcontrib.bibtex") -bibtex_bibfiles = ['references.bib'] +bibtex_bibfiles = ["references.bib"] # -- Internationalization ------------------------------------------------ # specifying the natural language populates some key tags From ed6e724f6865c0a7816a7e8b5d0f3aab7bf397a8 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:24 +0200 Subject: [PATCH 06/14] Update introduction in documentation extend documentation to explain creation of new directories with path_to_repo, change parameter name from output_folder_name to output_directory_name, modify descriptions to use path and directory instead of folder Fix Unicode Error by escaping path name in function description by using "\\U..." instead of "\U..." rename output_folder to output_directory Change remote path in test_git_adapter.py function try_initialize_from_remote from git@github.com:ronald-jaepel/rdm_testing_template.git to git@github.com:cadet/RDM-Testing-Template.git to account for renaming changes Update location for remote repository rdm-testing template Explain optional cookiecutter support in more detail Modify documentation: expand upon introduction, add description of file structure, rename CLI documentation Fix typos Change output_repo_name to output_directory_name Update branch name documentation, change folder to directory in documentation and descriptions Add AUTHORS, CITATION, CODE_OF_CONDUCT, SECURITY.md Remove unimplemented cli function to load results from another repository via cadet-rdm-cache.json from documentation Expand rdm clone documentation Change AUTHORS.md order, use indirect speech in documentation, fix function parameters in documentation Modify getting started, add .vscode to gitignore Add Introduction in docs Add Git-LFS installation guide, modify documentation structure Add myst_parser, modify bibliography.md to cite all references Add image directory, modify image creation with sphinx syntax Co-authored-by: Hannah Lanzrath --- docs/source/index.md | 1 + .../user_guide/figures/RDM-output-commits.png | Bin 0 -> 102724 bytes .../figures/RDM-project-commits.png | Bin 0 -> 109815 bytes .../user_guide/figures/RDM-structure.png | Bin 0 -> 80099 bytes docs/source/user_guide/introduction.md | 68 ++++++++++++++++++ 5 files changed, 69 insertions(+) create mode 100644 docs/source/user_guide/figures/RDM-output-commits.png create mode 100644 docs/source/user_guide/figures/RDM-project-commits.png create mode 100644 docs/source/user_guide/figures/RDM-structure.png create mode 100644 docs/source/user_guide/introduction.md diff --git a/docs/source/index.md b/docs/source/index.md index be0fd70..3c33002 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -6,6 +6,7 @@ :caption: User guide :hidden: +user_guide/introduction user_guide/installation user_guide/getting-started user_guide/CLI-interface diff --git a/docs/source/user_guide/figures/RDM-output-commits.png b/docs/source/user_guide/figures/RDM-output-commits.png new file mode 100644 index 0000000000000000000000000000000000000000..a8b8c1dbba50606152d4deb49ebcb4c506661fc9 GIT binary patch literal 102724 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 literal 0 HcmV?d00001 diff --git a/docs/source/user_guide/figures/RDM-project-commits.png b/docs/source/user_guide/figures/RDM-project-commits.png new file mode 100644 index 0000000000000000000000000000000000000000..69074d7f7da65a209ff3840df7c0142c7ccd60e8 GIT binary patch literal 109815 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�XXRInwc#vUJ~{<2Grscgf=V?!A+G%NE0_DL>*k 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 literal 0 HcmV?d00001 diff --git a/docs/source/user_guide/introduction.md b/docs/source/user_guide/introduction.md new file mode 100644 index 0000000..d867dc3 --- /dev/null +++ b/docs/source/user_guide/introduction.md @@ -0,0 +1,68 @@ +# Introduction + +Welcome to CADET-Research Data Management, a project by the Forschungszentrum Jülich. + +This toolbox aims to help track and version control: + +* input data + +* code + +* software versions + +* configurations + +* metadata + +* output data + +and allow for easy sharing, integration, and reproduction of the generated results. + + +The tools of CADET-RDM can be applied to any project with the structure of an RDM project. + + +## RDM repository architecture + +CADET-RDM projects are structured into two distinct repositories. + +1. The **project repository** that contains the input data, code, software and configurations to execute the computations. The output repository is a directory within the project repository. +2. The **output repository** that contains the results of these computations, including all calculations, models and figures created by running the project code. Also stored in the output directory is the metadata used to create the specific result. This includes e.g. the software versions and requirements. + +:::{figure} figures/RDM-structure.png +:width: 295 +:alt: Project commits + +Caption for the first figure. +::: +::: + +Both the **project** and the **output** repository are their own git repositories. The commit architecture of CADET-RDM allows for easy tracking and reproducing of results and their respective project code. + +## RDM commit architecture + +Every run of the project code creates a new output branch (*result branch*) in the **output directory**. The repository on this new branch uniquely contains the files created by the execution of the project code.
At the same time, for every run of the project code the `run_history` directory on the master branch of the output repository is updated. This directory is unique to the master branch and contains the metadata and software specifications for every branch in the output repository. This directory also links the results in the output branch to the corresponding commit in the project repository used to create them. For transparency and easy accessibility, the most important specifications for every result branch are also documented in the `log.tsv` on the master branch of the output repository. + +```{eval-rst} +.. subfigure:: AB + :gap: 8px + :subcaptions: below + + .. image:: figures/RDM-project-commits.png + :alt: Descriptive Text 1 + :width: 300px + + .. image:: figures/RDM-output-commits.png + :alt: Descriptive Text 2 + :width: 420px + + Caption for both images. + + +Because of this simultanious log of the metadata and the environment used to create a specific output, results can be reproduced easily. + +## User function + +The tools of CADET-RDM can be used through the command line interface (CLI) or by executing script in python or in jupyter. + +The following documentation contains an installation guide, a user guide to quickly start using CADET-RDM and more detailed descriptions on using the command line interface, python interface and jupyter interface. \ No newline at end of file From 73a60c55051eaf94782fd3dbee4e1700832c4e03 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:24 +0200 Subject: [PATCH 07/14] Update Jupyter interface in documentation Co-authored-by: Hannah Lanzrath --- docs/source/user_guide/jupyter-interface.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/source/user_guide/jupyter-interface.md b/docs/source/user_guide/jupyter-interface.md index 4ff80d4..6d44fcf 100644 --- a/docs/source/user_guide/jupyter-interface.md +++ b/docs/source/user_guide/jupyter-interface.md @@ -17,8 +17,8 @@ into a `.py` files, with the markdown cells included as block comments. All `.ip version control through the `.gitignore` file and only changes in the `.py` files are tracked. The `.py` files are automatically created and updated whenever a `.ipynb` file is saved. -Please ensure, that `juyptext` is working for you and that a `.py` file is created after saving your notebook, otherwise -your code will not be version-controlled. +Please ensure, that `juyptext` is working and that a `.py` file is created after saving the notebook, otherwise +the code will not be version-controlled. ### Reproducibility @@ -28,11 +28,11 @@ all previous outputs are cleared and all cells are executed sequentially from top to bottom and then committed to the output repository. To maintain the link between Markdown annotation, code, and inline graphs, the final notebook is also saved as -a `.html` webpage into the output folder for future inspection. +a `.html` webpage into the output directory for future inspection. ## Tracking Results -To use `CADET-RDM` from within an `.ipynb` file, please include this at the top of your file. +To use `CADET-RDM` from within an `.ipynb` file, please include this at the top of the file. ```python from cadetrdm.repositories import JupyterInterfaceRepo @@ -40,7 +40,7 @@ from cadetrdm.repositories import JupyterInterfaceRepo repo = JupyterInterfaceRepo() ``` -Then, at the end of your file, run: +Then, at the end of the file, run: ```python repo.commit_nb_output( "path-to-the-current-notebook.ipynb", @@ -51,9 +51,9 @@ repo.commit_nb_output( This will re-run the `.ipynb` file from the start, save a html version of the completed notebook into the output repo and commit all changes to the output repo. -## Committing changes to your code +## Committing changes to the code -You can commit all current changes to your code directly from Jupyter by running +All current changes to the code can be committed directly from Jupyter by running: ```python from cadetrdm.repositories import JupyterInterfaceRepo From b292e80e5f8a130748858f05df80ba4166c4077a Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:24 +0200 Subject: [PATCH 08/14] Update Python interface in documentation Co-authored-by: Hannah Lanzrath --- docs/source/user_guide/python-interface.md | 33 +++++++++++----------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/docs/source/user_guide/python-interface.md b/docs/source/user_guide/python-interface.md index 48860af..2b00fb3 100644 --- a/docs/source/user_guide/python-interface.md +++ b/docs/source/user_guide/python-interface.md @@ -7,7 +7,7 @@ from cadetrdm import ProjectRepo """ -Your imports and function declarations +Imports and function declarations e.g. generate_data(), write_data_to_file(), analyse_data() and plot_analysis_results() """ @@ -15,25 +15,25 @@ if __name__ == '__main__': # Instantiate CADET-RDM ProjectRepo handler repo = ProjectRepo() - # If you've made changes to the code, commit the changes + # Commit all changes to the code repo.commit("Add code to generate and analyse example data") - # Everything written to the output_folder within this context manager gets tracked - # The method repo.output_data() generates full paths to within your output_folder + # Everything written to the output_directory within this context manager gets tracked + # The method repo.output_data() generates full paths to within the output_directory with repo.track_results(results_commit_message="Generate and analyse example data"): data = generate_data() - write_data_to_file(data, output_folder=repo.output_folder) + write_data_to_file(data, output_directory=repo.output_directory) analysis_results = analyse_data(data) - plot_analysis_results(analysis_results, figure_path=repo.output_folder / "analysis" / "regression.png") + plot_analysis_results(analysis_results, figure_path=repo.output_directory / "analysis" / "regression.png") ``` ## Sharing Results -To share your project code and results with others, you need to create remote repositories on e.g. -[GitHub](https://github.com/) or GitLab. You need to create a remote for both the _project_ repo and the -_results_ repo. +To share the project code and results (`output`) with others, remote repositories have to be configured on e.g. +[GitHub](https://github.com/) or GitLab. Remotes for both the _project_ repository and the +_output_ repository have to be created. Once created, the remotes need to be added to the local repositories. @@ -43,8 +43,7 @@ repo.add_remote("git@:.git") repo.output_repo.add_remote("git@:_output.git") ``` -Once remotes are configured, you can push all changes to the project repo and the results repos with the -command +Once remotes are configured, all changes to the project repository and the output repository can be pushed with the following command from within the project repository: ```python # push all changes to the Project and Output repositories with one command: @@ -54,7 +53,7 @@ repo.push() ## Re-using results from previous iterations Each result stored with CADET-RDM is given a unique branch name, formatted as: -`__"from"__` +`__` With this branch name, previously generated data can be loaded in as input data for further calculations. @@ -76,12 +75,12 @@ cached_folder_path = repo.input_data(branch_name=branch_name) ## Using results from another repository -You can load in results from another repository to use in your project using the CLI: +The results from another repository can be to used by loading them into the target project with: ```python repo.import_remote_repo(source_repo_location="", source_repo_branch="") repo.import_remote_repo(source_repo_location="", source_repo_branch="", - target_repo_location="") + target_repo_location="") ``` This will store the URL, branch_name and location in the .cadet-rdm-cache.json file, like this: @@ -96,7 +95,7 @@ This will store the URL, branch_name and location in the .cadet-rdm-cache.json f } ``` -You can use this file to load the remote repositories based on the cache.json with +This file can be used to load remote repositories based on the cache.json with ```python repo.fill_data_from_cadet_rdm_json() @@ -104,10 +103,10 @@ repo.fill_data_from_cadet_rdm_json() ## Cloning from remote -You should use `cadetrdm.ProjectRepo.clone()` instead of `git clone` to clone the repo to a new location. +The method `cadetrdm.ProjectRepo.clone()` should be used instead of `git clone` to clone an rdm repository to a new location. ```python from cadetrdm import ProjectRepo -ProjectRepo.clone("") +ProjectRepo.clone(", ") ``` From fce0a5aa783553e94197ff6264b1eb61cab54dba Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:24 +0200 Subject: [PATCH 09/14] Update installation guide in documentation Co-authored-by: Hannah Lanzrath --- docs/source/user_guide/installation.md | 48 ++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/docs/source/user_guide/installation.md b/docs/source/user_guide/installation.md index 010ad5f..98c4b18 100644 --- a/docs/source/user_guide/installation.md +++ b/docs/source/user_guide/installation.md @@ -26,7 +26,7 @@ dependencies: and then run -```commandline +```bash mamba env create -f rdm_environment.yml ``` @@ -37,6 +37,50 @@ python==3.11 cadet-rdm>=0.0.15 ``` -```commandline +```bash pip install -r rdm_requirements.txt ``` + + +## Git-LFS +Running `cadet-rdm` requires [**Git LFS**](https://git-lfs.com/), which needs to be installed separately. + +* **Ubuntu/Debian**: + ```bash + sudo apt-get install git-lfs + git lfs install + ``` + + * **macOS** (with Homebrew): + + ```bash + brew install git-lfs + git lfs install + ``` + + * **Windows**: + Download and install from [https://git-lfs.com](https://git-lfs.com) + + + +## Extending GIT-LFS scope + +Several common datatypes are included in GIT-LFS by default. These currently are +`"*.jpg", "*.png", "*.xlsx", "*.h5", "*.ipynb", "*.pdf", "*.docx", "*.zip", "*.html"` + +Additional datatypes can be added if required by running: + +````python +from cadetrdm import ProjectRepo + +repo = ProjectRepo() + +repo.output_repo.add_filetype_to_lfs("*.npy") +```` + + +or from within the output directory in a command line: + +```bash +rdm lfs add *.npy +``` \ No newline at end of file From 2821b376dab24459d35c81d9a5e60e8b8e2ab915 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:24 +0200 Subject: [PATCH 10/14] Update getting started in documentation Co-authored-by: Hannah Lanzrath --- docs/source/user_guide/getting-started.md | 111 +++++++++++++++++----- 1 file changed, 86 insertions(+), 25 deletions(-) diff --git a/docs/source/user_guide/getting-started.md b/docs/source/user_guide/getting-started.md index 5be80c9..33db9c1 100644 --- a/docs/source/user_guide/getting-started.md +++ b/docs/source/user_guide/getting-started.md @@ -1,10 +1,13 @@ # Getting started -## Initialize Project Repository +A CADET-RDM repository typically consists of a `project repository` which contains the code and an `output repository` which contains the results generated by the project code. By initializing an RDM repository, the necessary file structure for tracking and version-controlling the project and the output will be created. -Create a new project repository or convert an existing repository into a CADET-RDM repo: +The following paragraphs contain a short guide to quickly start working with CADET-RDM. Almost all tools can be used either by running specific command line prompts or by executing code in python. +## Initialize RDM-Repositories + +Start using CADET-RDM by creating a new project repository or converting an existing repository into a CADET-RDM repository. ```bash rdm init ``` @@ -16,16 +19,53 @@ from cadetrdm import initialize_repo initialize_repo(path_to_repo) ``` +- If no `` is provided, the repository is initialized in the root directory without creating a new directory. +- If `` is given as a relative path (e.g. "repository_name"), a new directory with that name is created inside the root directory. +- If `` is given as an absolute path (e.g. C:\Users\me\projects\myrepo), a new directory is created at the specified location. + +The initialization of the RDM repository will generate a **project repository** containing the following contents, should they not have previously existed within the directory: + +```bash +.git +output +.cadet-rdm-cache.json +.cadet-rdm-data.json +.gitignore +Dockerfile +environment.yml +jupytext.yml +README.md +``` + +The **output repository** for storing and tracking the results of the project is also generated at initialization. It is created as a directory inside of the project repository. Both the project repository and the output repository are their own separate git repositories. +The `output_directory_name` can be specified optionally. It defaults to `output`. The output directory is initialized with the following contents: + +```bash +.git +.cadet-rdm-data.json +.gitattributes +.gitignore +README.md +``` +With every run of the project code, a new output branch with the results of the run is created. At the same time, the main branch of the output repository tracks these runs in the `run_history` directory. Every branch has its own sub-directory in the run_history directory. Within this branch, the following files are stored for every run: -The `output_folder_name` can be given optionally. It defaults to `output`. + conda_environment.yml + conda_independent_environment.yml + metadata.json + pip_independent_requirements.txt + pip_requirements.txt + +The information stored in these files can be used to reproduce the specific output created by running the project code with these configurations. ## Cookiecutter support [Cookiecutter](https://github.com/cookiecutter/cookiecutter) can be used to set a template as a starting position for the repository initialization. +If `` is given as an absolute or relative path, it overwrites the name which may be given to the directory in the cookiecutter prompt. If no `` is provided, the repository is initialized in the root directory. No new directory is created, even if the cookiecutter template would normally do so. +From the command line ```bash -rdm init --cookiecutter template_url +rdm init --cookiecutter ``` or from python @@ -37,27 +77,27 @@ initialize_repo(path_to_repo, cookiecutter_template="template_url") ``` -## Creating and adding remotes +## Creating remote repositories automatically -You can create remotes for both the project and the output repository with one command, using the GitLab or GitHub API. +Remotes for both the project and the output repository can be created with one command, using the GitLab or GitHub API. -You need to create a -[GitLab Personal Access Token (PAT)](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) or [GitHub PAT](https://github.com/settings/tokens?type=beta) with api access rights -and store it in the Python `keyring` using an interactive Python session: +A +[GitLab Personal Access Token (PAT)](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) or [GitHub PAT](https://github.com/settings/tokens?type=beta) with API access rights has to be created +and stored in the Python `keyring` using an interactive Python session: ```python import keyring -keyring.set_password("e.g. https://jugit.fz-juelich.de/", username, token) +keyring.set_password("e.g. https://jugit.fz-juelich.de/", "username", "token") ``` or in a command line -````commandline -keyring set "e.g. https://jugit.fz-juelich.de/" username +````bash +keyring set "e.g. https://jugit.fz-juelich.de/" ```` -Then you can run: +Then the following code is run to automatically create remotes for both the project repository and the output repository at the chosen URL: ```python from cadetrdm import ProjectRepo @@ -75,29 +115,50 @@ repo.create_remotes( or in a command line ```bash -rdm remote create url namespace name username +rdm remote create +``` +e.g. +```bash rdm remote create https://jugit.fz-juelich.de/ r.jaepel API_test_project r.jaepel ``` +The name of the created output remote is derived from the respective project repository name by appending `_output`, "e.g. API_test_project_output". -## Extending GIT-LFS scope -Several common datatypes are included in GIT-LFS by default. These currently are -`"*.jpg", "*.png", "*.xlsx", "*.h5", "*.ipynb", "*.pdf", "*.docx", "*.zip", "*.html"` +## Adding remote repositories -You can add datatypes you require by running: +To share the project code and results (*output*) with others, remote repositories have to be configured on e.g. +[GitHub](https://github.com/) or GitLab. Remotes for both the `project_repository` and the +`output_repository` have to be created. -````python -from cadetrdm import ProjectRepo +Once created, the remotes need to be added to the local repositories. Run the following commands in both repositories with their respective `remote_url`s. -repo = ProjectRepo() +```bash +rdm remote add +``` +e.g. -repo.output_repo.add_filetype_to_lfs("*.npy") -```` +```bash +cd project +rdm remote add git@:.git +cd output +rdm remote add git@:_output.git +``` + +## Staging, committing and pushing changes to the remote repositories +To check that all remotes are set correctly, the metadata is consistent and stage all changes within the project and output repository, run the following command in the project repository: -or from within the output folder in a command line: +```bash +rdm check +``` +To commit the staged changes run the following command in the project repository: ```bash -rdm lfs add *.npy +rdm commit -m ``` +To then push all commits from project and output repository, run the following command in the project repository: + +```bash +rdm push +``` \ No newline at end of file From af63b3e56bce8c983eb984090874359c80d2cf4d Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:24 +0200 Subject: [PATCH 11/14] Update CLI Inteface Documentation Co-authored-by: Hannah Lanzrath --- docs/source/user_guide/CLI-interface.md | 115 ------------------ .../user_guide/command-line-interface.md | 107 ++++++++++++++++ 2 files changed, 107 insertions(+), 115 deletions(-) delete mode 100644 docs/source/user_guide/CLI-interface.md create mode 100644 docs/source/user_guide/command-line-interface.md diff --git a/docs/source/user_guide/CLI-interface.md b/docs/source/user_guide/CLI-interface.md deleted file mode 100644 index e27a1b8..0000000 --- a/docs/source/user_guide/CLI-interface.md +++ /dev/null @@ -1,115 +0,0 @@ - -# CLI Interface - -## Initialize Project Repository - -Create a new project repository or convert an existing repository into a CADET-RDM repo: - -```bash -rdm init -``` - - -The `output_folder_name` can be given optionally. It defaults to `output`. - - -## Executing scripts - -You can execute python files or arbitray commands using the CLI: - -```bash -cd path/to/your/project -rdm run_yml python "commit message for the results" -rdm run_yml command "command as it would be run" "commit message for the results" -``` - -For the run-command option, the command must be given in quotes, so: - -```bash -rdm run_yml command "python example_file.py" "commit message for the results" -``` - -## Re-using results from previous iterations - -Each result stored with CADET-RDM is given a unique branch name, formatted as: -`__"from"__` - -With this branch name, previously generated data can be loaded in as input data for -further calculations. The following command will copy the contents of the `branch_name` branch to the -cache folder at `project_root/output_cached/branch_name`. - -```bash -rdm data cache branch_name -``` - - -## Using results from another repository - -You can load in results from another repository to use in your project using the CLI: - -```bash -cd path/to/your/project -rdm data import -rdm data import --target_repo_location -``` - -This will store the URL, branch_name and location in the .cadet-rdm-cache.json file, like this: - -```json -{ - "__example/path/to/repo__": { - "source_repo_location": "git@jugit.fz-juelich.de:IBG-1/ModSim/cadet/agile_cadet_rdm_presentation_output.git", - "branch_name": "output_from_master_3910c84_2023-10-25_00-17-23", - "commit_hash": "6e3c26527999036e9490d2d86251258fe81d46dc" - } -} -``` - -You can use this file to load the remote repositories based on the cache.json with - -```bash -rdm data fetch -``` - -## Cloning from remote - -You should use `cadet-rdm clone` instead of `git clone` to clone the repo to a new location. - -```bash -rdm clone -``` - - -## Sharing Results - -To share your project code and results with others, you need to create remote repositories on e.g. -[GitHub](https://github.com/) or GitLab. You need to create a remote for both the _project_ repo and the -_results_ repo. - -Once created, the remotes need to be added to the local repositories. - -```bash -rdm remote add git@:.git -cd output -rdm remote add git@:_output.git -``` - -Once remotes are configured, you can push all changes to the project repo and the results repos with the -command - -```bash -rdm push -``` - -## Migrating a repository - -If you want to migrate a repository to another remote, the easiest way to do that at the moment is to create the remote -repositories on GitHub or GitLab and change the `origin` URL for the project and output repositories with: - -```bash -rdm remote set-url origin git@:.git -cd output -rdm remote set-url origin git@:_output.git -cd .. -rdm push -``` diff --git a/docs/source/user_guide/command-line-interface.md b/docs/source/user_guide/command-line-interface.md new file mode 100644 index 0000000..05808bc --- /dev/null +++ b/docs/source/user_guide/command-line-interface.md @@ -0,0 +1,107 @@ + +# Command line interface (CLI) + +## Initialize Project Repository + +Create a new project repository or convert an existing repository into a CADET-RDM repository: + +```bash +rdm init +``` +- If no `` is provided, the repository is initialized in the root directory without creating a new directory. +- If `` is given as a relative path (e.g. "repository_name"), a new directory with that name is created inside the root directory. +- If `` is given as an absolute path (e.g. C:\Users\me\projects\myrepo), a new directory is created at the specified location. + +The `output_directory_name` can be given optionally. It defaults to `output`. + + +## Executing scripts + +Python files or arbitray commands can be executed using the CLI: + +```bash +cd path/to/project_repository +rdm run_yml python "commit message for the results" +rdm run_yml command "command as it would be run" "commit message for the results" +``` + +For the run-command option, the command must be given in quotes, so: + +```bash +rdm run_yml command "python example_file.py" "commit message for the results" +``` + +## Re-using results from previous iterations + +Each result stored with CADET-RDM is given a unique branch name within the output directory, formatted as: +`__` + +With this branch name, previously generated data can be loaded in as input data for +further calculations. The following command will copy the contents of the `branch_name` branch to the +cache directory at `project_root/output_cached/branch_name`. + +```bash +rdm data cache branch_name +``` + +## Using results from another repository + +The Project repository URL, branch_name and location of results can be stored in the .cadet-rdm-cache.json file, like this: + +```json +{ + "__example/path/to/repo__": { + "source_repo_location": "git@jugit.fz-juelich.de:IBG-1/ModSim/cadet/agile_cadet_rdm_presentation_output.git", + "branch_name": "output_from_master_3910c84_2023-10-25_00-17-23", + "commit_hash": "6e3c26527999036e9490d2d86251258fe81d46dc" + } +} +``` + +This cache.json file can be used to load remote repositories. + +```bash +rdm data fetch +``` + +## Cloning rdm repositories + +The command `rdm clone` should be used instead of `git clone` to clone an existing rdm repository to a new location. The destination directory must be empty. + +```bash +rdm clone +``` + + +## Sharing Results + +To share the project code and results (`output`) with others, remote repositories have to be configured on e.g. +[GitHub](https://github.com/) or GitLab. Remotes for both the _project_ repository and the +_output_ repository have to be created. + +Once created, the remotes need to be added to the local repositories. + +```bash +rdm remote add git@:.git +cd output +rdm remote add git@:_output.git +``` + +Once remotes are configured, all changes to the project repository and the output repository can be pushed with the following command from within the project repository: + +```bash +rdm push +``` + +## Migrating a repository + +The easiest way to migrate a repository to another remote, is to create the remote +repositories on GitHub or GitLab and change the `origin` URL for the project and output repositories with: + +```bash +rdm remote set-url origin git@:.git +cd output +rdm remote set-url origin git@:_output.git +cd .. +rdm push +``` From e63072ac066ab79eeb453004c3a211affd07b954 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:24 +0200 Subject: [PATCH 12/14] Change "folder" to "directory" or "path" Applies naming conventions to comments, docs and variables. Co-authored-by: Hannah Lanzrath --- cadetrdm/cli_integration.py | 16 ++++---- cadetrdm/container/ApptainerAdapter.py | 2 +- cadetrdm/container/containerAdapter.py | 2 +- cadetrdm/container/dockerAdapter.py | 2 +- cadetrdm/container/podmanAdapter.py | 4 +- cadetrdm/initialize_repo.py | 46 ++++++++++++---------- cadetrdm/repositories.py | 54 +++++++++++++------------- docs/README.md | 2 +- tests/test_container_podman.py | 4 +- tests/test_git_adapter.py | 10 ++--- 10 files changed, 73 insertions(+), 69 deletions(-) diff --git a/cadetrdm/cli_integration.py b/cadetrdm/cli_integration.py index fc0abd4..2583b1b 100644 --- a/cadetrdm/cli_integration.py +++ b/cadetrdm/cli_integration.py @@ -13,8 +13,8 @@ def cli(): @cli.command(help="Create an empty CADET-RDM repository or initialize over an existing git repo.") -@click.option('--output_repo_name', default="output", - help='Name of the folder where the tracked output should be stored. Optional. Default: "output".') +@click.option('--output_directory_name', default="output", + help='Name of the directory where the tracked output should be stored. Optional. Default: "output".') @click.option('--gitignore', default=None, help='List of files to be added to the gitignore file. Optional.') @click.option('--gitattributes', default=None, @@ -22,21 +22,21 @@ def cli(): @click.option('--cookiecutter', default=None, help='URL or path to cookiecutter template. Optional.') @click.argument('path_to_repo', required=False) -def init(path_to_repo: str = None, output_repo_name: (str | bool) = "output", gitignore: list = None, +def init(path_to_repo: str = None, output_directory_name: (str | bool) = "output", gitignore: list = None, gitattributes: list = None, cookiecutter: str = None, output_repo_kwargs: dict = None): if path_to_repo is None: path_to_repo = "." from cadetrdm.initialize_repo import initialize_repo as initialize_git_repo_implementation - initialize_git_repo_implementation(path_to_repo, output_repo_name, gitignore, + initialize_git_repo_implementation(path_to_repo, output_directory_name, gitignore, gitattributes, output_repo_kwargs, cookiecutter) -@cli.command(help="Clone a repository into a new d^irectory.") +@cli.command(help="Clone a repository into a new empty directory.") @click.argument('project_url') -@click.argument('dest', required=False) -def clone(project_url, dest: str = None): +@click.argument('destination_path', required=False) +def clone(project_url, destination_path: str = None): from cadetrdm import ProjectRepo - repo = ProjectRepo.clone(url=project_url, to_path=dest) + repo = ProjectRepo.clone(url=project_url, to_path=destination_path) del repo diff --git a/cadetrdm/container/ApptainerAdapter.py b/cadetrdm/container/ApptainerAdapter.py index ae5b3bd..e0a1617 100644 --- a/cadetrdm/container/ApptainerAdapter.py +++ b/cadetrdm/container/ApptainerAdapter.py @@ -61,7 +61,7 @@ # # ssh_location = Path.home() / ".ssh" # if not ssh_location.exists(): -# raise FileNotFoundError("No ssh folder found. Please report this on GitHub/CADET/CADET-RDM") +# raise FileNotFoundError("No ssh directory found. Please report this on GitHub/CADET/CADET-RDM") # # container = self.client.containers.run_yml( # image=image, diff --git a/cadetrdm/container/containerAdapter.py b/cadetrdm/container/containerAdapter.py index 34536a9..b3858f8 100644 --- a/cadetrdm/container/containerAdapter.py +++ b/cadetrdm/container/containerAdapter.py @@ -45,7 +45,7 @@ def _prepare_case_command(case, command, container_options_filename): if command_install is not None: commands.append(command_install) - # pull the study from the URL into a "study" folder + # pull the study from the URL into a "study" repository command_pull = f"rdm clone {case.project_repo.url} study" # cd into the "study" folder command_cd = "cd study" diff --git a/cadetrdm/container/dockerAdapter.py b/cadetrdm/container/dockerAdapter.py index 10e9d8c..6faeea2 100644 --- a/cadetrdm/container/dockerAdapter.py +++ b/cadetrdm/container/dockerAdapter.py @@ -72,7 +72,7 @@ def _run_command(self, full_command, image, mounts=None): ssh_location = Path.home() / ".ssh" if not ssh_location.exists(): - raise FileNotFoundError("No ssh folder found. Please report this on GitHub/CADET/CADET-RDM") + raise FileNotFoundError("No ssh directory found. Please report this on GitHub/CADET/CADET-RDM") volumes = { f"{Path.home()}/.ssh": {'bind': "/root/.ssh_host_os", 'mode': "ro"}, diff --git a/cadetrdm/container/podmanAdapter.py b/cadetrdm/container/podmanAdapter.py index 8927bf9..2a6f479 100644 --- a/cadetrdm/container/podmanAdapter.py +++ b/cadetrdm/container/podmanAdapter.py @@ -69,7 +69,7 @@ def _run_command(self, full_command, image, mounts=None): ssh_location = Path.home() / ".ssh" if not ssh_location.exists(): - raise FileNotFoundError("No ssh folder found. Please report this on GitHub/CADET/CADET-RDM") + raise FileNotFoundError("No ssh directory found. Please report this on GitHub/CADET/CADET-RDM") full_command = full_command.replace('"', "'") @@ -82,7 +82,7 @@ def _run_command(self, full_command, image, mounts=None): podman_command = ( f'podman run ' '--rm ' # remove container after run_yml (to keep space usage low) - f'-v {ssh_location}:/root/.ssh_host_os:ro ' # mount ssh folder for the container to access + f'-v {ssh_location}:/root/.ssh_host_os:ro ' # mount ssh directory for the container to access f'{volume_mounts}' # mount options file f'{image} ' # specify image name f'bash -c "{full_command}"' # run_yml command in bash shell diff --git a/cadetrdm/initialize_repo.py b/cadetrdm/initialize_repo.py index e9852dd..886a52f 100644 --- a/cadetrdm/initialize_repo.py +++ b/cadetrdm/initialize_repo.py @@ -18,22 +18,24 @@ from cadetrdm.io_utils import write_lines_to_file, wait_for_user, init_lfs, test_for_lfs import cadetrdm.templates.dockerfile_template as dockerfile_template -def initialize_repo(path_to_repo: str | Path, output_folder_name: (str | bool) = "output", gitignore: list = None, +def initialize_repo(path_to_repo: str | Path, output_directory_name: (str | bool) = "output", gitignore: list = None, gitattributes: list = None, output_repo_kwargs: dict = None, cookiecutter_template: str = None): """ Initialize a git repository at the given path with an optional included output results repository. :param path_to_repo: - Path to main repository. - :param output_folder_name: + Path to main repository. If set to ".", the repository is initialized in the root directory without creating a new directory. If given as a relative path (e.g. 'repository_name'), a new directory with that name is created inside the root directory. If given as an absolute path (e.g. "C:\\User\\name\\project", a new directory is created at the specified location. + :param output_directory_name: Name for the output repository. :param gitignore: List of files to be added to the gitignore file. :param gitattributes: List of lines to be added to the gitattributes file :param output_repo_kwargs: - kwargs to be given to the creation of the output repo initalization function. + kwargs to be given to the creation of the output repository initalization function. Include gitignore, gitattributes, and lfs_filetypes kwargs. + :param cookiecutter_template: + Path to cookiecutter template to include files created by cookiecutter at repository initialization. """ test_for_lfs() @@ -43,8 +45,8 @@ def initialize_repo(path_to_repo: str | Path, output_folder_name: (str | bool) = if gitignore is None: gitignore = get_default_gitignore() + ["*.ipynb", "*.h5"] - gitignore.append(f"/{output_folder_name}/") - gitignore.append(f"/{output_folder_name}_cached/") + gitignore.append(f"/{output_directory_name}/") + gitignore.append(f"/{output_directory_name}_cached/") if gitattributes is not None: write_lines_to_file(path=".gitattributes", lines=gitattributes, open_type="a") @@ -74,7 +76,7 @@ def initialize_repo(path_to_repo: str | Path, output_folder_name: (str | bool) = "is_project_repo": True, "is_output_repo": False, "project_uuid": project_repo_uuid, "output_uuid": output_repo_uuid, "cadet_rdm_version": cadetrdm.__version__, - "output_remotes": {"output_folder_name": output_folder_name, "output_remotes": {}} + "output_remotes": {"output_directory_name": output_directory_name, "output_remotes": {}} } with open(".cadet-rdm-data.json", "w") as f: json.dump(rdm_data, f, indent=2) @@ -87,7 +89,7 @@ def initialize_repo(path_to_repo: str | Path, output_folder_name: (str | bool) = "commit_hash": "6e3c26527999036e9490d2d86251258fe81d46dc" }}, f, indent=2) - initialize_output_repo(output_folder_name, project_repo_uuid=project_repo_uuid, + initialize_output_repo(output_directory_name, project_repo_uuid=project_repo_uuid, output_repo_uuid=output_repo_uuid, **output_repo_kwargs) repo = ProjectRepo(".") @@ -115,12 +117,14 @@ def initialize_repo(path_to_repo: str | Path, output_folder_name: (str | bool) = def init_cookiecutter(cookiecutter_template, path_to_repo): """ - Initialize from cookiecutter template. Because cookiecutter can only create the files in a sub-directory - but cadet-rdm init can be called from within a folder with "path_to_repo" == ".", we copy the files from the - generated_dir folder into the path_to_repo folder afterwards. + Initialize from cookiecutter template. Because cookiecutter can only create the file structure in a sub-directory + but cadet-rdm init can be called from within another directory by specifying the absolute path of the new rdm repository with "path_to_repo" == ".", we copy the files from the + generated_dir directory into the path_to_repo directory afterwards. This means that only the internal contents, the directory layout and files are copied into the path_to_repo. The surrounding top-level directory itself is not carried over. :param cookiecutter_template: + str, Path to cookiecutter template which creates a file structure that is copied into the "output_dir". :param path_to_repo: + str, Path to main repository. If set to ".", the repository will be initialized in the current directory without creating an additional subfolder. """ generated_dir = cookiecutter(cookiecutter_template, output_dir=path_to_repo) file_names = os.listdir(generated_dir) @@ -138,10 +142,10 @@ def init_cookiecutter(cookiecutter_template, path_to_repo): # # repo = ProjectRepo(".") # -# if Path(repo._output_folder).exists(): -# raise RuntimeError(f"Output repo at {repo._output_folder} already exists.") +# if Path(repo._output_directory).exists(): +# raise RuntimeError(f"Output repo at {repo._output_directory} already exists.") # -# initialize_output_repo(repo._output_folder, project_repo_uuid=repo._project_uuid, +# initialize_output_repo(repo._output_directory, project_repo_uuid=repo._project_uuid, # output_repo_uuid=repo._output_uuid, **output_repo_kwargs) # # os.chdir(starting_directory) @@ -154,8 +158,8 @@ def initialize_git(folder="."): try: repo = git.Repo(".") - proceed = wait_for_user('The target directory already contains a git repo.\n' - 'Please commit or stash all changes to the repo before continuing.\n' + proceed = wait_for_user('The target directory already contains a git repository.\n' + 'Please commit or stash all changes to the repository before continuing.\n' 'Proceed?') if not proceed: raise KeyboardInterrupt @@ -174,13 +178,13 @@ def get_default_lfs_filetypes(): return ["*.jpg", "*.png", "*.xlsx", "*.h5", "*.ipynb", "*.pdf", "*.docx", "*.zip", "*.html", "*.csv"] -def initialize_output_repo(output_folder_name, gitignore: list = None, +def initialize_output_repo(output_directory_name, gitignore: list = None, gitattributes: list = None, lfs_filetypes: list = None, project_repo_uuid: str = None, output_repo_uuid: str = None): """ Initialize a git repository at the given path with an optional included output results repository. - :param output_folder_name: + :param output_directory_name: Name for the output repository. :param gitignore: List of files to be added to the gitignore file. @@ -190,8 +194,8 @@ def initialize_output_repo(output_folder_name, gitignore: list = None, List of filetypes to be handled by git lfs. """ starting_directory = os.getcwd() - os.makedirs(output_folder_name, exist_ok=True) - os.chdir(output_folder_name) + os.makedirs(output_directory_name, exist_ok=True) + os.chdir(output_directory_name) if gitignore is None: gitignore = get_default_gitignore() @@ -244,7 +248,7 @@ def create_output_readme(): 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.", + "Each simulation run creates a dedicated branch in this output repository. The results are saved within the `src` directory 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", "", diff --git a/cadetrdm/repositories.py b/cadetrdm/repositories.py index 595e79f..23292c4 100644 --- a/cadetrdm/repositories.py +++ b/cadetrdm/repositories.py @@ -555,7 +555,7 @@ def add_remote(self, remote_url, remote_name=None): remote_name = "origin" self._git_repo.create_remote(remote_name, url=remote_url) if self._metadata["is_project_repo"]: - # This folder is a project repo. Use a project repo class to easily access the output repo. + # This directory is a project repository. Use a project repo class to easily access the output repo. output_repo = ProjectRepo(self.path).output_repo if output_repo.active_branch != output_repo.main_branch: @@ -566,7 +566,7 @@ def add_remote(self, remote_url, remote_name=None): 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 + # This directory is an output repository. project_repo = ProjectRepo(self.path.parent) project_repo.update_output_remotes_json() project_repo.add_list_of_remotes_in_readme_file("Link to Output Repository", self.remote_urls) @@ -587,7 +587,7 @@ def import_remote_repo(self, source_repo_location, source_repo_branch, target_re Branch of the source repo to check out. :param target_repo_location: - Place to store the repo. If None, the external_cache folder is used. + Place to store the repo. If None, the external_cache directory is used. :return: Path to the cloned repository @@ -758,7 +758,7 @@ def add_list_of_remotes_in_readme_file(self, repo_identifier: str, remotes_url_l class ProjectRepo(BaseRepo): - def __init__(self, path=None, output_folder=None, + def __init__(self, path=None, output_directory=None, search_parent_directories=True, suppress_lfs_warning=False, url=None, branch=None, options=None, *args, **kwargs): @@ -768,7 +768,7 @@ def __init__(self, path=None, output_folder=None, :param path: Path to the root of the git repository. - :param output_folder: + :param output_directory: Deprecated: Path to the root of the output repository. :param search_parent_directories: if True, all parent directories will be searched for a valid repo as well. @@ -797,21 +797,21 @@ def __init__(self, path=None, output_folder=None, if not suppress_lfs_warning: test_for_lfs() - if output_folder is not None: - print("Deprecation Warning. Setting the outputfolder manually during repo instantiation is deprecated" + if output_directory is not None: + print("Deprecation Warning. Setting the output directory manually during repo instantiation is deprecated" " and will be removed in a future update.") if not self.data_json_path.exists(): - raise RuntimeError(f"Folder {self.path} does not appear to be a CADET-RDM repository.") + raise RuntimeError(f"Directory {self.path} does not appear to be a CADET-RDM repository.") self._project_uuid = self._metadata["project_uuid"] self._output_uuid = self._metadata["output_uuid"] - self._output_folder = self._metadata["output_remotes"]["output_folder_name"] + self._output_directory = self._metadata["output_remotes"]["output_directory_name"] self.options = options - if not (self.path / self._output_folder).exists(): + if not (self.path / self._output_directory).exists(): print("Output repository was missing, cloning now.") self._clone_output_repo() - self.output_repo = OutputRepo(self.path / self._output_folder) + self.output_repo = OutputRepo(self.path / self._output_directory) if self._metadata["cadet_rdm_version"] != cadetrdm.__version__: self._update_version(self._metadata, cadetrdm.__version__) @@ -888,7 +888,7 @@ def fix_gitattributes_log_tsv(self): def _clone_output_repo(self, multi_options: List[str] = None): metadata = self.load_metadata() output_remotes = metadata["output_remotes"] - output_path = self.path / output_remotes["output_folder_name"] + output_path = self.path / output_remotes["output_directory_name"] ssh_remotes = list(output_remotes["output_remotes"].values()) if len(ssh_remotes) == 0: warnings.warn("No output remotes configured in .cadet-rdm-data.json") @@ -1046,7 +1046,7 @@ def _convert_csv_to_tsv_if_necessary(self): if self.output_log_file.exists(): return - csv_filepath = self.path / self._output_folder / "log.csv" + csv_filepath = self.path / self._output_directory / "log.csv" if not csv_filepath.exists(): # We have just initialized the repo and neither tsv nor csv exist. return @@ -1178,7 +1178,7 @@ def update_output_remotes_json(self): metadata = json.load(file_handle) remotes_dict = {remote.name: str(remote.url) for remote in self.output_repo.remotes} - metadata["output_remotes"] = {"output_folder_name": self._output_folder, "output_remotes": remotes_dict} + metadata["output_remotes"] = {"output_directory_name": self._output_directory, "output_remotes": remotes_dict} with open(self.data_json_path, "w", encoding="utf-8") as file_handle: json.dump(metadata, file_handle, indent=2) @@ -1201,11 +1201,11 @@ def download_file(self, url, file_path): def input_data(self, branch_name: str) -> Path: """ Load previously generated results to iterate upon. Copies entire branch of output repo - to the output_cached / branch_name folder. + to the output_cached / branch_name directory. :param branch_name: Name of the branch of the output repository in which the results are stored. :return: - Absolute path to the newly copied folder. + Absolute path to the newly copied directory. """ cached_branch_path = self.copy_data_to_cache(branch_name) @@ -1231,8 +1231,8 @@ def remove_cached_files(self): """ Delete all previously cached results. """ - if (self.path / (self._output_folder + "_cached")).exists(): - delete_path(self.path / (self._output_folder + "_cached")) + if (self.path / (self._output_directory + "_cached")).exists(): + delete_path(self.path / (self._output_directory + "_cached")) def import_static_data(self, source_path: Path | str, commit_message): """ @@ -1330,32 +1330,32 @@ def _get_new_output_branch(self, force=False): def cache_folder_for_branch(self, branch_name=None): """ - Returns the path to the cache folder for the given branch + Returns the path to the cache directory for the given branch :param branch_name: optional branch name, if None, current branch is used. :return Path: - Path to folder in cache + Path to directory in cache """ branch_name_path = branch_name.replace("/", "_") - # Define the target folder - cache_folder = self.path / f"{self._output_folder}_cached" / str(branch_name_path) + # Define the target directory + cache_folder = self.path / f"{self._output_directory}_cached" / str(branch_name_path) return cache_folder def copy_data_to_cache(self, branch_name=None, target_folder=None): """ - Copy all existing output results into a cached folder and make it read-only. + Copy all existing output results into a cached directory and make it read-only. :param branch_name: optional branch name, if None, current branch is used. :param target_folder: - optional target directory, if None, default cache folder is used. + optional target directory, if None, default cache directory is used. :return Path: - Path to folder in cache + Path to directory in cache """ # Determine the branch name if not provided if branch_name is None: @@ -1370,7 +1370,7 @@ def copy_data_to_cache(self, branch_name=None, target_folder=None): if branch_name not in local_branches: self.output_repo.checkout(branch_name) - # Create the target folder if it doesn't exist + # Create the target directory if it doesn't exist if not target_folder.exists(): target_folder.mkdir(parents=True, exist_ok=True) @@ -1437,7 +1437,7 @@ def _commit_output_data(self, message, output_dict): commit_return = self.output_repo._git.commit("-m", message) self.copy_data_to_cache() self.update_output_main_logs(output_dict) - main_cach_path = self.path / (self._output_folder + "_cached") / self.output_repo.main_branch + main_cach_path = self.path / (self._output_directory + "_cached") / self.output_repo.main_branch if main_cach_path.exists(): delete_path(main_cach_path) self.copy_data_to_cache(self.output_repo.main_branch) diff --git a/docs/README.md b/docs/README.md index 71c4d02..8681d57 100644 --- a/docs/README.md +++ b/docs/README.md @@ -7,7 +7,7 @@ pip install -e .[docs] ``` from the CADET-RDM root directory. -Then, in the `docs` folder run: +Then, in the `docs` directory run: ``` sphinx-build -b html source build diff --git a/tests/test_container_podman.py b/tests/test_container_podman.py index 325e462..31d3afc 100644 --- a/tests/test_container_podman.py +++ b/tests/test_container_podman.py @@ -10,7 +10,7 @@ @pytest.mark.container def test_run_in_podman(): - # You need to install passt on your system and add it to the path + # passt needs to be installed and added to the path # os.environ["PATH"] += os.pathsep + "/home/bin/passt" WORK_DIR = Path.cwd() / "tmp" WORK_DIR.mkdir(parents=True, exist_ok=True) @@ -69,7 +69,7 @@ def test_run_in_podman(): @pytest.mark.slow @pytest.mark.container def test_pytest_in_podman(): - # You need to install passt on your system and add it to the path + # Passt needs to be installed and added to the path # os.environ["PATH"] += os.pathsep + "/home/bin/passt" WORK_DIR = Path.cwd() / "tmp" WORK_DIR.mkdir(parents=True, exist_ok=True) diff --git a/tests/test_git_adapter.py b/tests/test_git_adapter.py index 7d684dc..fd196ed 100644 --- a/tests/test_git_adapter.py +++ b/tests/test_git_adapter.py @@ -34,9 +34,9 @@ def count_commit_number(repo): return current_commit_number -def example_generate_results_array(path_to_repo, output_folder): +def example_generate_results_array(path_to_repo, output_directory): results_array = np.random.random((500, 3)) - np.savetxt(path_to_repo / output_folder / "result.csv", results_array, delimiter=",") + np.savetxt(path_to_repo / output_directory / "result.csv", results_array, delimiter=",") return results_array @@ -86,7 +86,7 @@ def try_commit_results_data(path_to_repo): repo = ProjectRepo(path_to_repo) current_commit_number = count_commit_number(repo.output_repo) with repo.track_results(results_commit_message="Add array") as output_branch: - example_generate_results_array(path_to_repo, output_folder=repo.output_path) + example_generate_results_array(path_to_repo, output_directory=repo.output_path) updated_commit_number = count_commit_number(repo.output_repo) assert current_commit_number <= updated_commit_number assert str(repo.output_repo.active_branch) == output_branch @@ -129,7 +129,7 @@ def try_commit_results_with_uncommitted_code_changes(path_to_repo): modify_code(path_to_repo) with pytest.raises(Exception): with repo.track_results(results_commit_message="Add array"): - example_generate_results_array(path_to_repo, output_folder=repo.output_path) + example_generate_results_array(path_to_repo, output_directory=repo.output_path) repo.commit("add code to print random number", add_all=True) @@ -408,7 +408,7 @@ def test_with_detached_head(): # repo.import_remote_repo(source_repo_location="../test_repo/results", source_repo_branch=branch_name) # repo.import_remote_repo(source_repo_location="../test_repo/results", source_repo_branch=branch_name, # target_repo_location="foo/bar/repo") -# # delete folder and reload +# # delete directory and reload # delete_path("foo/bar/repo") # # with pytest.raises(Exception): From 9eb0aec722ca667c70c2f36b3345c4ed3747b9e1 Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:24 +0200 Subject: [PATCH 13/14] Add introduction to toctree Co-authored-by: Hannah Lanzrath --- docs/source/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/index.md b/docs/source/index.md index 3c33002..e5d9ae9 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -1,4 +1,4 @@ -```{include} ../../README.md +```{include} ./user_guide/introduction.md ``` ```{toctree} @@ -9,7 +9,7 @@ user_guide/introduction user_guide/installation user_guide/getting-started -user_guide/CLI-interface +user_guide/command-line-interface user_guide/python-interface user_guide/jupyter-interface ``` From 37fd84f1b0d46bc569377632a9cbc66139e0029a Mon Sep 17 00:00:00 2001 From: Katharina Paul Date: Wed, 1 Oct 2025 13:51:24 +0200 Subject: [PATCH 14/14] Add package excludes to toml Co-authored-by: Hannah Lanzrath --- pyproject.toml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 6dc452c..2f8ae52 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -86,5 +86,13 @@ markers = [ "container: marks tests as using containerization interfaces such as Docker or Apptainer" ] +[tool.setuptools] +package-dir = {"" = "."} + +[tool.setuptools.packages.find] +include = ["cadetrdm*"] +exclude = ["tmp*", "batch_repos*"] + + [tool.setuptools.dynamic] version = { attr = "cadetrdm.__version__" }