Skip to content

Commit 7eb88eb

Browse files
Merge pull request #889 from GoogleCloudPlatform/v0.6.0
Merge release v0.6.0 into main
2 parents 90dc2db + 2bf4a69 commit 7eb88eb

File tree

663 files changed

+44269
-22082
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

663 files changed

+44269
-22082
lines changed

.coveragerc

-5
This file was deleted.

.flake8

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
# - N814: camelcase imported as constant
2929
#
3030
[flake8]
31-
ignore = E129,E221,E241,E272,E731,W503,W504,F999,N801,N813,N814,F403,F405
31+
ignore = E129,E203,E221,E241,E272,E731,W503,W504,F999,N801,N813,N814,F403,F405
3232
max-line-length = 99
3333

3434
per-file-ignores =

.flake8_applications

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# dependents. So we add exceptions for checks related to undefined names.
99
#
1010
# Note that we also add *per-line* exemptions for certain patterns in the
11-
# `ramble flake8` command. This is where F403 for `from ramble import *`
11+
# `ramble style` command. This is where F403 for `from ramble import *`
1212
# is added (because we *only* allow that wildcard).
1313
#
1414
# See .flake8 for regular exceptions.
@@ -20,5 +20,5 @@
2020
# - F821: undefined name `name`
2121
#
2222
[flake8]
23-
ignore = E129,E221,E241,E272,E731,E501,W503,W504,W605,F405,F821,F999,N801,N813,N814
23+
ignore = E129,E203,E221,E241,E272,E731,E501,W503,W504,W605,F405,F821,F999,N801,N813,N814
2424
max-line-length = 79
+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Workflow for deploying a single redirect page to GitHub Pages
2+
name: gh-pages deploy
3+
4+
on:
5+
# Runs on pushes targeting the default branch
6+
push:
7+
branches: ["develop"]
8+
9+
# Allows you to run this workflow manually from the Actions tab
10+
workflow_dispatch:
11+
12+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13+
permissions:
14+
contents: read
15+
pages: write
16+
id-token: write
17+
18+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20+
concurrency:
21+
group: "pages"
22+
cancel-in-progress: false
23+
24+
jobs:
25+
# Single deploy job since we're just deploying
26+
deploy:
27+
environment:
28+
name: github-pages
29+
url: ${{ steps.deployment.outputs.page_url }}
30+
runs-on: ubuntu-latest
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@v4
34+
- name: Setup Pages
35+
uses: actions/configure-pages@v5
36+
- name: Upload artifact
37+
uses: actions/upload-pages-artifact@v3
38+
with:
39+
# Only deploy the redirect directory
40+
path: './lib/ramble/docs/_gh_pages_redirect'
41+
- name: Deploy to GitHub Pages
42+
id: deployment
43+
uses: actions/deploy-pages@v4

.github/workflows/sphinx.yml

-27
This file was deleted.

.pre-commit-config.yaml

+13-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
11
repos:
22
- repo: local
33
hooks:
4-
- id: flake8
5-
name: flake8
6-
entry: share/ramble/qa/run-flake8-tests
4+
- id: style
5+
name: style
6+
entry: share/ramble/qa/run-style-tests
77
language: system
88
- id: short-unit-tests
99
name: short-unit-tests
1010
entry: share/ramble/qa/run-unit-tests
1111
language: system
12-
stages: [push]
12+
stages: [pre-push]
13+
14+
- repo: https://github.com/asottile/pyupgrade
15+
rev: v3.17.0
16+
hooks:
17+
- id: pyupgrade
18+
name: python-old-syntax-check
19+
args: [--py36-plus]
20+
files: (lib/ramble/ramble/|var/ramble/repos/).*\.py$
21+

.readthedocs.yaml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
version: 2
2+
3+
build:
4+
os: "ubuntu-22.04"
5+
tools:
6+
python: "3.12"
7+
8+
sphinx:
9+
configuration: lib/ramble/docs/conf.py
10+
fail_on_warning: false
11+
12+
python:
13+
install:
14+
- requirements: lib/ramble/docs/requirements.txt

LICENSE-APACHE

+1-1
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@
187187
same "printed page" as the copyright notice for easier
188188
identification within third-party archives.
189189

190-
Copyright 2022-2024 The Ramble Authors.
190+
Copyright 2022-2025 The Ramble Authors.
191191

192192
Licensed under the Apache License, Version 2.0 (the "License");
193193
you may not use this file except in compliance with the License.

LICENSE-MIT

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2022-2023 Google LLC, Ramble Project Developers.
3+
Copyright (c) 2022-2025 Google LLC, Ramble Project Developers.
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

+27-11
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
Ramble is a multi-platform experimentation framework to increase exploration
2-
productivity and improve reproducibility. Ramble is capable of driving software
3-
installation, acquire input files, configure experiments, and extract results.
1+
Ramble is a multi-platform experimentation framework that increases exploration
2+
productivity and improves reproducibility. Ramble is capable of driving
3+
software installation, acquiring input files, configuring experiments, and
4+
extracting results.
45
It works on Linux, macOS, and many supercomputers.
56

67
Ramble can be used to configure a variety of experiments for applications.
@@ -14,9 +15,11 @@ Python, and Ramble’s dependencies are installed as per the dependency section
1415
below.
1516
Then:
1617

17-
$ git clone -c feature.manyFiles=true https://github.com/GoogleCloudPlatform/ramble.git
18-
$ cd ramble/bin
19-
$ ./ramble workspace create -d test_workspace -c ../examples/basic_hostname_config.yaml
18+
git clone -c feature.manyFiles=true https://github.com/GoogleCloudPlatform/ramble.git
19+
python3 -m venv ramble/env
20+
. ramble/env/bin/activate
21+
pip install -r ramble/requirements.txt
22+
./ramble/bin/ramble workspace create -d test_workspace -c ramble/examples/basic_hostname_config.yaml
2023

2124
Dependencies
2225
------------
@@ -25,22 +28,27 @@ Ramble’s python dependencies can be installed using the included requirements.
2528

2629
e.g.
2730

28-
$ pip install -r requirements.txt
31+
pip install -r requirements.txt
2932

3033
We recommend Python >= 3.7 for Ramble, but a best effort attempt is made to
3134
support Python 3.6 as it is used by older operating systems such as Centos7.
3235
Specifically, you might need to update `pip` and downgrade `protobuf` when
3336
using Python 3.6.
3437

35-
Outside of these requirements, ramble requires an existing installation of
36-
spack for some application definition. See
37-
[Spack’s documentation](https://github.com/spack/spack#-spack) to install Spack.
38+
Outside of these requirements, Ramble requires package managers to be
39+
configured if they will be used as part of the experiments Ramble creates.
40+
41+
Although package manager support is not required to use Ramble, some
42+
experiments are more easily accomplished by allowing Ramble to drive the
43+
package manager execution. To allow this, package managers generally need to be
44+
installed indepednently from Ramble. For more information on this, see
45+
[Ramble's supported package managers](https://ramble.readthedocs.io/en/latest/package_managers.html).
3846

3947
Documentation
4048
----------------
4149

4250
Ramble’s documentation can be viewed at
43-
[https://googlecloudplatform.github.io/ramble/](https://googlecloudplatform.github.io/ramble/).
51+
[https://ramble.readthedocs.io/](https://ramble.readthedocs.io/).
4452

4553
For help with Ramble’s commands, run `ramble help` or `ramble help --all`.
4654

@@ -63,6 +71,14 @@ Resources:
6371

6472
Contributing
6573
------------------------
74+
When developing features for Ramble, it can be helpful to install the
75+
development requirements instead of the user requirements:
76+
77+
e.g.
78+
79+
pip install -r requirements-dev.txt
80+
81+
6682
Contributing to Ramble is relatively easy. Just send us a
6783
[pull request](https://help.github.com/articles/using-pull-requests/).
6884
When you send your request, make ``develop`` the destination branch on the

bin/ramble

+14-13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/sh
2-
# Copyright 2022-2024 The Ramble Authors
2+
# Copyright 2022-2025 The Ramble Authors
33
#
44
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
55
# https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
@@ -15,8 +15,13 @@
1515
# See https://stackoverflow.com/a/47886254
1616
""":"
1717
# prefer python3, then python, then python2
18-
for cmd in python3 python python2; do
19-
command -v > /dev/null $cmd && exec $cmd $0 "$@"
18+
## prefer RAMBLE_PYTHON environment variable, python3, python, then python2
19+
RAMBLE_PREFERRED_PYTHONS="python3 python python2 /usr/libexec/platform-python"
20+
for cmd in "${RAMBLE_PYTHON:-}" ${RAMBLE_PREFERRED_PYTHONS}; do
21+
if command -v > /dev/null "$cmd"; then
22+
export RAMBLE_PYTHON="$(command -v "$cmd")"
23+
exec "${RAMBLE_PYTHON}" "$0" "$@"
24+
fi
2025
done
2126

2227
echo "==> Error: ramble could not find a python interpreter!" >&2
@@ -30,10 +35,9 @@ from __future__ import print_function
3035
import os
3136
import sys
3237

33-
if sys.version_info[:2] < (2, 6):
38+
if sys.version_info[:2] < (3, 6):
3439
v_info = sys.version_info[:3]
35-
sys.exit("Ramble requires Python 2.6 or higher."
36-
"This is Python %d.%d.%d." % v_info)
40+
sys.exit("Ramble requires Python 3.6 or higher." "This is Python %d.%d.%d." % v_info)
3741

3842
# Find ramble's location and its prefix.
3943
ramble_file = os.path.realpath(os.path.expanduser(__file__))
@@ -46,9 +50,6 @@ sys.path.insert(0, ramble_lib_path)
4650
# Add external libs
4751
ramble_external_libs = os.path.join(ramble_lib_path, "external")
4852

49-
if sys.version_info[:2] == (2, 6):
50-
sys.path.insert(0, os.path.join(ramble_external_libs, 'py26'))
51-
5253
sys.path.insert(0, ramble_external_libs)
5354

5455
# Here we delete ruamel.yaml in case it has been already imported from site
@@ -57,11 +58,11 @@ sys.path.insert(0, ramble_external_libs)
5758
# Briefly: ruamel.yaml produces a .pth file when installed with pip that
5859
# makes the site installed package the preferred one, even though sys.path
5960
# is modified to point to another version of ruamel.yaml.
60-
if 'ruamel.yaml' in sys.modules:
61-
del sys.modules['ruamel.yaml']
61+
if "ruamel.yaml" in sys.modules:
62+
del sys.modules["ruamel.yaml"]
6263

63-
if 'ruamel' in sys.modules:
64-
del sys.modules['ruamel']
64+
if "ruamel" in sys.modules:
65+
del sys.modules["ruamel"]
6566

6667
import ramble.main # noqa
6768

bin/ramble-python

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2022-2024 The Ramble Authors
1+
# Copyright 2022-2025 The Ramble Authors
22
#
33
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
44
# https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# -------------------------------------------------------------------------
2+
# This is the default ramble repository configuration. It includes the
3+
# builtin ramble base application repository.
4+
#
5+
# Users can override these settings by editing the following files.
6+
#
7+
# Per-ramble-instance settings (overrides defaults):
8+
# $RAMBLE_ROOT/etc/ramble/base_application_repos.yaml
9+
#
10+
# Per-user settings (overrides default and site settings):
11+
# ~/.ramble/base_application_repos.yaml
12+
# -------------------------------------------------------------------------
13+
base_application_repos:
14+
- $ramble/var/ramble/repos/builtin
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# -------------------------------------------------------------------------
2+
# This is the default ramble repository configuration. It includes the
3+
# builtin ramble base modifier repository.
4+
#
5+
# Users can override these settings by editing the following files.
6+
#
7+
# Per-ramble-instance settings (overrides defaults):
8+
# $RAMBLE_ROOT/etc/ramble/base_modifier_repos.yaml
9+
#
10+
# Per-user settings (overrides default and site settings):
11+
# ~/.ramble/base_modifier_repos.yaml
12+
# -------------------------------------------------------------------------
13+
base_modifier_repos:
14+
- $ramble/var/ramble/repos/builtin
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# -------------------------------------------------------------------------
2+
# This is the default ramble repository configuration. It includes the
3+
# builtin ramble base package manager repository.
4+
#
5+
# Users can override these settings by editing the following files.
6+
#
7+
# Per-ramble-instance settings (overrides defaults):
8+
# $RAMBLE_ROOT/etc/ramble/base_package_manager_repos.yaml
9+
#
10+
# Per-user settings (overrides default and site settings):
11+
# ~/.ramble/base_package_manager_repos.yaml
12+
# -------------------------------------------------------------------------
13+
base_package_manager_repos:
14+
- $ramble/var/ramble/repos/builtin
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# -------------------------------------------------------------------------
2+
# This is the default ramble repository configuration. It includes the
3+
# builtin ramble base workflow manager repository.
4+
#
5+
# Users can override these settings by editing the following files.
6+
#
7+
# Per-ramble-instance settings (overrides defaults):
8+
# $RAMBLE_ROOT/etc/ramble/base_workflow_manager_repos.yaml
9+
#
10+
# Per-user settings (overrides default and site settings):
11+
# ~/.ramble/base_workflow_manager_repos.yaml
12+
# -------------------------------------------------------------------------
13+
base_workflow_manager_repos:
14+
- $ramble/var/ramble/repos/builtin

etc/ramble/defaults/config.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ config:
1919
verify_ssl: true
2020
connect_timeout: 10
2121
checksum: true
22-
shell: sh
22+
shell: bash
2323
input_cache: $ramble/var/ramble/cache
2424
workspace_dirs: $ramble/var/ramble/workspaces
25+
report_dirs: ~/.ramble/reports
2526
include_phase_dependencies: false
2627
spack:
2728
install:
@@ -32,3 +33,5 @@ config:
3233
flags: ''
3334
env_create:
3435
flags: ''
36+
env_view:
37+
link_type: symlink
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
formatted_executables:
22
command:
33
join_separator: '\n'
4+
commands:
5+
- '{unformatted_command}'

0 commit comments

Comments
 (0)