Skip to content

Documentation Update #80

Closed
Closed

Description

@hannahlanzrath

Documentation To-Dos


1. Unique Results from [Project + Options + Environment] and Reusability of Options

The documentation should explain that a combination of a specific Project, configuration Options, and runtime Environment defines a unique and reproducible run. This combination determines how results are stored and reloaded, and ensures consistency in comparisons and reruns.

Additionally, Options objects can be reused across different projects or used to define multiple configurations within a single project. This is essential for parameter sweeps or comparative studies and avoids redundant configuration code.

Internally, each Options instance is hashed to determine whether identical results already exist. Keys starting with an underscore (_) or containing double underscores (__) are excluded from the hash computation. This allows non-functional configuration (e.g., cache directories) to be specified without affecting result identity.

env = Environment(conda_packages={"cadet": ">5.0.3"}, pip_packages={"numpy": "2.0.2"})
options = Options({
            'objective': 'single-objective',
            'optimizer_options': DEFAULT_UNSGA_OPTIMIZER_OPTIONS,
            'debug': debug,
            'push': push,
        })
project_repo = ProjectRepo(path=study_root / name, url=study_url, branch=study_branch)
case = Case(project_repo=project_repo, options=options, environment=env)
case.run_study()  # notiz jetzt: sollte umbenannt werden weil wir Study deprecated haben.
assert case.has_results_for_this_run
case.load()
path = case.results_path

References:

  • test_batch_runner.py
  • diss_runner/run_all.py (Jugit repo, ask Jo)

2. Environment: Reproducibility via Conda/Pip Packages

The Environment object defines the runtime environment using Conda and/or Pip dependencies. This should be documented as a core part of each case setup to ensure results are reproducible and consistent across systems and collaborators.

Example:

env = Environment(
    conda_packages={"cadet": ">5.0.3"},
    pip_packages={"numpy": "2.0.2"}
)

3. Containerization Support (Docker/Podman)

Obsolete: the container adapters are removed in #132.

The documentation should include how to run a case inside a container, either Docker or Podman. This includes:

  • The integration of the Case system with container execution
  • The requirement for passt to enable container networking
  • Platform-specific notes for setting up and exposing passt in the system environment

For Podman to work correctly, passt must be installed and accessible via the system PATH. This will require administrative setup on shared infrastructure, such as the IBT servers (ask Martin).

Example to ensure passt is in PATH:

os.environ["PATH"] += os.pathsep + "/home/bin/passt"

Reference test files:
- `test_container_docker.py`
- `test_container_podman.py`

4. Method naming update

The method run_study() used in the Case object is deprecated and will be renamed. All examples and documentation referencing it should be updated once the new name is finalized.

Activity

  1. katharina-paul commented on Sep 25, 2025

    @katharina-paul
    Contributor

    Follow-Up on 2. Environment: Reproducibility via Conda/Pip Packages

    With every run of the project code, a new output branch with the results is created. At the same time, the main branch of the output repository tracks these runs in the "run_history" directory. Every branch has it's own sub-directory in the run_history directory. Within this branch, the following files are stored for every run:

    • conda_environment.yml
    • conda_independent_environment.yml
    • metadata.json
    • pip_independent_requirements.txt
    • pip_requirements.txt

    The conda_environment.yml shows the environment used for the run and also every single package contained in this environment with their respective version number. This includes conda and pip packages.

    Does this solve the issue or does anything need to be implemented in RDM in addition to these run_history logs?

  2. added a commit that references this issue on Oct 5, 2026
    cc67513
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions