What's Changed
- Allow variables to be named the same as an application by @douglasjacobsen in #509
- Update the pr target env variable name by @linsword13 in #512
- Only compute var and stddev with valid inputs by @linsword13 in #513
- Add
black
code formatter by @linsword13 in #515 - Format ramble code with black formatter by @linsword13 in #516
- Label
ramble flake8
as deprecated by @linsword13 in #517 - Proof of concept for workload_groups by @rfbgo in #502
- Fix py11 and 12 support by @linsword13 in #518
- Cleanup items by @linsword13 in #519
- Format Ramble's object files with
black
by @linsword13 in #521 - Clean up unit-test warnings by @linsword13 in #522
- Add an application definition for nccl-tests by @douglasjacobsen in #523
- Update openfoam application definitions by @douglasjacobsen in #520
- Flush modifier success criteria list by @linsword13 in #526
- Fix invalid escape sequence in spack-runner by @linsword13 in #525
- Manually wrap pip errors to help remind users to install requirements by @rfbgo in #524
- Issue a warning for empty
mpi_command
by @linsword13 in #527 - Add a util for ramble app to get file path by @linsword13 in #528
- Update gid parsing to only accept number/ids by @rfbgo in #529
- Allow ramble workspace edit to edit licenses.yaml by @rfbgo in #530
- Wire up
fom_comparisons
in application definition by @linsword13 in #532 - General modifier functionality update by @douglasjacobsen in #533
- Add an option for
workspace analyze
to print out results by @linsword13 in #536 - Allow staging inputs in variable defined directory by @douglasjacobsen in #534
- Revert "Merge pull request #534 from douglasjacobsen/input_stage_updates by @rfbgo in #539
- Tweak
repo add
behavior by @linsword13 in #538 - Add coefficient of variance to summary stats by @linsword13 in #541
- Fix up undefined vars in llnl util by @linsword13 in #542
- Allow licenses section in merged config by @linsword13 in #540
- Package manager abstraction by @douglasjacobsen in #535
- Fix undefined variable err when deactivate in csh by @linsword13 in #545
- Migrate archival of spack files to package manager definition by @douglasjacobsen in #546
- Update docs on supported functions and operators by @linsword13 in #544
- Update application path references to new format by @douglasjacobsen in #547
- Add activation support in
workspace create
by @linsword13 in #543 - Mention the activate flag in tutorial by @linsword13 in #548
- Allow staging inputs in variable defined directories by @douglasjacobsen in #549
- Add package manager variable directive by @douglasjacobsen in #552
- Add the EESSI package manager by @douglasjacobsen in #551
- Purge all log files at beginning of experiment by @douglasjacobsen in #553
- Fix environment creation for spack package manager by @douglasjacobsen in #554
- Enable support for RAMBLE_PYTHON to control which python ramble uses by @douglasjacobsen in #555
- Use the current python interpreter for bootstrapping pip+venv by @linsword13 in #557
- Ensure the file util operates on a str by @douglasjacobsen in #560
- Add an exit-code tracking modifier by @douglasjacobsen in #556
- Add docs about var escaping in templates by @douglasjacobsen in #559
- Add dev guides for modifiers and package managers by @douglasjacobsen in #558
- Update parser building logic following changes in spack by @douglasjacobsen in #564
- Add a readthedocs config file by @linsword13 in #566
- Do not fail with doc build warnings by @linsword13 in #567
- Expand logs before adding to the purge set by @douglasjacobsen in #568
- Point doc link to RTD by @linsword13 in #569
- Remove gh-page deployment for docs by @linsword13 in #570
- Remove
time
from hostname application by @douglasjacobsen in #571 - Update modifiers which use mpirun to use pdsh by @douglasjacobsen in #562
- Add a
run_in_background
option for executables by @linsword13 in #573 - Add support for base object types by @douglasjacobsen in #575
- Deploy base classes that are in an object repo by @linsword13 in #576
- Change one remaining use of
SpackApplication
by @linsword13 in #580 - Extract tutorial configs as examples by @douglasjacobsen in #579
- Fix an invalid reference to a RunnerError by @douglasjacobsen in #582
- Fix path references for zlib mock apps by @douglasjacobsen in #581
- Fix workspace setup when config is set to bash by @linsword13 in #583
- Avoid style checking on removed files by @linsword13 in #584
- escape nccl_test regex to reduce warnings by @rfbgo in #585
- Update output capture semantics to not always capture stderr by @rfbgo in #578
- Remove an extra log entry during concretization by @linsword13 in #586
- Clean up older (3.5 and below) python syntax under /lib/ramble/ramble by @linsword13 in #588
- Update the info command to be more flexible by @douglasjacobsen in #589
- Test activate shortcut in the tutorial test by @linsword13 in #591
- Add pyupgrade check in both pre-commit and ci checks by @linsword13 in #592
- Centralize shell support utils by @linsword13 in #587
- Add expansion for zip and matrix members by @linsword13 in #590
- Convert experiment log list from set to stable list by @rfbgo in #593
- Minor update on dry-run help texts by @linsword13 in #594
- Refactor common result handling between single and repeat experiments by @linsword13 in #596
- Update test triggers to use python versions and support debian based distros by @douglasjacobsen in #597
- Allow using shorter name to specify dep in
register_builtin
by @linsword13 in #599 - Remove required MPI package for conditional PSM3 modifier by @douglasjacobsen in #600
- Update mit license to year 2024 by @linsword13 in #602
- Issue a warning when mirror with pip package manager by @linsword13 in #598
- Update sphinx config file for license year by @linsword13 in #603
- Add in dev guide links by @linsword13 in #604
- Redirect root gh-pages to the new rtd doc site by @linsword13 in #606
- Fix spacing for info output by @douglasjacobsen in #601
- Fix up a spack runner test by @linsword13 in #608
- Fix spack push_to_cache phase by @douglasjacobsen in #609
- Update tutorial build to use python_ver by @linsword13 in #610
- Mark long-running tests by @linsword13 in #611
- Remove
dry-run
option for workspace analyze by @linsword13 in #607 - Collect project number in gcp-metadata by @linsword13 in #614
- Update the unit-test timeout to 1 hour by @douglasjacobsen in #617
- Update upload semantics to allow the upload of failed experiments by @rfbgo in #563
- Allow gromacs to support additional args, and use workload groups by @rfbgo in #612
- Add orca app definition to the builtin repo by @linsword13 in #616
- Fix variable tracking with software environment rendering by @douglasjacobsen in #615
- Add support for "anti-match" in success_criteria by @linsword13 in #618
- Add an anti-match criterion for orca by @linsword13 in #620
- Fix anti-match by @linsword13 in #622
- Minor optimization for success_criteria processing by @linsword13 in #623
- Update locking semantics for applications and workspaces by @douglasjacobsen in #619
- Improve documentation around package managers, and add EESSI by @douglasjacobsen in #613
- Print per-experiment info under debug mode by @linsword13 in #624
- Fix pip external env support by @linsword13 in #625
- Update README.md by @samskillman in #626
- Fix wait-for-bg-jobs undefined variable by @linsword13 in #628
- Add a modifier to make it easy to wrap perf tools around an executable by @linsword13 in #629
- Add validation for objects that don't define
name
attribute by @linsword13 in #630 - Refactor app result into a class by @linsword13 in #627
- Add a command for generating new workspace configuration files by @douglasjacobsen in #621
- Add a requirements-dev to separate development and user requirements by @douglasjacobsen in #632
- add repeat index as a var in output by @rfbgo in #633
- Add support for regex match in expander by @linsword13 in #631
- Add support for arbitrary commands in formatted executables by @douglasjacobsen in #634
- Update include path support by @douglasjacobsen in #636
- Collect detected arch info from both spack and gcc, as available by @linsword13 in #637
- Update URLs in rst docs by @douglasjacobsen in #638
- Add an option for analyze to print summary stats only by @linsword13 in #640
- Only calculate n_successful_repeats once per exp by @dapomeroy in #639
- Update analyze's error message to provide better clarity by @linsword13 in #641
- Add vm-topology info to the vm-metadata modifier by @linsword13 in #643
- Fix '--where' experiment index filter on info by @dapomeroy in #642
- Remove duplicate get_experiment call by @dapomeroy in #644
- Update repos used in deployments by @douglasjacobsen in #645
- Remove packages in spack stack by @douglasjacobsen in #646
- Create Cloud-build tutorial triggers by @douglasjacobsen in #647
- Add documentation on advanced topics by @douglasjacobsen in #648
- Fix
repo remove
to remove all applicable repos by @linsword13 in #651 - fix errors in tutorial docs by @akiki-liang0 in #653
- Allow using modifier_variables inside prepare_analysis by @linsword13 in #650
- Move tuned-adm to builtin repo by @linsword13 in #649
- track archive upload url on filesystem by @rfbgo in #654
- Do not abort when metadata log is missing by @linsword13 in #655
- Clean up aps log directory before run by @linsword13 in #656
- fix/update tutorial issues by @akiki-liang0 in #658
- Update intel-hpl app definition by @linsword13 in #657
- Warn if no phases are exec across all experiments by @rfbgo in #661
- Change default shell to bash by @linsword13 in #660
- Support local rel path as deployment pull path by @linsword13 in #662
- Add mention of
get_file_path
util in app dev guide by @linsword13 in #664 - Allow forcibly setting yaml values by @douglasjacobsen in #665
- A couple minor updates to the gcp-metadata modifier by @linsword13 in #666
- Remove an unused config util by @linsword13 in #667
- Add support for string slicing in expander by @linsword13 in #668
- Add doc on string slicing by @linsword13 in #669
- Skip stat calc when no aggregatable FOMs by @linsword13 in #671
- Disable explicit testing of ramble directives by @douglasjacobsen in #672
- Update used variable tracking by @douglasjacobsen in #674
- Allow configuring psm3 id output verbosity level by @linsword13 in #676
- If FOMs are None, float() raises a TypeError by @samskillman in #677
- Elevate the debug option to be printed with
ramble help
by @douglasjacobsen in #678 - Add NCCL_TESTS_SPLIT_MASK to nccl-tests application by @douglasjacobsen in #675
- Add filtering so warning is only given for non-default-selection by @rfbgo in #663
- Defer command expansion and fix used variable tracking by @douglasjacobsen in #680
- Quote escape wildcard in tutorial by @douglasjacobsen in #679
- Add a command runner utility class by @douglasjacobsen in #673
- Enable variable modifications to layer changes on the same variable by @douglasjacobsen in #681
- Ensure ssh is used when executing pdsh commands by @douglasjacobsen in #682
- Update json output ordering by @rfbgo in #684
- Add a space in front of aps command modification by @linsword13 in #685
- Allow force writing workspace config files by @douglasjacobsen in #686
- Add level name to annotate the level number by @linsword13 in #687
- Add local mode to gcp-metadata modifier by @rfbgo in #688
- Remove new lines when defining path variables for spack by @douglasjacobsen in #689
- Add a pyxis-enroot modifier by @douglasjacobsen in #683
- Add a status-markers modifier by @douglasjacobsen in #690
- Add more flexible report generation for intel-aps modifier by @linsword13 in #693
- Fix printing single-string attr under verbose mode by @linsword13 in #694
- Remove long_print methods from base object classes by @douglasjacobsen in #696
- Set RAMBLE_PYTHON when setup-env is sourced by @douglasjacobsen in #692
- Add Exchange workload to imb by @linsword13 in #697
- Fix up the missing mpi_command warning by @linsword13 in #698
- Update the error message when no valid editor is found by @douglasjacobsen in #700
- Fix experiment and workspace inventories and hashes by @douglasjacobsen in #701
- Add FOM on the vm_id that executes the job by @linsword13 in #702
- Allow modifiers to add attributes into experiment inventories by @douglasjacobsen in #705
- Allow
workspace concretize
to be additive by @douglasjacobsen in #695 - Front-end commands for managing software by @douglasjacobsen in #691
- Clean up docstrings on language directives by @douglasjacobsen in #707
- Update LAMMPS figures of merit by @douglasjacobsen in #709
- Remove unneeded quotes from example configs by @douglasjacobsen in #708
- Allow spack-stack to define external packages that should be automatically detected by @douglasjacobsen in #706
- Remove directive based language tests by @douglasjacobsen in #710
- fix formatting issue in ws docs by @rfbgo in #713
- Update nested formatting for workspace docs by @rfbgo in #714
- Add Py313 to black's list by @linsword13 in #716
- Update configuration precedence documentation by @douglasjacobsen in #715
- Expand deployment arguments and clean URLs by @douglasjacobsen in #712
- Force enable
ramble workspace archive -t
in warning case by @rfbgo in #718 - Add separator functionality to variable modification directives by @douglasjacobsen in #704
- Add metadata tracking to workspace object by @douglasjacobsen in #711
- Allow dlb auto mode by @linsword13 in #719
- Add expander support for NotIn by @linsword13 in #721
- Create the extract dir, which may not be the same as the import dir by @samskillman in #722
- Update pre-commit config by @linsword13 in #724
- Remove an unneed print by @douglasjacobsen in #727
- update sphinx requirements to avoid blocking erorrs by @rfbgo in #725
- Add ethtool modifier to public repo by @linsword13 in #723
- Remove unneeded prints from exit-code modifier by @douglasjacobsen in #729
- Fix formatting of managed software by @douglasjacobsen in #728
- fix bullet rendering for various rst files by @rfbgo in #734
- Add a
disabled
mode to all modifier definitions by @douglasjacobsen in #720 - Fix an issue with the
target_dir
arg on input files by @douglasjacobsen in #726 - Allow package managers to have their own sub-directories under a workspace's software dir by @douglasjacobsen in #703
- Update the mod test to not assume the first phase by @linsword13 in #736
- Allow
workspace info
to filter software displayed to only parts that are used by experiments by @douglasjacobsen in #737 - Add an application definition for NeMo by @douglasjacobsen in #730
- Update the hashing semantics of the pyxis-enroot modifier by @douglasjacobsen in #731
- Update file hashing to read blocks instead of whole file by @douglasjacobsen in #732
- Add software provenance extraction to analysis pipeline by @douglasjacobsen in #699
- Allow
required_variable
to only enforce on certain modes by @linsword13 in #738 - Fix package manager provenance test by @douglasjacobsen in #740
- Update documentation for formatted_executables by @douglasjacobsen in #735
- Fix up pip package manager by @linsword13 in #743
- Fixup intro tenses in README.md by @rfbgo in #744
- Add nemo executable to create transformer cache by @douglasjacobsen in #741
- Allow command runners to be given an alternative path by @douglasjacobsen in #747
- Add babelstream application definition by @douglasjacobsen in #748
- Clean up an out-dated spack reference in test by @linsword13 in #751
- Use CommandRunner in pip runner by @linsword13 in #750
- Fix unit test warning with py-nemo by @douglasjacobsen in #749
- Fix workflow filters that map to no workloads by @douglasjacobsen in #752
- Fix / enable parallel unit tests by @douglasjacobsen in #745
- Tighten up the regex match to avoid capturing n/a by @linsword13 in #753
- Avoid locking workspace in pipelines by @douglasjacobsen in #754
- Unify hpl and intel-hpl via base_application by @linsword13 in #756
- Add a
ramble workspace logs
command by @douglasjacobsen in #742 - Add an apptainer modifier by @douglasjacobsen in #755
- Allow environment_variable directive to take a workload_group arg by @douglasjacobsen in #758
- Add a modifier for GCP cloud logging by @douglasjacobsen in #759
- Make deployment-path as required for
ramble deployment pull
by @linsword13 in #760 - Fix incorrect enroot documentation by @douglasjacobsen in #746
- Fix up string slicing evaluation by @linsword13 in #761
- Add a nccl-tcpxo modifier by @douglasjacobsen in #739
- Fix up a unit-test that may fail when run in parallel by @linsword13 in #762
- Add experiment hash to json output by @rfbgo in #763
- Add a nccl-env modifier to manage NCCL environment variables by @douglasjacobsen in #757
- Add an application definition for Nvidia's HPL by @douglasjacobsen in #765
- Display FOM summary in order by @linsword13 in #766
- Ensure summary foms are at top by @linsword13 in #767
- py-nemo: Add success and define processed log variable by @douglasjacobsen in #769
- Allow description for
required_variable
directive by @linsword13 in #768 - Defend against -1 values for n_nodes (and update examples) by @rfbgo in #764
- Use the actual experiment status for success count by @linsword13 in #771
- Avoid hard-coding success string by @linsword13 in #772
- Reports v2 by @rfbgo in #717
- py-nemo: Add generated nemo.yaml to archive by @douglasjacobsen in #773
- Add a couple fom_type annotations to gcp-metadata by @linsword13 in #775
- Avoid repeating the variable name in info print by @linsword13 in #778
- Add symlink paths to analyze and reports output by @dapomeroy in #776
- Add
dependents
support forregister_builtin
by @linsword13 in #779 - Add support for generating psm3 stat files by @linsword13 in #780
- Add argument to 'clean' command to remove reports files by @dapomeroy in #777
- Add Reports tests and reduce duplication by @dapomeroy in #781
- Add roms application definition by @rfbgo in #785
- Fix env var propagation between experiments by @douglasjacobsen in #784
- Add yaml option removal, and update py-nemo application definition by @douglasjacobsen in #783
- py-nemo: Add custom string injection into workloads by @douglasjacobsen in #788
- Update several object definitions to use better paths by @douglasjacobsen in #787
- Remove incorrect OrderedDict references in yaml_generation by @douglasjacobsen in #791
- py-nemo: Prevent errors with empty injected string by @douglasjacobsen in #792
- Allow fom units to be expanded by regex group by @rfbgo in #790
- Minor cleanups for pkgman by @linsword13 in #793
- Add hp2p app definition by @rfbgo in #795
- Allow customization of the link type in spack environments by @douglasjacobsen in #794
- Fix invalid reference when creating env-vars with workload groups by @douglasjacobsen in #796
- Update nvidia hpl workload groups, and block_size default by @douglasjacobsen in #797
- Fix HPL preventing variable overrides from workspace config by @douglasjacobsen in #798
- Avoid showing duplicate modifier variable names in info print by @linsword13 in #801
- Allow typed dictionaries, and dictionary subscripts from expander by @douglasjacobsen in #799
- Add support for HPL-MxP to nvidia-hpl by @douglasjacobsen in #802
- Add the missing
ramble docs
command by @linsword13 in #805 - Minor fix on Ramble spelling by @linsword13 in #808
- Update license year to 2025 by @linsword13 in #807
- Update variable modifications with separators by @douglasjacobsen in #809
- Add a
register_template
directive to objects by @linsword13 in #804 - Search templates up the object inheritance chain by @linsword13 in #811
- Abstract HPCG and add NVIDIA-HPCG by @douglasjacobsen in #810
- Use template directive for hpcg by @linsword13 in #812
- Revert #630 by @linsword13 in #813
- Fix relative log paths in FOM and success criteria definitions by @douglasjacobsen in #815
- Convert HPL input generation to use template directive by @douglasjacobsen in #816
- Update the auto-completion command mention by @linsword13 in #817
- Add the ability to define template-specific extra variables by @linsword13 in #814
- Update FOM definitions and split out HPL-MxP by @douglasjacobsen in #818
- Add a slurm workflow manager by @linsword13 in #789
- Add nccl-gib modifier for a3Ultra by @akiki-liang0 in #819
- Allow user to pass additional_args to ior by @rfbgo in #820
- Fix double/single colon regex for py-nemo by @samskillman in #822
- Copy template files in deploy by @linsword13 in #821
- Apply pyupgrade to builtin repos by @linsword13 in #823
- Add new yaml files to
ramble workspace edit
by @dapomeroy in #803 - Allow templates registered into other workspace paths by @douglasjacobsen in #826
- Workflow tweaks by @linsword13 in #825
- Ensure the object template vars point to dest path correctly by @linsword13 in #827
- Add checks around partition config by @linsword13 in #828
- Fix issue with deployments push on spack packages by @rfbgo in #829
- Allow repeated variable modifications by @douglasjacobsen in #831
- Add a
batch_wait
script by @linsword13 in #830 - Fix path to hpl-mxp script by @douglasjacobsen in #832
- Abstract container modifiers, and define a docker modifier by @douglasjacobsen in #824
- Add in a hook for supplying variables for template render by @linsword13 in #833
- Clean up use of mutable defaults under lib/ramble/ramble by @linsword13 in #835
- Clean up static methods by @linsword13 in #837
- Ensure package conflicts are printed correctly by @douglasjacobsen in #838
- Clean up NVIDIA HPC Benchmark application definitions by @douglasjacobsen in #836
- Make slurm execute script customizable by @linsword13 in #834
- Fail more gracefully upon status check error by @linsword13 in #839
- Archive templates rendered via
register_template
by @linsword13 in #840 - Fix some incorrect defaults in nvidia-hpl by @douglasjacobsen in #843
- Take in user-defined
batch_submit
by @linsword13 in #841 - Issue a warning when
get_status
failed to resolve by @linsword13 in #842 - Prune circular imports by @linsword13 in #844
- Allow yaml keys to be typed when generating and reading yaml by @douglasjacobsen in #845
- Fix slurm batch_submit self-reference by @linsword13 in #850
- Add application definition for Cosmoflow by @douglasjacobsen in #847
- Update workflow managers to have an execution banner by @douglasjacobsen in #848
- Enable checks by default on nccl-tests to match default behavior by @samskillman in #851
- Removing an unneeded print by @douglasjacobsen in #852
- Improve error messages when pulling invalid / incomplete deployments by @douglasjacobsen in #849
- Clean up unused variables by @linsword13 in #854
- Add default variable to define likely hostfile path by @rfbgo in #855
- Add target information to spack software output by @douglasjacobsen in #856
- Add an application to determine system information by @douglasjacobsen in #857
- Skip using workflow manager status when it fails to resolve by @linsword13 in #858
- Add SLURM_NODEID workflow manager variable by @dapomeroy in #859
- Front-end commands for managing workspace includes. by @douglasjacobsen in #853
- Fix incorrect env-var names in nvidia-hpl by @douglasjacobsen in #861
- Prevent errors when editing results that are None by @douglasjacobsen in #862
- Guard appending results when no results exist by @douglasjacobsen in #866
- Allow env-var names to be expanded by @douglasjacobsen in #868
- Add support for building from docker files by @douglasjacobsen in #846
- py-cosmoflow: Allow param tensorflow version by @douglasjacobsen in #870
- feat: update lammps reaxff to use newer builds by @vsoch in #869
- Reset success criteria before evaluating each experiment by @douglasjacobsen in #871
- Add in
FAILED
to the status_map by @linsword13 in #872 - Add a success_criteria to imb by @linsword13 in #873
- Fix deployment pull file path issue by @linsword13 in #874
- Allow trailing slashes in workspace includes by @douglasjacobsen in #875
- Skip workload input mount if no workload inputs exist by @douglasjacobsen in #877
- Fix up the t_max and t_avg foms in imb by @linsword13 in #879
- Minor cleanups by @linsword13 in #878
- Remove deprecated code for release v0.6.0 by @dapomeroy in #865
- Merge release v0.6.0 into main by @dapomeroy in #889
New Contributors
- @samskillman made their first contribution in #626
- @akiki-liang0 made their first contribution in #653
Full Changelog: v0.5.0...v0.6.0