Skip to content

Add automated system updater for multi-host environments#5

Merged
jlegrand62 merged 4 commits intodevelopfrom
feature/system_deploy
Mar 11, 2026
Merged

Add automated system updater for multi-host environments#5
jlegrand62 merged 4 commits intodevelopfrom
feature/system_deploy

Conversation

@ArthurLuciani2
Copy link
Collaborator

### Description
This pull request introduces a new Python script, `system_updater.py`, to automate package updates across multiple remote hosts. Key features include:
- Multi-host package update automation via SSH.
- Task-based configuration management, supporting CSV-based input for host and environment setup.
- Virtual environment support (`conda`, `venv`, and system environments) with automated pip package installations.
- Git branch handling, including creation, stashing, and execution within specific branches.
- Threaded execution for parallel updates, with detailed logging for each host.

Additionally, two example configuration files, `update_config_dev.csv` and `update_config.csv`, are included as templates to demonstrate usage with different host and environment setups.

- Implemented `system_updater.py` to automate package updates across multiple remote hosts via SSH.
- Introduced the `Task` data structure to manage package and environment configurations.
- Added utilities for parsing CSV-based configurations and grouping tasks by host.
- Integrated logic for Git branch management, including branch creation and stashing of local changes.
- Added support for virtual environments (`conda`, `venv`, and system environments) and automated pip installations.
- Ensured threaded execution for parallel host processing with detailed logs per host.

Add example configurations `update_config_dev.csv` and `update_config.csv`

- Provided sample configuration files to demonstrate updating packages and environments across different hosts.
- Configured different environments for hosts using `conda` and `venv`.
- Included settings for pip options such as proxies and dependency management.
@ArthurLuciani2 ArthurLuciani2 self-assigned this Mar 10, 2026
@ArthurLuciani2 ArthurLuciani2 added the enhancement New feature or request label Mar 10, 2026
@ArthurLuciani2 ArthurLuciani2 force-pushed the feature/system_deploy branch from 3919dbb to fb6733b Compare March 10, 2026 14:28
…er utility

- Add `docs/developer/system_updater.md` detailing requirements, key features, usage examples, and CSV configuration format
- Insert shebang, encoding comment, and extensive module‑level docstring to `scripts/system_updater.py` reflecting the new documentation
- Reorder and clean up imports in `scripts/system_updater.py` (move `click`, add `ThreadPoolExecutor` imports, adjust typing imports)
- Ensure a trailing newline after the `main()` call for proper file termination
@jlegrand62 jlegrand62 merged commit bbc39d6 into develop Mar 11, 2026
1 check passed
@jlegrand62 jlegrand62 deleted the feature/system_deploy branch March 11, 2026 12:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants