Skip to content
Snippets Groups Projects
  1. Feb 25, 2025
  2. Feb 24, 2025
  3. Feb 21, 2025
  4. Feb 20, 2025
    • Jithu Murugan's avatar
      Merge remote-tracking branch 'origin/esd-spack-installation' into... · 8c8589f7
      Jithu Murugan authored
      Merge remote-tracking branch 'origin/esd-spack-installation' into VT-70-function-Migrate-Spack-env-setup-into-ESD-repo-with-buildcache
      
      # Conflicts:
      #	.gitlab-ci.yml
      #	dedal/build_cache/BuildCacheManager.py
      #	dedal/cli/SpackManager.py
      #	esd/tests/utils_test.py
      #	esd/utils/utils.py
      #	pyproject.toml
      8c8589f7
    • Jithu Murugan's avatar
      Following changes have been incorporated: · 7cc4f758
      Jithu Murugan authored
      - SpackOperation.py: The handle_result and trust_gpg_key methods were specifically updated with tests and docstrings. Also modified the add_mirror method as per the changes.
      - SpackOperationUseCache.py: Similar to SpackOperation.py, this file also got enhanced tests and docstrings, specifically for the setup_spack_env method. The focus is on setting up the environment for a user spack cache setup along with testing of the caching behavior and improving documentation.
      - BuildCacheManager.py: This file saw improvements in its test suite and the addition of docstrings. The tests likely cover various cache operations, and the docstrings explain the purpose and usage of the cache management methods. The get_public_key_from_cache, download, _log_warning_if_needed, and other methods were updated with tests and docstrings.
      - .gitlab-ci.yml: Changes likely include adding or modifying stages for running the new pytest tests and generating coverage reports.
      - pyproject.toml: This file was modified to add testing dependencies required for the enhanced test suite. Specifically, pytest, pytest-mock, pytest-ordering, and coverage were added under the test extra. This change enables running the new tests and generating coverage reports.
      
      The commands folder implements a command execution and management system, especially for Spack, using these key components and patterns:
      
      - Command Definitions (Enum/Constants): command_enum.py likely defines an enumeration (or constants) representing different commands. This promotes type safety and avoids stringly-typed code.
      
      - Command Sequence Builder: command_sequence_builder.py implements the Builder Pattern to construct CommandSequence objects (from command_sequence.py). This allows for flexible and readable creation of complex command sequences.
      
      - Command Sequence: command_sequence.py represents a sequence of commands to be executed. It encapsulates the order and configuration of commands.
      
      - Spack Command Factory: spack_command_sequence_factory.py uses the Factory Pattern to create Spack-specific CommandSequence objects. This centralizes the creation logic for different Spack commands and simplifies their usage. It likely uses command_sequence_builder.py internally.
      
      - Generic Command Runner: A command_runner.py (implied, not explicitly mentioned in the diff) likely handles the actual execution of commands, possibly using subprocesses. This abstracts the execution details from the command sequence logic.
      
      - Focus on Spack: The structure strongly suggests a focus on managing Spack environments and packages. The factory and command definitions likely reflect common Spack operations.
      
      Patterns used:
      - Enum/Constants Pattern: Used for defining distinct command types.
      - Builder Pattern: Used for constructing command sequences.
      - Factory Pattern: Used for creating Spack-specific command sequences.
      - Command Pattern: A close variant of the Command Pattern for encapsulating command execution. Abstraction of shell commands along with an invoker (command_runner) been implemented
      7cc4f758
    • adrianciu's avatar
      esd-spack-install: test package restructure · ccf28f62
      adrianciu authored
      ccf28f62
    • Adrian Ciu's avatar
      59ab786c
  5. Feb 18, 2025
  6. Feb 14, 2025