Skip to main content
`Ctrl`+`K`

# Changelog

## 0.13.15 (unreleased)

## 0.13.14 (2025-08-25)

### Enhancements

- Support importing from multiple previous Abaqus jobs using the Abaqus Pseudo-Builder (ISSUE-822, MERGE-1241). By Matthew Fister.

## 0.13.13 (2025-08-20)

### Documentation

- Document the modsim template SCons configuration structure (ISSUE-689, MERGE-1233). By Sergio Cordova and Kyle Brindley.

### Internal Changes

- Add parameter space propagation when merging studies with unique parameter spaces (ISSUE-951, MERGE-1232). By Chris Johnson.

- Address Xarray future warnings related to default merge behavior (ISSUE-954, MERGE-1237). By Kyle Brindley.

## 0.13.12 (2025-07-21)

### Internal Changes

- Improve test suite for set name handling during parameter study merge operations (ISSUE-948, MERGE-1229). By Kyle Brindley.

- Store QOI “date” coordinate as datetime64 object (ISSUE-950, MERGE-1230). By Matthew Fister.

## 0.13.11 (2025-07-15)

### Bug fixes

- Ensure OneAtATime parameter study’s nominal parameter set is always the first set, e.g. “parameter_set0” (ISSUE-947, MERGE-1228). By Kyle Brindley.

## 0.13.10 (2025-07-14)

### Bug fixes

- Fix default QOI pseudo-builder arguments to make expected QOI path optional (ISSUE-943, MERGE-1226). By Matthew Fister.

- Use absolute paths in QOI pseudo-builder commands (ISSUE-944, MERGE-1227). By Matthew Fister.

## 0.13.9 (2025-07-08)

### Bug fixes

- Verify correct handling of set hashes and nonuniform parameter space after a merge operation. (ISSUE-937, MERGE-1217). By Chris Johnson.

- Fix `print_study` error affecting Windows users. By Sergio Cordova.

### Internal Changes

- Cleanup unused imports and enforce in project style CI jobs. By Kyle Brindley.

- Use PyPI twine installation until conda-forge `twine check` is fixed on macOS. By Kyle Brindley.

- Single definition of the shield/badges URLs. By Kyle Brindley.

- Make QOI update target unique. By Matthew Fister.

### Documentation

- Add Windows Powershell instructions to quickstart tutorials (ISSUE-939, MERGE-1218). By Sergio Cordova.

## 0.13.8 (2025-06-19)

### Internal Changes

- Fix GitHub-Pages deployment action. By Kyle Brindley.

## 0.13.7 (2025-06-19)

### Documentation

- Add Windows Powershell instructions to core tutorials (ISSUE-818, MERGE-1197). By Sergio Cordova.

### Internal Changes

- Generalize internal parameter study merge operations for a future merge arbitrary number of studies feature (ISSUE-918, MERGE-1193). By Chris Johnson.

- Fix the GitHub Actions conda-build test workflow (ISSUE-933, MERGE-1213). By Kyle Brindley.

- Move the AEA RHEL CI jobs out of a child pipeline and into main parent pipeline to allow a coverage badge (ISSUE-934, MERGE-1214). By Kyle Brindley.

- Drop Python 3.9 support and testing to match minimum Xarray version dependencies. New minimum supported version of Python is 3.10 (ISSUE-936, MERGE-1215). By Kyle Brindley.

- Update path unit tests to account for differences in Windows drive letter. By Kyle Brindley.

## 0.13.6 (2025-06-05)

### Internal Changes

- Fix internal deployment pipeline. By Kyle Brindley.

## 0.13.5 (2025-06-05)

### New Features

- Experimental Quantity of Intereset (QOI) module for advanced post-processing and regression testing (ISSUE-904, MERGE-1164). By Matthew Fister and Kyle Brindley.

### Internal Changes

- Skip `twine check` test on macOS until shell kill error is fixed. By Kyle Brindley.

- Restructure internal deployment around Gitlab-CI tag pipelines. By Kyle Brindley.

- Preserve QOI datatree structure when merging (MERGE-1205). By Matthew Fister.

- Allow a QOI date attribute to be specified via the `archive` subcommand (MERGE-1211). By Matthew Fister.

- Only propagate common attributes when merging QOI xarray objects. (MERGE-1206). By Matthew Fister.

- Create helper function for generating multiple kinds of PDF reports (MERGE-1212). By Matthew Fister.

- Fully replace cached CI environments with a CI job-specific environment to reduce collisions in Conda operations that cause false negatives. By Kyle Brindley.

## 0.13.4 (2025-05-29)

### Internal Changes

- Fix PyPI deployments (MERGE-1200). By Kyle Brindley.

## 0.13.3 (2025-05-29)

### Internal Changes

- Fix GitHub Actions deployments (MERGE-1199). By Kyle Brindley.

## 0.13.2 (2025-05-29)

### Documentation

- Add Chris Johnson to authors list (ISSUE-906, MERGE-1181). By Chris Johnson.

- Replace GNU Make lesson plan reference with SCons lesson plan (ISSUE-913, MERGE-1183). By Kyle Brindley.

- Handle time increments in Gmsh+Calculix tutorial (ISSUE-915, MERGE-1187). By Kyle Brindley.

- Update copyright year range. By Kyle Brindley.

- Remove Gmsh+CacluliX tee behavior because it results in false positives during workflow execution (ISSUE-912, MERGE-1190). By Kyle Brindley.

- Rewrite the Gmsh+Calculix tutorial as a fully open-source workflow equivalent to the existing quickstart with Abaqus (MERGE-1191). By Kyle Brindley.

- Build documentation with full runtime dependencies for resolved type hints (MERGE-1195). By Kyle Brindley.

- Minor updates to the pure SCons quickstart for better use of executable program path environment variable. By Kyle Brindley.

### Internal Changes

- Begin generalizing internal parameter study merge operations for a future merge arbitrary number of studies feature (ISSUE-841, MERGE-1184). By Chris Johnson.

- System test for printing available fetch files. By Kyle Brindley.

- Gitlab-CI job specific environment for HPC CI job. By Kyle Brindley.

- Skip fragile modsim template documentation build system tests with regular, intermittent failures (MERGE-1192). By Kyle Brindley.

- Add an option to keep the system test build artifacts for troubleshooting (MERGE-1194). By Kyle Brindley.

- Add more minimal CI job environments to reduce collisions in cached environment jobs (MERGE-1195). By Kyle Brindley.

## 0.13.1 (2025-04-16)

### Bug fixes

- Fix the GitHub-Actions Conda environment creation options. By Kyle Brindley.

## 0.13.0 (2025-04-14)

### Bug fixes

- Remove type casting for combinations of ints/floats, ints/bools, and floats/bools during parameter study merge operations. Add unit tests for set hash calculation and system tests for read from disk operations to catch more type casting errors (ISSUE-907, MERGE-1173). By Kyle Brindley.

### Breaking changes

- Remove the parameter generator `scons_write` action from the public API in favor of the full `parameter_study_write` pseudo-builder (ISSUE-883, MERGE-1167). By Kyle Brindley.

- Remove the parameter generator class dry run API option in favor of the write method API (ISSUE-859, MERGE-1166). By Kyle Brindley.

- Deprecate old naming convention for project help messages in favor of `project_help_` naming convention (ISSUE-862, MERGE-1168). By Kyle Brindley.

- Remove deprecated set and hash coordinate keys (ISSUE-855, MERGE-1169). By Kyle Brindley.

- Remove duplicate Abaqus option handling and convert to flag style options in AbaqusPseudoBuilder (ISSUE-867, MERGE-1170). By Kyle Brindley.

## 0.12.10 (2025-04-10)

### Documentation

- Avoid module conflicts with common AEA modulefiles in the Quinoa tutorial (ISSUE-902, MERGE-1162). By Kyle Brindley.

### Internal Changes

- Explicitly limit VTK version that crashes on macOS (ISSUE-899, MERGE-1161). By Kyle Brindley.

- Overhaul CI environment handling to reduce collisions in Conda operations and simplify CI job cleanup (MERGE-1163). By Kyle Brindley.

### Enhancements

- Print shell command STDERR message on exceptions when using the construction shell environment method (ISSUE-902, MERGE-1162). By Kyle Brindley.

## 0.12.9 (2025-04-03)

### New Features

- Experimental builder support for Truchas (ISSUE-890, MERGE-1140). By Kyle Brindley.

### Bug fixes

- Include the README and pyproject.toml configuration in the Gitlab-Registry PyPI style pip package (MERGE-1146, MERGE-1148). By Kyle Brindley.

### Documentation

- Add external resource documentation to modsim templates (ISSUE-846, MERGE-1139). By Chris Johnson.

- Match work-in-progress Truchas tutorial source files more closely to the WAVES quickstart tutorial. Files may be fetched with `waves fetch tutorials/tutorial_truchas` (MERGE-1145). By Kyle Brindley.

- Add Spack to installation instructions and compute environment management discussion (ISSUE-894, MERGE-1157). By Kyle Brindley.

### Internal Changes

- Set minimum SALib version to match introduction of `sample.sobol` module (MERGE-1147). By Kyle Brindley.

- Add command line interface for greater package recipe support to documentation packaging post-pip-install utility (ISSUE-896, MERGE-1149). By Kyle Brindley.

- Create build and install aliases to make packaging operations more consistent across multiple package managers: pip, conda, spack (ISSUE-893, MERGE-1150). By Kyle Brindley.

- Re-organize GitHub Actions around a conda-build test workflow and a release workflow. Include automated PyPI publication in the release workflow and remove the conda package from the release artifacts (ISSUE-897, MERGE-1155). By Kyle Brindley.

- Add a CI job for testing the as-installed pip package in a Python venv (ISSUE-898, MERGE-1156). By Kyle Brindley.

- Add SCons, Sphinx, and CLI markers for pytest control while system testing (ISSUE-900, MERGE-1158). By Kyle Brindley.

## 0.12.8 (2025-03-18)

### New Features

- Add one-at-a-time parameter generator. (ISSUE-853, MERGE-1101). By Chris Johnson.

- Add public emitter factory for the Abaqus solver builder factory (ISSUE-877, MERGE-1120). By Kyle Brindley.

- Add public emitters for the Abaqus solver builder factory based builders (ISSUE-877, MERGE-1120). By Kyle Brindley.

- Add Abaqus datacheck, explicit, and standard builders with emitters to the WAVES construction environment (ISSUE-877, MERGE-1120). By Kyle Brindley.

### Bug fixes

- Allow periods in Abaqus pseudo-builder job names (ISSUE-878, MERGE-1119). By Kyle Brindley.

- Handle the project help keyword argument breaking change from `keep_local` to `local_only` released as a fix in SCons 4.9.0: https://scons.org/scons-490-is-available.html. The `project_help` related functions make the same breaking change in the keyword argument name to match SCons, but preserve support for older versions of SCons by falling back to the older keyword argument when necessary (ISSUE-879, MERGE-1128). By Kyle Brindley.

- Avoid always re-build behavior in parameter study write pseudo-builder (ISSUE-881, MERGE-1131). By Kyle Brindley.

- Use the required `job` option of the Abaqus solver builder factory in the Abaqus pseudo-builder (ISSUE-884, MERGE-1133). By Kyle Brindley.

### Documentation

- Add completed parameter lists, returns, and typing hints to parameter generator private functions (ISSUE-882, MERGE-1134). By Chris Johnson.

- Use the WAVES construction environment Abaqus solve builder factory in the tutorials (ISSUE-876, MERGE-1118). By Kyle Brindley.

- Explicit source and target lists in the tutorials to limit use of intermediate and advanced Python concepts. Users report that the mix of Python and SCons concepts makes learning SCons more difficult (ISSUE-876, MERGE-1118). By Kyle Brindley.

- Use Abaqus datacheck, explicit, and standard builders with emitters from the WAVES construction environment in modsim templates (ISSUE-877, MERGE-1120). By Kyle Brindley.

- Clarify all output files from tutorials’ rectangle Abaqus journal files (ISSUE-877, MERGE-1120). By Kyle Brindley.

- Update the WAVES quickstart Abaqus installation note to take advantage of the `--abaqus-command` project command line option (MERGE-1126). By Kyle Brindley.

- Update tutorial visualize images (ISSUE-835, MERGE-1136). By Sergio Cordova.

### Internal Changes

- Limit scope of changes possible in automated Gitlab release job (ISSUE-875, MERGE-1117). By Kyle Brindley.

- Remove the WAVES package mocks in the modsim template documentation configuration (ISSUE-854, MERGE-1125). By Kyle Brindley.

- Consistent naming convention for mock warning objects in `tests_help_messages` (ISSUE-880, MERGE-1130). By Chris Johnson.

- Remove Paraview from CI environment in favor of the fully specified runtime dependencies in `ccx2paraview>=3.2.0` conda-forge package, which uses the mutually incompatible VTK package instead of Paraview. Make the Gmsh+CalculiX tutorial compatible with `ccx2paraview>=3.1` (MERGE-1132). By Kyle Brindley.

- Update visualize subcommand to use `networkx.topological_generation` to set image columns (ISSUE-835, MERGE-1129). By Sergio Cordova.

### Enhancements

- Coerce each parameter into a consistent data type when initializing a parameter study. Warn the user when a parameter contains inconsistent data types. (ISSUE-871, MERGE-1123). By Chris Johnson.

- Added `--break-paths` option to visualize subcommand to format paths by inserting newlines after path separator (ISSUE-887, MERGE-1135). By Sergio Cordova.

- Improved edge rendering order to enhance node visibility in visualize subcommand output (ISSUE-888, MERGE-1137). By Sergio Cordova.

## 0.12.7 (2025-02-26)

### Bug fixes

- Add the Abaqus required `-job` option to the Abaqus solver builder factory (ISSUE-868, MERGE-1113). By Kyle Brindley.

- Fix ambiguous odb extract options when provided user odbreport arguments (ISSUE-869, MERGE-114). By Kyle Brindley.

### Internal Changes

- Automated Gitlab release creation (ISSUE-873, MERGE-1116). By Kyle Brindley.

### Enhancements

- Handle subdirectory style builds in the Abaqus Pseudo-Builder (MERGE-1111). By Kyle Brindley.

- Add Abaqus Pseudo-Builder to the WAVES construction environment (MERGE-1112). By Kyle Brindley.

- Reduce user argument caveats in odbreport options when using odb extract (ISSUE-869, MERGE-114). By Kyle Brindley.

## 0.12.6 (2025-02-24)

### New Features

- Release the parameter study task/SConscript wrapper pseudo-builders as fully supported features (MERGE-1095). By Kyle Brindley.

- Add a project alias method and enhance the project help message to include descriptions for targets and aliases. (ISSUE-838, MERGE-1076). By Sergio Cordova.

- Experimental parameter study write pseudo-builders (ISSUE-857, MERGE-1097). By Kyle Brindley.

### Documentation

- Use hardcoded target and source filename strings in tutorials where possible. Users report that the mix of Python and SCons concepts makes learning SCons more difficult. Hardcoded filenames will make the task definitions easier to understand (MERGE-1107, MERGE-1108, MERGE-1109). By Kyle Brindley.

### Internal Changes

- Replace optional mutable default arguments with None types (ISSUE-850, MERGE-1084). By Chris Johnson and Kyle Brindley.

- Flesh out unit tests related to output type file handling in parameter generator write method (ISSUE-860, MERGE-1098). By Kyle Brindley.

- Move the parameter study dry run implementation from the ParameterGenerator class initialization to the write method API. Maintain backward compatibility with a warning (ISSUE-863, MERGE-1099). By Kyle Brindley.

- Pin Fierro dependency while waiting on upstream package fix (ISSUE-864, MERGE-1102). By Kyle Brindley.

- Miscellaneous unit test coverage updates (MERGE-1103, MERGE-1104, MERGE-1106). By Kyle Brindley.

- Re-name project help functions for a more consistent naming scheme (ISSUE-861, MERGE-1100). By Sergio Cordova.

## 0.12.5 (2025-01-27)

### Bug fixes

- Fix integer type handling when merging parameter studies. Xarray merge type casts to float for comparisons during merge operations. Cast all data back to original types after merging parameter studies (ISSUE-856, MERGE-1088). By Kyle Brindley.

### Internal Changes

- Match the Conda build recipes more closely to the conda-forge waves-feedstock for easier downstream/upstream diffs (MERGE-1078). By Kyle Brindley.

- Re-name the set coordinate name of parameter study Xarray Datasets from `parameter_sets` to `set_name` for better consistency across the internal naming convention, external API, and tutorial examples. Preserves the older coordinate with a user deprecation warning for the transition period and provides a new `waves.parameter_generatores.SET_COORDINATE_KEY` constant to help users to minimize hardcoded key names in the future (MERGE-1085, MERGE-1086). By Kyle Brindley.

- Remove proxyout from the HPC configuration (ISSUE-849, MERGE-1083). By Chris Johnson.

- Updated tags for powershell runner (ISSUE-858, MERGE-1091). By Sergio Cordova.

### Enhancements

- Perform more complete argument substitutions in the task parameter study pseudo-builder (ISSUE-852, MERGE-1080). By Kyle Brindley.

- Limit package mocks to those strictly necessary in modsim template documentation builds. Should minimize documentation build errors when users expand package requirements (ISSUE-847, MERGE-1082). By Kyle Brindley.

## 0.12.4 (2025-01-08)

### Bug fixes

- Add missing CalculiX command variable to WAVES construction environment (ISSUE-842, MERGE-1072). By Kyle Brindley.

### Documentation

- Fix grammatical errors and add clarifying language to tutorial 00 (ISSUE-828, MERGE-1047). By Prabhu Khalsa.

- Fix grammatical errors and add clarifying language to tutorial 01 (ISSUE-829, MERGE-1049). By Prabhu Khalsa.

- Fix grammatical errors and add clarifying language to tutorial 02 (ISSUE-830, MERGE-1052). By Prabhu Khalsa.

- Fix grammatical errors and add clarifying language to tutorial 03 (ISSUE-831, MERGE-1056). By Prabhu Khalsa.

- Add clarifying language to quickstart tutorial (ISSUE-832, MERGE-1057). By Prabhu Khalsa.

- Fix grammatical errors and add clarifying language to tutorial 04 (ISSUE-833, MERGE-1059). By Prabhu Khalsa.

- Add MPI and Charm++ references (ISSUE-679, MERGE-1044). By Kyle Brindley.

### Internal Changes

- Use Abaqus 2024 in tutorials and system tests (ISSUE-826, MERGE-1040). By Kyle Brindley.

- More inclusive black autoformatting configuration (MERGE-1045). By Kyle Brindley.

- Persistent system test directories for failed tests (ISSUE-827, MERGE-1050). By Kyle Brindley.

- Enable Windows system tests for the ParameterStudySConcript feature (ISSUE-802, MERGE-1051). By Kyle Brindley.

- Enable Windows system test for the writing builders tutorial (ISSUE-803, MERGE-1054). By Kyle Brindley.

- Enable Windows system test for visualize subcommand (ISSUE-796, MERGE-1055). By Kyle Brindley.

- More robust modulefile decision in Quinoa tutorial (ISSUE-836, MERGE-1062). By Kyle Brindley.

- Enable pass-through testing of specific Abaqus and Cubit executable paths. Test at least one older version of each during scheduled regression CI pipelines (MERGE-1063). By Kyle Brindley.

- Test the external conda recipe on MacOS during normal CI pipelines (ISSUE-801, MERGE-1067). By Kyle Brindley.

- Test the external conda recipe on Windows during normal CI pipelines (ISSUE-797, MERGE-1068). By Kyle Brindley.

- Remove the incompatible Python 3.13, SCons 4.6 environment in the matrixed recipe build test (ISSUE-840, MERGE-1071). By Kyle Brindley.

- Skip Sierra system tests when using incompatible Python version 3.13 or newer (ISSUE-843, MERGE-1073, MERGE-1074). By Kyle Brindley.

### Enhancements

- Enable single directory, prefixed targets in the per-task parameter study pseudo-builder (ISSUE-682, MERGE-1046). By Kyle Brindley.

- Enable project-specific command line configuration controls when creating workflow visualizations with the visualize subcommand (ISSUE-837, MERGE-1065). By Kyle Brindley.

## 0.12.3 (2024-12-02)

### Bug fixes

- Use Abaqus solver builder factory in Abaqus Pseudo-builder docstring example (MERGE-1033). By Matthew Fister.

### Documentation

- Move the pure SCons quickstart tutorial to the supplemental lessons (ISSUE-824, MERGE-1027). By Kyle Brindley.

### Internal Changes

- Add coverage to internal API unit tests (MERGE-1025). By Kyle Brindley.

- Strong style enforcement and wholesale updates to all Python 2/3 files with the black autoformatting tool: https://black.readthedocs.io/en/stable/index.html (MERGE-1028, MERGE-1030). By Kyle Brindley.

- Simplify the pytest commands by always running the XML/HTML coverage (MERGE-1034). By Kyle Brindley.

### Enhancements

- Verify parameter set hash coordinates when reading user supplied previous parameter study files (ISSUE-825, MERGE-1032, MERGE-1035). By Kyle Brindley.

## 0.12.2 (2024-11-14)

### New Features

- Add Abaqus pseudo-builder (ISSUE-659, MERGE-825). By Matthew Fister.

- Add a simple command line utility to print project managed parameter study files (MERGE-1021). By Kyle Brindley.

### Bug fixes

- Do not modify suffixes list in the Abaqus solver emitter (MERGE-1012). By Kyle Brindley.

### Documentation

- Update tutorial output file expectations to match the switch from the Abaqus journal builder to the Abaqus journal builder factory (ISSUE-817, MERGE-1011). By Kyle Brindley.

- HTML and PDF documentation formatting (MERGE-1012). By Kyle Brindley.

- Add missing pytest package to tutorial environment instructions for unit testing tutorial (MERGE-1012). By Kyle Brindley.

- Make the tutorial visualization images click-to-expand (MERGE-1016). By Kyle Brindley.

- Add a mesh convergence parameter study to the WAVES quickstart and discuss the benefits of using a build system and WAVES for computational science and engineering workflows (MERGE-1019, MERGE-1022). By Kyle Brindley.

- Add a quick print utility to the WAVES quickstart tutorial to help show set numbering behaviors (MERGE-1021, MERGE-1023, MERGE-1024). By Kyle Brindley.

- Add HTML coverage report to internally hosted Gitlab-Pages documentation (MERGE-1024). By Kyle Brindley.

### Internal Changes

- Add Python 3.13 and SCons 4.8 to the Conda build test matrix in the scheduled CI jobs (ISSUE-820, MERGE-1015). By Kyle Brindley.

- Simplify pytest coverage report command construction (MERGE-1024). By Kyle Brindley.

### Enhancements

- Always perform individual simulation post-processing in modsim templates. Matches modsim template 1 simulation post-processing behavior to modsim template 2 (MERGE-1016). By Kyle Brindley.

## 0.12.1 (2024-11-06)

### New Features

- Add function for printing the action signature string for targets (ISSUE-810, MERGE-999). By Kyle Brindley.

### Documentation

- Hyperlink specific portions of the SCons man page instead of quoting (MERGE-998). By Kyle Brindley.

- Fix version number display when building with `sphinx_rtd_theme` version 3 (ISSUE-808, MERGE-1004). By Kyle Brindley.

- Add more acronyms to glossary and add copyright years as a range (MERGE-1005). By Kyle Brindley.

- Build and host the modsim-template documentation on GitHub-Pages (ISSUE-813, MERGE-1006). By Kyle Brindley.

- Update Sphinx HTML theme, landing page contents, and build the modsim-template documentation for GitHub-Pages (MERGE-1007). By Kyle Brindley.

### Internal Changes

- Refactor the parameter study write functions for greater consistency with the parameter study to dictionary function and greater consistency between write method output file name lists (ISSUE-811, MERGE-1000). By Kyle Brindley.

- Unify the parameter study write-to-file logic in a single function (MERGE-1002). By Kyle Brindley.

- Add new Sphinx theme packages to CI environment (ISSUE-815, MERGE-1009). By Kyle Brindley.

### Enhancements

- Allow parameter generator `write` method API override for output file type (MERGE-1001). By Kyle Brindley.

## 0.12.0 (2024-10-17)

Warning

The `quantiles` removal from parameter generator objects will cause parameter set index changes for stochastically sampled parameter generators, e.g. `SALib` and `SciPy` based generators. Parameter studies generated with this version may not merge correctly with parameter studies from older versions of WAVES even if the parameter sets have not changed. It is strongly recommended that users re-generate their parameter study files.

### Breaking changes

- Remove the `quantiles` data from parameter generators and parameter study objects. Required to allow typed parameter data arrays and greater type flexibility when writing parameter studies to H5 files (ISSUE-794, MERGE-975). By Kyle Brindley.

- Remove the `data_type` coordinate from parameter generators and parameter study objects. Required to allow typed parameter data arrays and greater type flexibility when writing parameter studies to H5 files (ISSUE-765, MERGE-986). By Kyle Brindley.

- Remove semi-private `_ParameterGenerator` class. `ParameterGenerator` class is now part of the public API (ISSUE-791, MERGE-988). By Kyle Brindley.

- Deprecate the `postfix` key word argument across all functions (ISSUE-724, MERGE-989). By Kyle Brindley.

- Deprecate the substitution dictionary first positional argument interface for `substitution_syntax` function. New argument order is `(env, substitution_dictionary, **kwargs)`. The `env` positional argument may be omitted when using the function as an SCons method. See the API and examples (ISSUE-764, MERGE-992). By Kyle Brindley.

- Deprecate the `copy_substitute` function in favor or `copy_substfile` (ISSUE-665, MERGE-990). Kyle Brindley.

- Deprecate the `python_script` builder in favor of `python_builder_factory` (ISSUE-747, MERGE-993). By Kyle Brindley.

- Deprecate the `quinoa_solver` builders in favor of the `quinoa_solver_builder_factory` (ISSUE-745, MERGE-991). By Kyle Brindley.

- Deprecate the `quinoa_solver` builders in favor of the `quinoa_builder_factory` (ISSUE-745, MERGE-991). By Kyle Brindley.

- Deprecate the `(names, env)` argument order in program finding functions. New argument order is `(env, names)` for SCons `AddMethod` compatibility (ISSUE-755, MERGE-994). By Kyle Brindley.

- Deprecate the `(print_stdout)` interface of `print_build_failures` in favor of the SCons `AddMethod` compatible `(env, print_stdout)` interface (ISSUE-758, MERGE-995). By Kyle Brindley.

### Enhancements

- Preserve parameter types and handle booleans when writing parameter study objects to disk (ISSUE-765, MERGE-986). By Kyle Brindley.

### Internal Changes

- Drop Python 3.8 support and testing for end-of-life support. New minimum supported version of Python is 3.9 (ISSUE-770, MERGE-987). By Kyle Brindley.

- Temporary CI environments for MacOS CI pipelines to avoid simultaneous pipelines clobbering a common environment (ISSUE-809, MERGE-996). By Kyle Brindley.

## 0.11.6 (2024-10-15)

### New Features

- Add a CalculiX builder factory (MERGE-984). By Kyle Brindley.

### Documentation

- Add a WIP Gmsh+CalculiX tutorial outline (ISSUE-807, MERGE-985). By Kyle Brindley.

### Internal Changes

- Run the pytest alias during Windows CI `pwsh` job (ISSUE-799, MERGE-971). By Kyle Brindley.

- Run an experimental MacOS CI pipeline (ISSUE-800, MERGE-972). By Kyle Brindley.

- Make the system tests more graceful when testing on systems without necessary third-party software, while still allowing unconditional forced builds for internal Linux CI servers (ISSUE-737, MERGE-973). By Kyle Brindley

- Skip documentation PDF build when `latexmk` is not found. Allow override to force build on appropriate CI servers (ISSUE-795, MERGE-974). By Kyle Brindley.

- Remove deprecated `elasticity3D.xml` file from Fierro tutorials (ISSUE-804, MERGE-976). By Kyle Brindley.

- Add CalculiX, ccx2paraview, and ParaView conda-forge packages to CI environment (ISSUE-806, MERGE-977). By Kyle Brindley.

- Convert Gmsh tutorial to a Gmsh+CalculiX tutorial in pursuit of a fully open-source, conda-forge workflow (ISSUE-805, MERGE-979). By Kyle Brindley.

- Create unique, temporary Windows CI environments for clean environments in every pipeline (MERGE-982). By Kyle Brindley.

- Add simple post-processing to Gmsh+CalculiX tutorial. Now using ccx2paraview and meshio packages to convert to xarray (MERGE-983). By Kyle Brindley.

## 0.11.5 (2024-10-08)

### Bug fixes

- Handle carriage returns in visualize line split. Fixes visualize graph node names on Windows (ISSUE-788, MERGE-962). By Kyle Brindley.

- Handle Windows caveats to opening temporary files. Fixes the Abaqus CAE and modsim template Abaqus Python scripts that use `tempfile` and `shutil.copy` together (ISSUE-798, MERGE-969). By Kyle Brindley.

### Internal Changes

- Set build environment variable `PYTHONDONTWRITEBYTECODE` in construction environment instead of pytest task commands. Fixes pytest task for Windows development and execution (ISSUE-788, MERGE-962). By Kyle Brindley.

- Add Windows CI environment file, removing non-Windows compatible packages. Add Windows CI pipeline (ISSUE-788, MERGE-962). By Kyle Brindley.

- Limit flake8 parallelism to avoid multiprocessing bug on Windows (ISSUE-788, MERGE-962). By Kyle Brindley.

## 0.11.4 (2024-10-07)

### Bug fixes

- Remove duplicate parameter value definitions in tutorials nominal parameter set definition (ISSUE-785, MERGE-958). By Kyle Brindley.

### Documentation

- Add the writing builders solver script API/CLI to the tutorial API/CLI HTML documentation (MERGE-953). By Kyle Brindley.

### Internal Changes

- Recipe maintenance to address feedback from conda-forge reviewers (ISSUE-779, MERGE-949). By Kyle Brindley.

- Clean up PIP and Conda package builds to exclude project build files for all package builds and system test artifacts for working repository package builds (MERGE-950). By Kyle Brindley.

- Reduce usage of `/tmp` and `$TMPDIR` for system testing because some tests require executable permissions in the test working directory (MERGE-953). By Kyle Brindley.

- Set package runtime minimum version of SCons to match major version `>=4` (MERGE-953). By Kyle Brindley.

- Use pathlib objects in project build scripts. Update minimum build requirement for SCons to match `>=4.6` (MERGE-953). By Kyle Brindley.

- Add gmsh to CI environment (ISSUE-783, MERGE-955). By Kyle Brindley.

- Add the source files for a WIP Gmsh tutorial matching the WAVES quickstart (ISSUE-782, MERGE-954). By Kyle Brindley.

- Update to the newest AEA shared compute environment naming convention. Remove outdated environment discussion (ISSUE-778, MERGE-956). By Kyle Brindley.

- Allow Abaqus CAE tutorial workflow to ignore all Abaqus tasks when Abaqus is missing (ISSUE-781, MERGE-957). By Kyle Brindley.

### Enhancements

- Bundle built HTML and man page documentation with Gitlab PyPI registry package (ISSUE-780, MERGE-951, MERGE-952). By Kyle Brindley.

- Add unit tests for the modsim template’s parameter sets module (ISSUE-785, MERGE-958). By Kyle Brindley.

- Add type hints, re-usable entity recovery by coordinates function, and global seed API/CLI to Gmsh tutorial files (MERGE-959, MERGE-960). By Kyle Brindley.

- Expose the WAVES ParameterGenerator abstract base class (ABC) to the public API for officially supported type checking (ISSUE-789, MERGE-961). By Kyle Brindley.

- Dedicated regression test script in tutorials and modsim templates (ISSUE-790, MERGE-963). By Kyle Brindley.

- Use the `ParameterStudySConscript` feature in modsim template 2 for reduced task duplication (ISSUE-787, MERGE-964). By Kyle Brindley.

- Handle missing previous parameter study files gracefully with a warning. Users relying on the `RuntimeError` behavior may re-enable this behavior with the `require_previous_parameter_study=True` API or `--require-previous-parameter-study` CLI options.

## 0.11.3 (2024-09-24)

### Documentation

- Replace `touch` commands with `waves fetch` commands in tutorials for better Windows Powershell compatibility (ISSUE-772, MERGE-942). By Kyle Brindley.

- Add LANL HPC path options to tutorial third-party software installation paths (ISSUE-596, MERGE-943). By Kyle Brindley.

- Move the `modsim_template_2` the parameter study configuration artifacts from the source tree to the build tree (MERGE-947). By Kyle Brindley.

### Internal Changes

- Use a single type of string substitution in system test command construction (ISSUE-768, MERGE-935). By Kyle Brindley.

- Update the Fierro FE solver Conda package name (ISSUE-766, MERGE-936). By Kyle Brindley.

- Update LANL HPC server references (ISSUE-767, MERGE-934). By Kyle Brindley.

- Provide finer grained system test controls to allow running WAVES-only system tests, e.g. WAVES CLI tests, in external recipe builds (ISSUE-769, MERGE-937, MERGE-938). By Kyle Brindley.

- Remove conda-verify from GitHub workflows because it appears to cause CI environment errors (MERGE-940). By Kyle Brindley.

- Run a full matrix of Python and SCons version tests during scheduled CI testing, patch unit test construction for Python <=3.10, fix Python 3.8 type hint compatibility (ISSUE-771, MERGE-939). By Kyle Brindley.

- Add HPC system tests, but do not depend on them for passing merge-requests (ISSUE-596, MERGE-943). By Kyle Brindley.

- Remove unconditional build from Cubit+Sierra tutorial system tests because they can not pass on HPC CI pipelines. Partial system test on HPC is more valuable than strictly enforced test of fragile third-party installation (ISSUE-773, MERGE-944). By Kyle Brindley.

- Update setuptools version specs to match current setuptools_scm documentation (ISSUE-777, MERGE-946). By Kyle Brindley.

## 0.11.2 (2024-08-29)

### New Features

- Add first target builder factory style builders to the WAVES SCons environment class (ISSUE-762, MERGE-933). By Kyle Brindley.

### Bug fixes

- Fix the Abaqus journal builder factory CAE options syntax (ISSUE-762, MERGE-933). By Kyle Brindley.

### Documentation

- Use the WAVES SCons environment in the tutorials and modsim template (ISSUE-762, MERGE-933). By Kyle Brindley.

## 0.11.1 (2024-08-28)

### Breaking changes

- Add a construction environment argument to the `substitution_syntax` method for compatibility with SCons `AddMethod`. Backward compatibility is maintained with a syntax warning and instructions for what to change for v1 (ISSUE-759, MERGE-932). By Kyle Brindley.

### New Features

- Add a check program function similar to SCons CheckProg, but without the SCons Configure object (MERGE-929). By Kyle Brindley.

- Add a WAVES SCons environment class to provide common methods and reduce configuration boilerplate (ISSUE-756, MERGE-929). By Kyle Brindley.

- Add a ParameterStudySConscript wrapper to unpack parameter generators into SConscript calls (ISSUE-761, MERGE-930). By Kyle Brindley.

- Add `SubstitutionSyntax` method to WAVES SCons environment class (ISSUE-759, MERGE-932). By Kyle Brindley.

### Documentation

- Convert all SConscript `exports=` arguments to dictionary style for more explicit control over exports and greater consistency with ParameterStudySConscript interface requirements (ISSUE-763, MERGE-931). By Kyle Brindley.

### Internal Changes

- Avoid SCons Configure() method when searching for programs in construction environments. Fixes the program operations unit test interference with builder unit tests (MERGE-929). By Kyle Brindley.

## 0.11.0 (2024-08-26)

### Breaking changes

- Re-write the Fierro builders to use the template first target builder factory. Builders are still considered experimental as the Fierro CLI stabilizes, so no minor version bump for the builder name and API change (ISSUE-743, MERGE-913). By Kyle Brindley.

- Re-write the Ansys APDL builder to use the template first target builder factory. Builder is still considered experimental pending a system test and user feedback, so no minor version bump for the builder name and API change (ISSUE-742, MERGE-914). By Kyle Brindley.

- Re-write the Sierra builder to use the template first target builder factory. Builder is still considered experimental pending user feedback, so no minor version bump for the builder name and API change (ISSUE-744, MERGE-916). By Kyle Brindley.

- Re-order the program operation function arguments for compatibility with SCons `AddMethod`. Backward compatibility is maintained with a syntax warning and instructions for what to change for v1 (ISSUE-754, MERGE-925). By Kyle Brindley.

- Add a construction environment argument to the `print_build_failures` method for compatibility with SCons `AddMethod`. Backward compatibility is maintained with a syntax warning and instructions for what to change for v1 (ISSUE-757, MERGE-927). By Kyle Brindley.

### New Features

- Expose the most common “first target emitter” to the public API (ISSUE-718, MERGE-906). By Kyle Brindley.

- Add template builder factories with WAVES style action string construction and common emitter behavior (ISSUE-718, MERGE-906). By Kyle Brindley.

- Rename the first target builder (factory) to clarify that this function returns a builder. Clarify that the first target emitter is not a factory and that the keyword arguments can not be used directly in a builder definition (ISSUE-738, MERGE-910). By Kyle Brindley.

- Add a Quinoa builder factory based on the first target builder factory template (ISSUE-739, MERGE-911). By Kyle Brindley.

- Add a Python builder factory based on the first target builder factory template (ISSUE-741, MERGE-915). By Kyle Brindley.

- Add an SBatch Quinoa builder factory (ISSUE-740, MERGE-917). By Kyle Brindley.

- Add an SBatch Python builder factory (ISSUE-746, MERGE-918). By Kyle Brindley.

- Add an Abaqus journal builder factory based on the first target builder factory template (ISSUE-748, MERGE-921). By Kyle Brindley.

- Add an Abaqus solver builder factory based on the first target builder factory template (ISSUE-749, MERGE-922). By Kyle Brindley.

### Documentation

- In the mesh convergence tutorial and modsim templates, SCons joins list variables as space separated strings. No need to join lists of strings separately from task definition (ISSUE-734, MERGE-907). By Kyle Brindley.

- Update the tutorials to use the Python builder factory (ISSUE-741, MERGE-915). By Kyle Brindley.

- Update the tutorials to use the Sierra builder factory (ISSUE-744, MERGE-916). By Kyle Brindley.

- Add deprecation warnings to the older pattern Quinoa builders (ISSUE-740, MERGE-917). By Kyle Brindley.

- Add deprecation warnings to the older pattern Python builders (ISSUE-746, MERGE-918). By Kyle Brindley.

- Update the tutorials and modsim templates to use the SCons `AddMethod` style access for project help messages (ISSUE-753, MERGE-924). By Kyle Brindley.

- Add a work-in-progress tutorial for writing builders (ISSUE-727, MERGE-926). By Kyle Brindley.

### Internal Changes

- Re-enable the Quinoa CI system tests (ISSUE-657, MERGE-919). By Kyle Brindley.

- Consolidate builder factory tests under a single test function (ISSUE-750, MERGE-923). By Kyle Brindley.

### Enhancements

- Support SCons construction environment recovery for more than just bash. Explicit support for: sh, bash, zsh, csh, tcsh (ISSUE-735, MERGE-908, ISSUE-736, MERGE-909). By Kyle Brindley.

- Improve the help message functions environment handling for use with SCons `AddMethod` (ISSUE-753, MERGE-924). By Kyle Brindley.

## 0.10.0 (2024-08-15)

### Breaking changes

- Change the Conda environment action options from `conda_env_export_options` to `options` for improved builder action string keyword argument consistency (ISSUE-719, MERGE-889). By Kyle Brindley.

- Change the Fierro and Ansys APDL action prefix and suffix options for improved builder action string keyword argument consistency (ISSUE-709, MERGE-890). By Kyle Brindley.

- Update the default `construct_action_list` prefix string to match builder factories’ action string updates (ISSUE-716, MERGE-895). By Kyle Brindley.

- Re-arrange the Abaqus solver’s required options in the action string to move closer to a standardized action string template across all builders. Will cause Abaqus solver tasks to re-build for the new action signature. Does not change the default Abaqus options (ISSUE-723, MERGE-896). By Kyle Brindley.

- Replace ‘postfix’ name with ‘suffix’ in function keyword argument APIs for better consistency with builder action construction naming conventions. Maintains ‘postfix’ keyword arguments with a v1 deprecation warning in this version (ISSUE-722, MERGE-897). By Kyle Brindley.

- Remove the largely unused `post_action` builder behavior in favor of more modifiable builders and action modifier functions. Similar behavior can be provided on a per-target basis with the SCons AddPostAction feature (ISSUE-725, MERGE-898). By Kyle Brindley.

- Replace the rsync options with a keyword argument in the SSH builder actions (ISSUE-728, MERGE-899). By Kyle Brindley.

### New Features

- Add a function to convert a builder’s action list to a list of strings (ISSUE-721, MERGE-892). By Kyle Brindley.

- Add a function to convert a list of action strings to an SCons ListAction object (ISSUE-721, MERGE-892). By Kyle Brindley.

### Bug fixes

- Remove unnecessary single quotes in task definition shell commands. Fixes errors in Windows Powershell tutorial execution (ISSUE-717, MERGE-882). By Kyle Brindley.

- Fix recursive search for Cubit bin directory (MERGE-894). By Kyle Brindley.

- Allow Cubit+ tutorials to run when Sierra is not installed (MERGE-894). By Kyle Brindley.

### Documentation

- Improved inclusion of inherited, public methods in the external API (ISSUE-706, MERGE-880). By Kyle Brindley.

- Add LANL specific installation instruction to internal HTML documentation build. By Kyle Brindley.

### Internal Changes

- Test per-task action string keyword argument overrides (ISSUE-720, MERGE-891). By Kyle Brindley.

- Inline the action prefix for builder factory actions for more obvious unit test expectations (ISSUE-721, MERGE-892). By Kyle Brindley.

- Add the documentation index file path to the docs subcommand internal API (ISSUE-730, MERGE-901). By Kyle Brindley.

- Use a common downstream pipeline to deploy to the internal conda channel (ISSUE-733, MERGE-904). By Kyle Brindley.

### Enhancements

- Expose the Abaqus journal action keyword arguments to the constructor API and task definition for greater flexibility in constructed builder behavior (ISSUE-708, MERGE-881). By Kyle Brindley.

- Expose the Abaqus solver action keyword arguments to the constructor API and task definitions for greater flexibility in constructed builder behavior (ISSUE-710, MERGE-883). By Kyle Brindley.

- Expose the Sierra action keyword arguments to the constructor API and task definitions for greater flexibility in constructed builder behavior (ISSUE-711, MERGE-885). By Kyle Brindley.

- Expose the Python script action keyword arguments to the constructor API and task definitions for greater flexibility in constructed builder behavior (ISSUE-712, MERGE-886). By Kyle Brindley.

- Expose the Matlab script action keyword arguments to the constructor API and task definitions for greater flexibility in constructed builder behavior (ISSUE-713, MERGE-887). By Kyle Brindley.

- Expose the SLURM sbatch action keyword arguments to the constructor API and task definitions for greater flexibility in constructed builder behavior (ISSUE-715, MERGE-888). By Kyle Brindley.

- Expose the Conda environment export action keyword arguments to the constructor API and task definitions for greater flexibility in constructed builder behavior (ISSUE-719, MERGE-889). By Kyle Brindley.

- Expose the Fierro and Ansys APDL action keyword arguments to the constructor API and task definitions for greater flexibility in constructed builder behavior (ISSUE-709, MERGE-890). By Kyle Brindley.

- Expose the Quinoa action keyword arguments to the constructor API and task definitions for greater flexibility in constructed builder behavior (ISSUE-714, MERGE-893). By Kyle Brindley.

- Expose the SSH builder actions keyword arguments to the constructor API and task definitions for greater flexibility in constructed builder behavior (ISSUE-728, MERGE-899). By Kyle Brindley.

## 0.9.5 (2024-07-25)

### Bug fixes

- Fix the Windows installation CLI entry points and add the conda-build preferred entry points recipe entry (ISSUE-703, MERGE-877). By Kyle Brindley.

### Documentation

- Return the Python method section headers to the HTML sidebar while preserving a cleaner PDF index without the Python methods (ISSUE-702, MERGE-875). By Kyle Brindley.

### Internal Changes

- Update unit tests for inconsistent pathlib path seps in Windows Powershell execution. Larger refactor required for improved robustness in building expected results or converting all paths to UNIX style path seps (MERGE-876). By Kyle Brindley.

- Add CI test for the external conda-build recipe (ISSUE-703, MERGE-877). By Kyle Brindley.

- Add Windows CI build/test for new tags in GitHub Actions. Update all GitHub Actions to use miniforge for reduced environment changes after configuration (ISSUE-704, MERGE-878). By Kyle Brindley.

- Update remaining unit test Windows path expectations for Windows absolute paths (ISSUE-705, MERGE-879). By Kyle Brindley.

## 0.9.4 (2024-07-18)

### Documentation

- Clean up the index by removing the Python method entries (ISSUE-699, MERGE-873). By Kyle Brindley.

- Update the GitHub URLs for the migration to lanl-aea (ISSUE-700, MERGE-874). By Kyle Brindley.

## 0.9.3 (2024-07-11)

### Internal Changes

- Build the pip package with `matplotlib` as a dependency because PyPI doesn’t have a `matplotlib-base` package (ISSUE-698, MERGE-872). By Kyle Brindley

## 0.9.2 (2024-07-10)

### Internal Changes

- Remove conda channel index from CI deployment job. Can’t separate the CI environment and continue to index the shared conda channel (ISSUE-695, MERGE-868). By Kyle Brindley.

- Use both AEA Gitlab-Runner servers in CI jobs (ISSUE-696, MERGE-869). By Kyle Brindley.

- Experimental Gitlab PyPI registry deployment (MERGE-870). By Kyle Brindley.

## 0.9.1 (2024-07-01)

### Bug fixes

- Fix the namespace of the example argparse types script in the tutorial and modsim template (ISSUE-683, MERGE-861). By Kyle Brindley.

### Documentation

- Add discussion about modsim template trade-offs and features (ISSUE-687, MERGE-865). By Kyle Brindley.

- Re-write the Fierro tutorial as a Cubit+Fierro tutorial. Made possible with a mesh conversion script originally authored by Evan Lieberman and modified to add WAVES style CLI (ISSUE-681, MERGE-859). By Kyle Brindley.

### New Features

- Draft experimental parameter study pseudo-builder as one option for task re-use without task duplication. Intended to reduce the nominal/mesh convergence examples to a single workflow file (ISSUE-680, MERGE-858). By Kyle Brindley.

- Add argparse type checker unit test example to the modsim template (ISSUE-683, MERGE-861). By Kyle Brindley.

- Re-use the part and simulation task definitions in the modsim template workflows (ISSUE-684, MERGE-862). By Kyle Brindley.

- Add modsim template with advanced features to reduce configuration verbosity (ISSUE-687, MERGE-865). By Kyle Brindley.

### Internal Changes

- Add meshio to CI environment for mesh conversion workflows, e.g. a future Cubit+Fierro tutorial (ISSUE-681, MERGE-859). By Kyle Brindley.

- Restrict CI and tutorial environments to numpy <2 until SALib is compatible or packaged with an upper-bound (ISSUE-685, MERGE-863). By Kyle Brindley.

- Improve robustness against changing parameter study set order in unit tests (ISSUE-683, MERGE-861). By Kyle Brindley.

## 0.9.0 (2024-05-29)

### Breaking changes

- Remove click event matplotlib behavior broken since 0.8.6 (2024-05-16). Allows reduced plot annotations for smaller image sizes (MERGE-845). By Kyle Brindley.

- Change API/CLI options from `dryrun` to `dry_run` and `--dry-run`, respectively, for greater PEP-8 and SCons consistency (ISSUE-671, MERGE-846). By Kyle Brindley.

### Bug fixes

- Visualize subgraph by targets when provided an SCons tree file (ISSUE-676, MERGE-854). By Kyle Brindley.

### Internal Changes

- Move remaining module constants into package settings (ISSUE-673, MERGE-848). By Kyle Brindley.

- Use full namespace in submit CAE tutorial journal file. Add a feature to write an input file and exit instead of submitting the job (MERGE-852). By Kyle Brindley.

- Re-enable the Fierro tutorial system tests (ISSUE-638, MERGE-856). By Kyle Brindley.

### Enhancements

- Improve consistency between plot and graphml output for the visualize subcommand (MERGE-845). By Kyle Brindley.

- Add options to change plot colors in visualize plot output (ISSUE-667, MERGE-847). By Kyle Brindley.

- Try to catch CLI typos in the tutorial and modsim template Abaqus journal files (ISSUE-675, MERGE-853). By Kyle Brindley.

- Accept multiple targets in visualize subcommand. More closely match visualize/build CLI pass through behavior (ISSUE-676, MERGE-854). By Kyle Brindley.

- Add MPI run executable and options to the Fierro builder (ISSUE-638, MERGE-856). By Kyle Brindley.

## 0.8.6 (2024-05-16)

### Documentation

- Add example usage for print build failures function (ISSUE-670, MERGE-833). By Kyle Brindley.

- Break long API function signatures into multiple lines for better readability (MERGE-835) By Kyle Brindley.

- Add a tutorial for integrating interactively edited CAE files with a build system (ISSUE-497, MERGE-839, MERGE-840). By Kyle Brindley.

### Internal Changes

- Use networkx built-in graphml writer (ISSUE-672, MERGE-838). By Kyle Brindley.

- Remove unused and redundant pytest markers (ISSUE-672, MERGE-838). By Kyle Brindley.

- Add minimal and sign-of-life unit tests for more of the visualize subcommand implementation (ISSUE-672, MERGE-838). By Kyle Brindley.

### Enhancements

- Change the parameter generator API deafult output file type H5 files. Matches tutorial behavior to default behavior for reduced configuration during preferred usage (MERGE-834). By Kyle Brindley.

- Better consistency in `--dry-run` option string, as opposed to `--dryrun` (MERGE-836). By Kyle Brindley.

- Add an option for transparent backgrounds in the visualize images (ISSUE-669, MERGE-837). By Kyle Brindley.

## 0.8.5 (2024-05-09)

### New Features

- Add a copy substfile pseudo-builder as a replacement for the `copy_substitute` method. Pseudo-builders use the same access syntax as SCons builders and are the recommended solution for wrapping builders with advanced behaviors (ISSUE-662, MERGE-829). By Kyle Brindley.

### Bug fixes

- Always write both `odb_extract` output files: `output_file.h5` and `output_file_datasets.h5` for more predictable behavior in programmatic workflows, e.g. the abaqus extract builder (ISSUE-478, MERGE-830). By Kyle Brindley.

### Documentation

- Release the sensitivity study as a supplemental lesson (ISSUE-643, MERGE-820). By Kyle Brindley.

- Add a warning about whitespace in SCons command line options in the first tutorial (MERGE-821). By Kyle Brindley.

- Update all tutorials and the modsim template to use a copy substitute pseudo-builder instead of the `copy_substitute` function. Pseudo-builders use the same access syntax as SCons builders and are the recommended solution for wrapping builders with advanced behaviors (ISSUE-662, MERGE-829). By Kyle Brindley.

- Improve the formatting of the odb extract help message (ISSUE-478, MERGE-830). By Kyle Brindley.

### Internal Changes

- Activate project CI environment directly. Fixes errors related to conda-build/boa/mambabuild during packaging (MERGE-823). By Kyle Brindley.

- Skip Matlab system test because there are too few licenses for reliable execution (MERGE-824). By Kyle Brindley.

- Update the tutorial journal files for better compliance with PEP-8. Use Abaqus Python API for rectangle sketch generation (ISSUE-661, MERGE-826). By Kyle Brindley.

- Add lazy loader package to CI environment for testing (ISSUE-664, MERGE-827). By Kyle Brindley.

- Handle file extensions in the tutorial and modsim template Abaqus and Cubit journal files (ISSUE-663, MERGE-828). By Kyle Brindley.

### Enhancements

- Add an option to annotate the visualize output with the number of nodes (ISSUE-654, MERGE-822). By Kyle Brindley.

- More robust regression testing function in tutorials and modsim template (ISSUE-666, MERGE-831). By Kyle Brindley.

## 0.8.4 (2024-05-01)

### Bug fixes

- Fix Python 3.8 and 3.9 incompatibility introduced in 0.7.10 (2024-03-15) (MERGE-749) with Python 3.8 compatible type annotations (ISSUE-650, MERGE-809). By Kyle Brindley.

- Search for the default target naming convention when printing failed node STDOUT files (ISSUE-648, MERGE-814). By Kyle Brindley.

### Documentation

- Fix broken abaqus links (ISSUE-642, MERGE-805). By Sergio Cordova.

- Add part image supplemental lesson (ISSUE-570, MERGE-797). By Sergio Cordova.

### Internal Changes

- Switch to flake8 for style checking and address line length and whitespace errors (ISSUE-649, MERGE-806). By Kyle Brindley.

- Use an SCons task to drive flake8 more consistently with other project tasks (MERGE-807). By Kyle Brindley.

- Separate modsim template workflow results from intermediate build artifacts to clean up workflow visualization (ISSUE-651, MERGE-808). By Kyle Brindley.

- Resolved all static type checks in the `_fetch` and `_visualize` internal modules (MERGE-811). By Kyle Brindley.

- Update Fierro builder to account for change in executable name(s)/CLI (ISSUE-647, MERGE-812). By Kyle Brindley.

- Add mypy static type checking configuration file for better consistency between CI and developer execution (ISSUE-653, MERGE-813). By Kyle Brindley.

- Add Quinoa Solver builder unit tests (ISSUE-561, MERGE-815). By Kyle Brindley.

- Match GitHub (external) recipe test commands to internal recipe test commands (MERGE-817). By Kyle Brindley.

- Report YAML loading syntax errors with a message and non-zero exit code instead of a stack trace (ISSUE-658, MERGE-819). By Kyle Brindley.

## 0.8.3 (2024-04-10)

### Bug fixes

- Remove unused kwargs arguments to improve API error reporting in builders. Argument no longer used after ISSUE-508 and MERGE-779 as part of the keyword argument standardization (ISSUE-646, MERGE-803). By Kyle Brindley.

## 0.8.2 (2024-04-10)

Warning

Due to a bugfix in parameter set indexing, parameter studies generated with this version may index as new parameter sets on merge with parameter studies from older versions of WAVES even if the parameter sets have not changed. It is strongly recommended that users re-generate their parameter study files.

### New Features

- Draft experimental Fierro builders and add associated draft tutorial (ISSUE-637, MERGE-796). By Kyle Brindley.

- Draft experimental Ansys APDL builder (ISSUE-800). By Kyle Brindley.

### Bug fixes

- Sort parameter set definitions by parameter name for hash index creation. Fixes an edge case where the parameters are re-arranged causing the set to appear new even if the set definition is otherwise identical. Parameter study indices may be inconsistent with prior versions of WAVES (ISSUE-645, MERGE-802). By Kyle Brindley.

### Internal Changes

- Remove the upper bound version of setuptools_scm and use the latest version in the CI environment (ISSUE-635, MERGE-794). By Kyle Brindley.

- Add `FierroMechanics` channel and `fierro-cpu` to CI compute environment in preparation for draft Fierro builder support (ISSUE-636, MERGE-795). By Kyle Brindley.

- Separate subcommand implementations into supporting modules for reduced clutter in main CLI implementation (ISSUE-641, MERGE-798). By Kyle Brindley.

## 0.8.1 (2024-04-01)

Warning

Due to a bugfix in parameter set indexing, parameter studies generated with this version will index as new parameter sets on merge with parameter studies from older versions of WAVES even if the parameter sets have not changed. It is strongly recommended that users re-generate their parameter study files.

### Bug fixes

- Handle STDIN YAML formatted string, file paths, and missing input cases for parameter study CLI (ISSUE-632, MERGE-792). By Kyle Brindley.

- Add parameter names and quantiles to the parameter set hash to guarantee unique parameter set index on changes. Fixes an edge case where a parameter name changes, but the set content may appear identical. Parameter study indices will be inconsistent with prior versions of WAVES (ISSUE-633, MERGE-793). By Kyle Brindley.

### Enhancements

- Raise a more useful exception/error message when a previous parameter study file does not exists (ISSUE-631, MERGE-791). By Kyle Brindley.

## 0.8.0 (2024-03-29)

### Breaking changes

- Remove the deprecated public `generate` method of the parameter generators. Parameter studies are generated on class instantiation since version 0.6.1 (2023-01-06) (ISSUE-605, MERGE-777). By Kyle Brindley.

- Remove the deprecated `builders` module. Replaced by `scons_extensions` since version 0.7.1 (2023-08-28) (ISSUE-511, MERGE-778). By Kyle Brindley.

- Remove the deprecated `<name>_program` builders’ keyword arguments. Replaced by `program` since version 0.7.1 (2023-08-28) (ISSUE-508, MERGE-779). By Kyle Brindley.

- Remove unused Abaqus Python parsers to reduce maintenance overhead (ISSUE-614, MERGE-780). By Kyle Brindley.

- Remove the `waves quickstart` subcommand in favor of the more general purpose `waves fetch` subcommand. Older behavior can be identically reproduced as `waves fetch modsim_template`. The intention is to add additional template projects and disambiguate the various “quickstart” tutorials as distinct from the template project(s) (ISSUE-604, MERGE-788). By Kyle Brindley.

### Documentation

- Simplify the Cubit tutorial SConscript interfaces (ISSUE-618, MERGE-771). By Kyle Brindley.

- Add draft outline for a sensitivity study tutorial (ISSUE-619, MERGE-774). By Kyle Brindley.

- Remove unnecessary str conversions in tutorial SCons configuration files. No longer necessary in SCons>=4.6 (ISSUE-612, MERGE-776). By Kyle Brindley.

- Add a reference section to the multi-action task tutorial (ISSUE-623, MERGE-782). By Kyle Brindley.

- Add a references section to the native SCons quickstart tutorial (ISSUE-622, MERGE-783). By Kyle Brindley.

- Complete the refernces section of the post-processing tutorial and add a brief discussion about the purpose of the generator expression (ISSUE-573, MERGE-786). By Kyle Brindley.

- Address the CEA-TEC edits in the computational practices discussion (ISSUE-629, MERGE-787). By Kyle Brindley.

### Internal Changes

- Standardize tutorial multiline and hanging indents (ISSUE-613, MERGE-769). By Sergio Cordova.

- Fetch each tutorial to a unique temporary directory before running as a system test. Avoids race conditions on the tutorial sconsign database file during system tests (ISSUE-620, MERGE-775). By Kyle Brindley.

- Improve private/public marking in `help()` and provide cleaner package/module namespaces for greater consistency with other Python packages in the scientific computing stack (ISSUE-624, MERGE-781). By Kyle Brindley.

- Standardize internal API/CLI design around raised exceptions and CLI conversion of known exceptions to error messages and non-zero exit codes (ISSUE-621, MERGE-784). By Kyle Brindley.

- Add CLI sign-of-life tests with help/usage to the system tests in the regression suite (ISSUE-627, MERGE-785). By Kyle Brindley.

- Unpacking iterables in the `typing.Literal` interface doesn’t work in Python 3.10. Hardcode the literal type hints for now (ISSUE-630, MERGE-789). By Kyle Brindley.

- Include the numbered tutorial fetch command in the core tutorial system tests (ISSUE-625, MERGE-790). By Kyle Brindley.

### Enhancements

- Simplify core tutorial waves fetch commands (ISSUE-617, MERGE-773). By Sergio Cordova.

## 0.7.10 (2024-03-15)

### New Features

- Public API function for building WAVES-like actions that change to the build directory before running a shell command (ISSUE-611, MERGE-759). By Kyle Brindley.

- Add unit and regression testing to the modsim template (ISSUE-603, MERGE-760). By Kyle Brindley.

### Bug fixes

- Fix issue in odb_extract to handle case where elemental and nodal data is present in the same field output (ISSUE-601, MERGE-742). By Prabhu Khalsa.

- Allowing merging of previous parameter studies with a single parameter set (ISSUE-565, MERGE-763). By Kyle Brindley.

### Documentation

- Add the odb extract HDF5 file structure discussion to the CLI and builder (ISSUE-563, MERGE-744). By Prabhu Khalsa.

- Add the post-processing tutorial image example and discuss the purpose of catenating the simulation results with the parameter study object (ISSUE-574, MERGE-747). By Kyle Brindley.

- Add odb extract structure and relationship to Xarray, h5py, HDF Group tools to tutorial 08 about data extraction (ISSUE-572, MERGE-748). By Kyle Brindley.

- Replace docstring types with type annotations for future static type checking (MERGE-749). By Kyle Brindley.

- Replace f-strings with scons template substitution in escape sequences tutorial (ISSUE-587, MERGE-726). By Sergio Cordova and Kyle Brindley.

- Added unit test tutorial (ISSUE-302, MERGE-724). By Sergio Cordova.

- Add additional discussion about Python programming and the Python script builder to the post-processing tutorial (ISSUE-106, MERGE-752). By Kyle Brindley.

- Updated `waves fetch` command to facilitate starting from any tutorial (ISSUE-606, MERGE-753). By Sergio Cordova.

- Add SCons workflow debugging tips to the modsim template README and HTML documentation (ISSUE-525, MERGE-756). By Kyle Brindley.

- Moved unit test tutorial to core lessons as the new tutorial 10 (ISSUE-602, MERGE-751). By Sergio Cordova.

- Use parameter set functions for better simulation variable documentation in the tutorials and modsim template (ISSUE-474, MERGE-764). By Kyle Brindley.

- Use the SCons 4.6.0 feature to limit project usage to project-specific options and variables in the tutorials (ISSUE-591, MERGE-765). By Kyle Brindley.

- Use the more generic ‘modsim’ term instead of the group specific ‘EABM’ (ISSUE-615, MERGE-766). By Kyle Brindley.

- Flesh out regression testing tutorial discussion (ISSUE-464, MERGE-767). By Kyle Brindley.

### Internal Changes

- Add a linting package to the CI environment (ISSUE-607, MERGE-754). By Kyle Brindley.

- Add a linting CI job to the test suite (ISSUE-608, MERGE-755). By Kyle Brindley.

- Use the full Abaqus Python session object namespace to clarify relationship to imports (ISSUE-609, MERGE-757). By Kyle Brindley.

- Update the correlation coefficients draft script with changes from the post-processing tutorial (ISSUE-610, MERGE-758). By Kyle Brindley.

- Use the public API function for builder action prefixes that change to the build directory before running a shell command (ISSUE-611, MERGE-759). By Kyle Brindley.

### Enhancements

- Stream the wrapped scons command STDOUT from the waves build subcommand (MERGE-745). By Kyle Brindley.

- Submit all targets simultaneously in the waves build subcommand (MERGE-745). By Kyle Brindley.

- Build the Conda environment artifact to the build directoy in the modsim template (MERGE-761). By Kyle Brindley.

- Use pathlib objects in the modsim template and reduce str conversions which are no longer necessary in SCons 4.6.0 (MERGE-762). By Kyle Brindley.

## 0.7.9 (2024-02-22)

### Bug fixes

- waves visualize now works with an input file even if an SConstruct file does not exist (ISSUE-586, MERGE-725). By Prabhu Khalsa.

- Fix bug in abaqus_file_parser that manifests when there is just one line of data in the field output section of the csv file (ISSUE-599, MERGE-740). By Prabhu Khalsa.

### Documentation

- Update the hardcoded copyright dates in the README and LICENSE files. By Kyle Brindley.

- Fix some typos in tutorial 01 and edit sentence for clarity (ISSUE-592, MERGE-730). By Prabhu Khalsa.

- Fixed issue where class level api documentation were not being populated correctly (ISSUE-595, MERGE-733). By Sergio Cordova.

### Internal Changes

- Explicit include of the tutorial and modsim template directories to help the conda-forge build find the non-Python files (ISSUE-589, MERGE-728). By Kyle Brindley.

- Silence irrelevant warning thrown by XArray (ISSUE-590, MERGE-729). By Kyle Brindley.

- Add boa to the CI environment for faster packaging (ISSUE-593, MERGE-731). By Kyle Brindley.

- Build with boa/mambabuild for faster packaging and run CI test jobs in parallel (ISSUE-594, MERGE-732). By Kyle Brindley.

- Remove duplicate logic in CI environment creation (ISSUE-8, MERGE-734). By Kyle Brindley.

- Remove `dev` branch and begin using a single production `main` branch (ISSUE-597, MERGE-737). By Kyle Brindley.

- Place pytest results in a build directory to avoid cluttering the source directory (ISSUE-598, MERGE-741). By Kyle Brindley.

## 0.7.8 (2024-01-16)

### New Features

- Add no_labels option to waves visualize (ISSUE-583, MERGE-717). By Prabhu Khalsa.

- New print-tree feature in waves visualize (ISSUE-582, MERGE-718). By Prabhu Khalsa.

- Add input-file option to waves visualize to graph provided input (ISSUE-584, MERGE-719). By Prabhu Khalsa.

### Bug fixes

- Handle redirected output target file substitution during ssh wrapped builders (ISSUE-580, MERGE-715). By Sergio Cordova.

### Documentation

- Remove waves module testing instructions from waves-eamb documentation (ISSUE-581, MERGE-716). By Sergio Cordova.

- Updated keywords in build system discussion for make (ISSUE-585, MERGE-720). By Sergio Cordova.

## 0.7.7 (2023-12-18)

### Internal Changes

- Update package structure discovery during the conda-build (MERGE-712). By Kyle Brindley.

## 0.7.6 (2023-12-11)

### New Features

- Prototype Sphinx builders (ISSUE-564, MERGE-701). By Kyle Brindley.

### Bug fixes

- Fix abaqus_file_parser to handle case where history region data appears immediately after step metadata (ISSUE-576, MERGE-705). By Prabhu Khalsa.

### Documentation

- Add PEP-8 reference and citation to the first two tutorials (ISSUE-524, MERGE-688). By Kyle Brindley.

- Add the project badges to the HTML docs landing page (ISSUE-422, MERGE-689). By Kyle Brindley.

- Update version control discussion to compare with product data management and add VCS references (ISSUE-484, MERGE-690). By Kyle Brindley.

- Add SCons construction environment discussion to the compute environment management section (ISSUE-522, MERGE-691). By Kyle Brindley.

- Draft discussion about data archival (ISSUE-467, MERGE-692). By Kyle Brindley.

- Cite and briefly discuss the role of standards documents from ASME and NASA (ISSUE-483, MERGE-693). By Kyle Brindley.

- Remove out-of-date AEA Quinoa tutorial warning. By Kyle Brindley.

- Simplified multi-action task tutorial (ISSUE-553, MERGE-695). By Sergio Cordova.

- Added consistent tutorial directories (ISSUE-562, MERGE-699). By Sergio Cordova.

- Added Abaqus part image script and images to the modsim_template (ISSUE-423, MERGE-700). By Sergio Cordova.

- Add a brief abstract/’Why WAVES?’ purpose statement to the documentation (ISSUE-548, MERGE-704). By Kyle Brindley.

- Update modsim template to use SCons variable substitution (ISSUE-579, MERGE-714). By Sergio Cordova.

### Internal Changes

- Require exact exceptions during unit testing of error handling (ISSUE-568, MERGE-706). By Sergio Cordova.

- Call system exit and associated error message more directly (ISSUE-566, MERGE-708). By Sergio Cordova.

- Reduce permissions of micro version bumping automation (ISSUE-578, MERGE-709). By Kyle Brindley.

### Enhancements

- Default to required task-by-task keyword arguments in the SSH builder to allow tasks to use unique remote directories, e.g. during parameter studies (ISSUE-560, MERGE-694). By Kyle Brindley.

- More robust user provided stdout file handling and allow multiple targets with the same file stem (ISSUE-556, MERGE-696). By Kyle Brindley.

- More robust search for Cubit bin for variations on the executable relationship to bin and MacOS installation directory names (ISSUE-569, MERGE-702). By Kyle Brindley.

- Default to local project help message and an override option in `waves.scons_extensions.project_help_message` taking advantage of an SCons 4.6.0 `env.Help()` keyword argument update. Backward compatibility with older versions of SCons is preserved (ISSUE-571, MERGE-703). By Kyle Brindley.

- Find all `INPUT=` parameter file dependencies in the Abaqus implicit DEPEndency scanner (ISSUE-577, MERGE-707). By Matthew Fister.

## 0.7.5 (2023-10-27)

### New Features

- Add experimental builder support for Quinoa (ISSUE-550, MERGE-676). By Kyle Brindley.

### Documentation

- Add work-in-progress tutorial for Quinoa with example problem provided by Christopher Long (ISSUE-550, MERGE-676). By Kyle Brindley.

### Internal Changes

- Add quinoa tutorial’s local AEA server build to the regression suite (ISSUE-554, MERGE-683). By Kyle Brindley.

- Move tutorial and modsim template files into the package repository for reduced special handling during packaging (MERGE-684). By Kyle Brindley.

- Merge remaining shell system tests to pytest managed execution (MERGE-684). By Kyle Brindley.

## 0.7.4 (2023-10-26)

### Bug fixes

- Handle indexed SCons source strings in the SSH build wrapper (MERGE-679). By Kyle Brindley.

### Documentation

- Add the PDF documentation cover as the EPUB cover (MERGE-672). By Kyle Brindley.

- Simplified scons quickstart `SConscript` file (ISSUE-521, MERGE-675). By Sergio Cordova.

- Change the modsim template name from `quickstart` to `modsim_template` to avoid confusion with the quickstart tutorials. Add a short discussion about retrieving the modsim template files (ISSUE-552, MERGE-678). By Kyle Brindley.

### Internal Changes

- Reduce code duplication in documentation build configuration (MERGE-671). By Kyle Brindley.

- The EPUB cover handling requires the imagemagick package, so use a `regression` alias to exclude the EPUB build from the regression suite until we decide how to handle the unavailability of imagemagick for Windows or accept linux/macos only CI builds (MERGE-672). By Kyle Brindley.

- Refine a sphinx build prototype builder and interface. By Kyle Brindley.

- Handle spaces in paths for `odb_extract` (ISSUE-549, MERGE-674). By Sergio Cordova.

- Use dictionary unpacking to place parameter sets in task definitions (MERGE-677). By Kyle Brindley.

### Enhancements

- Add loud failures to Abaqus Python CLI errors (ISSUE-551, MERGE-679). By Sergio Cordova.

## 0.7.3 (2023-10-17)

### New Features

- Add a function for printing build failure STDOUT files. Aids in project system testing the tutorials, but can also be useful for end users to print the failed task’s STDOUT live during workflow execution (ISSUE-546, MERGE-665). By Kyle Brindley and Matthew Fister.

### Documentation

- Updated tutorials to use `waves fetch` to facilitate starting from any tutorial (ISSUE-466, MERGE-631). By Sergio Cordova.

- Add favicon image for HTML documentation build (ISSUE-547, MERGE-666). By Kyle Brindley.

- Updated release instructions to use git tag (ISSUE-532, MERGE-667). By Sergio Cordova.

### Internal Changes

- Remove the tutorials’ journal file short options. In practice, they frequently conflict with the Abaqus command options and cause difficult to debug error message. Long options are less likely to produce this behavior (ISSUE-542, MERGE-661). By Kyle Brindley.

- Fixed failing tests (ISSUE-544, MERGE-663, ISSUE-545, MERGE-664). By Sergio Cordova.

## 0.7.2 (2023-10-10)

### New Features

- Added draft Sphinx dependency scanner (MERGE-640). By Kyle Brindley.

- Add an SCons environment constructor from shell commands (ISSUE-531, MERGE-646). By Kyle Brindley.

- Add wrapper function and decorator to catenate builder actions and wrap with an outer program (MERGE-647, MERGE-648). By Kyle Brindley.

- Abaqus solver, Abaqus journal, and Sierra SLURM Sbatch builders (MERGE-647, MERGE-648). By Kyle Brindley.

- Draft SSH builder wrapper (MERGE-649). By Kyle Brindley.

- Python SLURM Sbatch builder (ISSUE-539, MERGE-657). By Kyle Brindley.

- Accept Sbatch command-line options in the Sbatch wrapper builders (ISSUE-539, MERGE-657). By Kyle Brindley.

### Documentation

- Fixed broken AEA Compute Environment documentation links (ISSUE-527, MERGE-643). By Sergio Cordova.

- Use the Abaqus solver SLURM Sbatch builder in the associated tutorial (MERGE-647). By Kyle Brindley.

- Use the draft SSH builder wrapper in the remote execution tutorial (MERGE-649). By Kyle Brindley.

- Update the builder SConstruct examples (ISSUE-534, MERGE-653). By Kyle Brindley.

- Add a version check warning and instructions to the quickstart and core tutorials (ISSUE-540, MERGE-656). By Kyle Brindley.

### Internal Changes

- Trial update to run the system test suite in parallel. It’s possible the system tests are not yet thread safe (using a common `.sconsign.dblite` file but separate build directories), but this wasn’t observed in local testing. It’s also possible that Abaqus token availability will periodically timeout job submissions. If this produces many false negative tests requiring manual intervention, revert commit `d2e3c9d1` (ISSUE-519, MERGE-641). By Kyle Brindley.

- Elevate PDF documentation build warnings to errors to match other sphinx build behaviors (MERGE-642). By Kyle Brindley.

- Reduce operations required to set the builder post actions (ISSUE-535, MERGE-650). By Kyle Brindley.

- More complete tests for the ssh builder action wrapper function (ISSUE-533, MERGE-651). By Kyle Brindley.

- Common function for returning a builder’s actions as a list of string (ISSUE-537, MERGE-652). By Kyle Brindley.

- Update package build requirements to reflect current working package combinations. Eventually we will need to solve the `setuptools_scm>=8` error messages (ISSUE-538, MERGE-655). By Kyle Brindley.

### Enhancements

- In the SLURM `sbatch` builder, use the `sbatch` native output redirection to capture the executing job’s output instead of the minimal `sbatch` output (ISSUE-528, MERGE-644). By Kyle Brindley.

- Use the draft Sphinx dependency scanner in the quickstart template modsim project (ISSUE-529, MERGE-645). By Kyle Brindley.

- Update the Sierra execution environment solution (ISSUE-531, MERGE-646). By Kyle Brindley.

## 0.7.1 (2023-08-28)

### Bug fixes

- Fix odb_extract to ensure ‘mode=csv’ when odbreport is called. (ISSUE-517, MERGE-630). By Prabhu Khalsa.

### Breaking changes

- Deprecate the too-general `parameter_study <study type>` command-line utility name in favor of `waves <study type>` to avoid utility conflicts with other packages (ISSUE-494, MERGE-612). By Kyle Brindley.

- Standardize the builder program path keyword from `<thing>_program` to `program` for greater consistency in builder APIs. The older keywords are preseved for backward compatibility, but they raise a deprecation warning (ISSUE-495, MERGE-613). By Kyle Brindley.

- Rename the `waves.builders` module as `waves.scons_extensions` to reflect the growing scope of SCons extensions beyond a collection of builders. Backward compatilibity is maintained by duplicating the module under the old name with a deprecation warning (ISSUE-492, MERGE-618, ISSUE-512, MERGE-621, MERGE-627, MERGE-628). By Kyle Brindley.

### New Features

- Add experimental builder support for Sierra (ISSUE-500, MERGE-622). By Kyle Brindley.

- Add vertical option to waves visualize (ISSUE-514, MERGE-624). By Prabhu Khalsa.

### Documentation

- Update the tutorial and template modsim model name to reflect the geometry instead of the mesh (ISSUE-461, MERGE-614, MERGE-615). By Kyle Brindley.

- Trim down the README to focus on end users. Move developer notes directly into the HTML developer manual (ISSUE-505, MERGE-616). By Kyle Brindley.

- Add the WAVES primarymark image to the PDF title page (MERGE-620). By Kyle Brindley.

- Update the Cubit tutorial to demonstrate a side-by-side comparison of Abaqus and Sierra, where the Cubit tasks are reused for both solver workflows (ISSUE-513, MERGE-623). By Kyle Brindley.

- Simplified quickstart `SConscript` file (ISSUE-453, MERGE-619). By Sergio Cordova.

### Internal Changes

- Reduce the runtime dependency from the full matplotlib to matplotlib-base following the conda-forge recommendation: https://conda-forge.org/docs/maintainer/knowledge_base.html#matplotlib (ISSUE-440, MERGE-611). By Kyle Brindley.

- Explore a draft correlation coefficients post-procesing tutorial (MERGE-615). By Kyle Brindley.

- Update to use Abaqus 2023 (ISSUE-509, MERGE-617). By Kyle Brindley.

- More complete clean behavior for the documentation targets to reduce dev/main source conflicts during Gitlab-Pages builds (ISSUE-516, MERGE-625, MERGE-626). By Kyle Brindley.

- Update the expected Cubit version from 16.04 to 16.12 (ISSUE-510, MERGE-634). By Sergio Cordova.

- Add the `--build-dir` command-line option to the quickstart tutorials to enable the system tests to run in non-default, temporary build directories (ISSUE-518, MERGE-635). By Kyle Brindley.

- Drive the system tests (tutorials) from pytest during conda builds (MERGE-629). By Kyle Brindley.

- Upgrade to Anaocnda 2023 on Gitlab-CI environment (ISSUE-520, MERGE-636). By Sergio Cordova.

- Return to the conda build command (MERGE-637). By Kyle Brindley.

- Handle parameter study script input outside of argparse (ISSUE-72, MERGE-633). By Sergio Cordova.

- Removed debug argument from CLI (ISSUE-76, MERGE-632). By Sergio Cordova.

## 0.6.21 (2023-07-21)

### New Features

- Added Abaqus input dependency scanner (ISSUE-444, MERGE-602). By Sergio Cordova.

### Documentation

- Add the waves visualize image to the geometry tutorial (ISSUE-486, MERGE-603). By Kyle Brindley.

- Add the waves visualize image to the partition and mesh tutorial (ISSUE-502, MERGE-606). By Kyle Brindley.

- Add waves visualize image and directed graph discussion to all core tutorials (ISSUE-504, MERGE-607). By Kyle Brindley.

### Enhancement

- Add option to adjust font size in `waves visualize` sub-command (ISSUE-501, MERGE-604). By Kyle Brindley.

### Internal Changes

- Add pytest-cov to CI environment (MERGE-599). By Kyle Brindley.

- Add coverage report to internal CI jobs (ISSUE-496, MERGE-600). By Kyle Brindley.

- Drive the system tests (tutorials) from SCons and pytest (MERGE-601). By Kyle Brindley.

- Add an optional epub documentation build (MERGE-605). By Kyle Brindley.

## 0.6.20 (2023-06-29)

### Documentation

- Removed semaphore files in tutorials (ISSUE-488, MERGE-591). By Sergio Cordova

- Updated parameter study CLI messages to reflect yaml file behavior changes (ISSUE-490, MERGE-593). By Sergio Cordova

- Clarify the difference between the `copy_substitute` function and the WAVES-SCons builders. Update missing interface descriptions and return value descriptions (ISSUE-493, MERGE-595). By Kyle Brindley.

### Enhancement

- Overwrite h5 files if content changed on parameter generators (ISSUE-441, MERGE-590). By Sergio Cordova

- Overwrite yaml files if content changed on parameter generators (ISSUE-487, MERGE-592). By Sergio Cordova

### Internal Changes

- Remove unused environment variables from Conda package recipe (ISSUE-480, MERGE-587). By Kyle Brindley.

- Avoid packaging Sphinx intermediate build files during documentation packaging (ISSUE-481, MERGE-588). By Kyle Brindley.

- Use the conda-forge recommended ‘python-build’ package instead of ‘build’, which is apparently deprecated as too general a name (ISSUE-481, MERGE-589). By Kyle Brindley.

- Updated h5 and yaml parameter generator tests to use the same data input (ISSUE-491, MERGE-594). By Sergio Cordova

## 0.6.19 (2023-06-14)

### Bug fixes

- Check if ‘frames’ and ‘historyRegions’ keys exist before using them. Fixing bug from MERGE-574 (ISSUE-479, MERGE-584). By Prabhu Khalsa.

### Internal Changes

- Migrate from `setup.py` builds to the `build` package (ISSUE-477, MERGE-582). By Kyle Brindley.

- Make the `odb_extract` builder more OS portable (MERGE-583). By Kyle Brindley.

- Refactored `test_merge` functions in unit tests (ISSUE-387, MERGE-575). By Sergio Cordova.

## 0.6.18 (2023-06-09)

### Internal Changes

- Improve GitHub release workflow to match recommended practice (MERGE-580). By Kyle Brindley.

## 0.6.17 (2023-06-09)

### Bug fixes

- Fix other missing dimensions of history output dataset when step data is missing (ISSUE-470, MERGE-570). By Prabhu Khalsa.

- Fix field output dimensions when step data is missing (ISSUE-473, MERGE-574). By Prabhu Khalsa.

- Update numpy.float to numpy.float64 in abaqus_file_parser.py (ISSUE-476, MERGE-577). By Prabhu Khalsa.

### Documentation

- Complete the discussion sections in the data archival tutorial (ISSUE-465, MERGE-571). By Kyle Brindley.

- Minor changes in tutorials that ensure expected behavior when using the copy button (ISSUE-471, MERGE-573). By Sergio Cordova.

### Enhancements

- Sort the `fetch` available files output (ISSUE-475, MERGE-576). By Kyle Brindley.

## 0.6.16 (2023-05-15)

### Bug fixes

- Fix missing dimension of history output dataset when step data is missing (ISSUE-468, MERGE-565). By Prabhu Khalsa.

### Documentation

- Update citations to version 0.6.15 and associated DOI (ISSUE-460, MERGE-561). By Kyle Brindley.

### Internal Changes

- Upgrade to Anaconda 2021 on Gitlab-CI environment (ISSUE-463, MERGE-563).

- Remove Gitlab-CI workarounds from the CI configuration (ISSUE-469, MERGE-566). By Kyle Brindley.

- Prevent creation of pycache files during documentation and pytest tasks (ISSUE-34, MERGE-567). By Kyle Brindley.

### Enhancements

- Return executable paths with double quotes around parts containing spaces. Should make executing commands by absolute path in Windows command prompt and powershell more robust (ISSUE-462, MERGE-562). By Kyle Brindley.

## 0.6.15 (2023-05-04)

### Documentation

- Linked argparse tutorial in tutorial 01 (ISSUE-439, MERGE-549). By Sergio Cordova.

- Removed datacheck from the quickstart tutorials (ISSUE-446, MERGE-551). By Sergio Cordova.

- Hardcoded the source and target lists in the quickstart tutorials (ISSUE-448, MERGE-552). By Sergio Cordova.

- Standardize the discussion of builder specific keyword arguments (ISSUE-459, MERGE-558). By Kyle Brindley.

- Add an option to skip Tutorial 00: SConstruct with the waves fetch command (ISSUE-451, MERGE-559). By Kyle Brindley.

### Internal Changes

- Fix the license syntax in `CITATION.cff` to help Zenodo recognize the license type (MERGE-546). By Kyle Brindley.

- Cleaned up conda package CI files after `conda build` (ISSUE-442, MERGE-547). By Sergio Cordova.

- Removed mutable default arguments from python scripts (ISSUE-454, MERGE-553). By Sergio Cordova.

### Enhancements

- Added `--exclude-regex` argument to `visualize` subcommand (ISSUE-419, MERGE-548). By Sergio Cordova.

- Added abaqus explicit and standard emitters to `AbaqusSolver` (ISSUE-443, MERGE-554). By Sergio Cordova.

- Add Matlab script parent directory to Matlab path in the Matlab script builder action. No longer necessary to copy Matlab script(s) to build directory prior to execution. Matlab script copy operation no longer performed by default. Builder still considered “experimental” until a tutorial is released (ISSUE-456, MERGE-555). By Kyle Brindley.

- Add an example Matlab input parser to the Matlab tutorial script (ISSUE-420, MERGE-556). By Kyle Brindley.

- Add an example Matlab docstring in the sphinxcontrib-matlabdomain style (ISSUE-457, MERGE-557). By Kyle Brindley.

- Add an option to override the Abaqus solver builder’s emitted targets (ISSUE-459, MERGE-558). By Kyle Brindley.

## 0.6.14 (2023-03-23)

### Documentation

- Added `sphinx-copybutton` to HTML documentation code blocks (ISSUE-415, MERGE-515). By Sergio Cordova.

- Add discussion about reproducibility and uniqueness to the LatinHypercube tutorial (ISSUE-241, MERGE-540). By Kyle Brindley.

- Condense the API and CLI sections into the user manual TOC tree (ISSUE-241, MERGE-540). By Kyle Brindley.

### Internal Changes

- Fix test for msg_parse.py to achieve 100 percent coverage (ISSUE-433, MERGE-531). By Prabhu Khalsa.

- Fix test for sta_parse.py to achieve 100 percent coverage (ISSUE-435, MERGE-533). By Prabhu Khalsa.

- Added `sphinx-copybutton` package to environment via pip (ISSUE-436, MERGE-532). By Sergio Cordova.

- Added `sphinx-copybutton` package to environment via conda-forge (ISSUE-437, MERGE-537). By Sergio Cordova.

- Remove unecessary `LD_LIBRARY_PATH` operations in Gitlab-CI configuration (ISSUE-438, MERGE-538). By Kyle Brindley.

- Add waves subcommand sign-of-life tests to the external/GitHub conda-build recipe tests (ISSUE-430, MERGE-539). By Kyle Brindley.

- Seed the LatinHypercube tutorial parameter study (ISSUE-241, MERGE-540). By Kyle Brindley.

- Fix test execution and assertions for the parameter study command-line utility (MERGE-543). By Kyle Brindley.

- Fix test for test_odb_extract.py to achieve 100 percent coverage (ISSUE-434, MERGE-534). By Prabhu Khalsa.

## 0.6.13 (2023-03-07)

### New Features

- Add a `waves fetch` subcommand to fetch bundled modsim template files (ISSUE-428, MERGE-522). By Kyle Brindley.

- Bundle the tutorial files in the conda package (ISSUE-427, MERGE-523). By Kyle Brindley.

### Bug fixes

- Fix issue in excluding nodes of waves visualization (ISSUE-426, MERGE-519). By Prabhu Khalsa.

### Documentation

- Added ORCiD (ISSUE-424, MERGE-517). By Scott Ouellette

- Add GitHub Pages and Release badges and update conda-forge badge to use shield.io style (ISSUE-425, MERGE-518). By Kyle Brindley.

- Replace `git archive` commands with `waves fetch` when retrieving source files in the tutorials (ISSUE-429, MERGE-525). By Kyle Brindley.

### Internal Changes

- Added `sphinx-copybutton` package to environment (ISSUE-414, MERGE-516). By Sergio Cordova.

- Split quickstart copy operations into smaller functions for unit testing (ISSUE-428, MERGE-522). By Kyle Brindley.

- Rename command-line utility module to avoid namespace confusion (ISSUE-428, MERGE-522). By Kyle Brindley.

- Reduce fetch unit test logic duplication (ISSUE-432, MERGE-527). By Kyle Brindley.

### Enhancements

- `quickstart` subcommand will create all non-conflicting destination files instead of exiting with an error when `overwrite` is `False` (ISSUE-413, MERGE-520). By Kyle Brindley.

- `quickstart` subcommand will avoid unnecessary file I/O when source and destination file contents match and `overwrite` is `True` (ISSUE-413, MERGE-520). By Kyle Brindley.

- Add a `pathlib.Path.rglob` recursive search to `waves fetch` to enable pattern matching on relative paths and files (ISSUE-431, MERGE-526). By Kyle Brindley.

## 0.6.12 (2023-02-21)

### New Features

- Add alpha release of new visualization feature (ISSUE-408, MERGE-500). By Prabhu Khalsa.

### Documentation

- Update highlighted, non-boilerplate code in the Geometry tutorial (ISSUE-410, MERGE-503). By Kyle Brindley.

- Clarify the difference between a builder and the `copy_substitute` method (ISSUE-411, MERGE-504). By Kyle Brindley.

- Prefer SCons variable substitution over f-strings where possible (MERGE-502). By Kyle Brindley.

- Miscellaneous clarifications and updates to the tutorials (ISSUE-409, MERGE-505). By Kyle Brindley.

- Add additional author ORCIDs to the citation file (ISSUE-407, MERGE-512). By Kyle Brindley.

- Match journal file CLI usage message to the executable/interpretter (ISSUE-421, MERGE-514). By Kyle Brindley.

### Internal Changes

- Add networkx to WAVES environment for new visualization feature (ISSUE-412, MERGE-501). By Prabhu Khalsa.

- Fall back to system anaconda shared environment when project CI environment doesn’t exist (ISSUE-417, MERGE-511). By Kyle Brindley.

- Update the minimum scipy version runtime requirement to support the scipy Sobol generator. This change was already implemented for the conda-forge and GitHub packages. Change affects AEA Conda channel. (ISSUE-278, MERGE-506). By Kyle Brindley.

### Enhancements

- Check beginning and end of strings in `visualize --exclude-list` to enable excluding by file extension (ISSUE-418, MERGE-510). By Kyle Brindley.

## 0.6.11 (2023-01-26)

### Documentation

- Add DOI and conda-forge badges to the README (ISSUE-406, MERGE-496). By Kyle Brindley.

- Add the GitHub citation file format with Zenodo DOI (ISSUE-397, MERGE-497). By Kyle Brindley.

## 0.6.10 (2023-01-26)

### Documentation

- GitHub recognized BSD 3-Clause license file. Moves the copyright notice to the README (ISSUE-404, MERGE-492). By Kyle Brindley.

- Update installation instructions to reflect conda-forge deployed package (ISSUE-405, MERGE-493). By Kyle Brindley.

### Internal Changes

- Remove unecessary elements of conda recipes (MERGE-491). By Kyle Brindley.

- Default to the external/GitHub/conda-forge documentation variant (ISSUE-405, MERGE-493). By Kyle Brindley.

## 0.6.9 (2023-01-24)

### Internal Changes

- Windows friendly test scripts for GitHub conda build recipe (MERGE-488). By Kyle Brindley.

- Windows friendly unit test path expectations (ISSUE-403, MERGE-489). By Kyle Brindley.

## 0.6.8 (2023-01-24)

### Internal Changes

- Add more meta data to the Conda recipes using the conda-forge example style (MERGE-480). By Kyle Brindley.

- MacOS friendly cp symlink dereference in conda recipes (MERGE-481). By Kyle Brindley.

- List modules in setuptools packages configuration (MERGE-482). By Kyle Brindley.

- Use Python for OS-agnostic documentation packaging in conda build recipes (MERGE-483). By Kyle Brindley.

- Windows friendly path construction in the Sphinx configuration (MERGE-486). By Kyle Brindley.

## 0.6.7 (2023-01-23)

### Documentation

- Add package meta data to conda build recipes (ISSUE-401, MERGE-476). By Kyle Brindley.

- Add PDF documentation to the GitHub release workflow (ISSUE-402, MERGE-477). By Kyle Brindley.

## 0.6.6 (2023-01-23)

### Documentation

- Expand the instructions for installing from tar archive release (ISSUE-399, MERGE-471). By Kyle Brindley.

### Internal Changes

- Update CI minimum dependency versions, specifically `sphinx_rtd_theme` to fix the GitHub Pages build (ISSUE-398, MERGE-470). By Kyle Brindley.

- Draft GitHub release workflow (ISSUE-399, MERGE-471). By Kyle Brindley.

- Build PDF documentation as external audience variation (ISSUE-400, MERGE-472). By Kyle Brindley.

- Troubleshoot to working release (MERGE-474). By Kyle Brindley.

## 0.6.5 (2023-01-20)

### Documentation

- Use the GitHub repository URL wherever possible as the officially published repository and documentation. Duplicate URLs where necessary (ISSUE-393, MERGE-463). By Kyle Brindley.

### Internal Changes

- Add a Conda recipe that bundles the documentation built with external/GitHub URLs (ISSUE-392, MERGE-464). By Kyle Brindley.

## 0.6.4 (2023-01-20)

### Documentation

- Add GitHub.com Pages workflow (MERGE-459). By Kyle Brindley.

### Internal Changes

- Fix the man page build/ignore alias (MERGE-458). By Kyle Brindley.

- Full depth GitHub-Pages checkout to guarantee version tags in the documentation build (MERGE-461). By Kyle Brindley.

## 0.6.3 (2023-01-20)

### Documentation

- Add the BSD-3-Clause license and copyright notice (ISSUE-389, MERGE-452). By Kyle Brindley.

- Add installation and interim installation (pending conda-forge deployment) instructions. Reduce compute-server-specific language. By Kyle Brindley.

### Internal Changes

- Use a common solution to finding the build subdirectory in all emitters (ISSUE-390, MERGE-453). By Kyle Brindley.

### Enhancements

- Add a Matlab environment file output to the experimental Matlab script builder and emitter (ISSUE-390, MERGE-453). By Kyle Brindley.

## 0.6.2 (2023-01-13)

### New Features

- Add SALib `fast_sampler` to the list of tested samplers for parameter generation (MERGE-444). By Kyle Brindley.

- Add SALib `finite_diff` to the list of tested samplers (MERGE-447). By Kyle Brindley.

- Add SALib `morris` to the list of tested samplers (ISSUE-386, MERGE-443). By Kyle Brindley.

- Add an experimental draft builder for Matlab scripts (ISSUE-388, MERGE-449). By Kyle Brindley.

### Documentation

- Adjust PDF documentation build’s font size of code-blocks to fit 120 character width files (MERGE-445 MERGE-446). By Kyle Brindley.

- Remove unnecessary nested f-string and SCons variable replacement syntax from post-processing tasks in core tutorials (ISSUE-377, MERGE-448). By Kyle Brindley.

### Internal Changes

- Reduce builder emitter code duplication with a common “first target” emitter (ISSUE-388, MERGE-449, MERGE-450). By Kyle Brindley.

## 0.6.1 (2023-01-06)

### New Features

- Add a general SALib sampler parameter generator (ISSUE-385, MERGE-436). By Kyle Brindley.

- Allow passing of arbitrary keyword arguments to the parameter generator sampling method through the parameter generator interface (ISSUE-381, MERGE-440). By Kyle Brindley.

### Internal Changes

- Adds salib to the runtime requirements (ISSUE-385, MERGE-436). By Kyle Brindley.

- Generate the parameter study on parameter generator class instantiation. Preserve the public `generate()` method with a deprecation warning (ISSUE-381, MERGE-440). By Kyle Brindley.

## 0.5.11 (2023-01-05)

### New Features

- Add a parameter-set-as-dictionaries method to the parameter generator class (ISSUE-378, MERGE-430). By Kyle Brindley.

- Add a general scipy sampler parameter generator (ISSUE-384, MERGE-435). By Kyle Brindley.

### Documentation

- Add the parameter study dictionary method to each parameter generator’s external API and update the CartesianProduct tutorial discussion (ISSUE-382, MERGE-434). By Kyle Brindley.

### Internal Changes

- Add seaborn package to the development and CI environments (ISSUE-380, MERGE-432). By Kyle Brindley.

- Consolidate the scipy based parameter generator logic (ISSUE-383, MERGE-433). By Kyle Brindley.

- Remove unused variables from tutorial workflow configurations (ISSUE-382, MERGE-434). By Kyle Brindley.

- Add salib package to the development and CI environments (MERGE-437). By Kyle Brindley.

### Enhancements

- Use a YAML file instead of a nested string construction for the post-processing selection dictionary (ISSUE-379, MERGE-431). By Kyle Brindley.

## 0.5.10 (2022-12-19)

### New Features

- Add configuration files to the archive tutorial and quickstart archival task (ISSUE-369, MERGE-423). By Kyle Brindley.

- Add positive-float input verification to the tutorial and quickstart files (ISSUE-375, MERGE-424). By Kyle Brindley.

### Bug fixes

- Fix issue in abaqus_file_parser where first frame of field output didn’t get all the dimensions (ISSUE-376, MERGE-425). By Prabhu Khalsa.

### Documentation

- Add a supplemental tutorial for input verification using Argparse type user-defined methods (ISSUE-375, MERGE-424). By Kyle Brindley.

### Internal Changes

- Account for OS path separator differences in the documentation build for WAVES and the quickstart template files (ISSUE-4, MERGE-426). By Kyle Brindley.

## 0.5.9 (2022-12-14)

### New Features

- Add an SCons build function to wrap the parameter generator write method. Removes the need for a user-defined build function (ISSUE-373, MERGE-418). By Kyle Brindley.

### Internal Changes

- Standardize job name construction throughout tutorials (ISSUE-374, MERGE-420). By Kyle Brindley.

## 0.5.8 (2022-12-08)

### New Features

- Add a Cubit environment modifier helper method (ISSUE-367, MERGE-407). By Kyle Brindley.

- Manage Cubit environment `PATH`-like variables from the project configuration file instead of relying on the user environment or a project modulefile (ISSUE-367, MERGE-407). By Kyle Brindley.

- Update the expected Cubit version from 15.8 to 16.04 (ISSUE-367, MERGE-407). By Kyle Brindley.

- Add a general construction environment `PATH` modifier method (ISSUE-151, MERGE-410). By Kyle Brindley.

- Wrap `PATH` modifier and program search into a single method (ISSUE-151, MERGE-410). By Kyle Brindley.

- Add a WAVES helper method to add default targets text to a project’s help message (ISSUE-371, MERGE-413). By Kyle Brindley.

- Add a WAVES helper method to add alias list text to a project’s help message (ISSUE-370, MERGE-414). By Kyle Brindley.

### Bug fixes

- Fix issue in abaqus_file_parser where coordinates and dimensions didn’t match due to history output appearing in second step, but not in first (ISSUE-372, MERGE-415). By Prabhu Khalsa.

### Documentation

- Clarify tutorial instructions, edit for grammar and typos, and remove deprecated instructions based on user feedback and review (MERGE-412). By Kyle Brindley.

- Reduce common project configuration boilerplate code in the tutorials and quickstart template files (ISSUE-370, MERGE-414). By Kyle Brindley.

### Internal Changes

- Remove Matlab and Cubit environment modification from project modulefile (ISSUE-367, MERGE-407). By Kyle Brindley.

- Remove Abaqus environment modification from project modulefile (ISSUE-151, MERGE-410). By Kyle Brindley.

- Match naming convention for general construction environment `PATH` modifier method and Cubit modified method. By (ISSUE-151, MERGE-410) Kyle Brindley.

- Prefer appending over prepending to system `PATH`. Wrap Cubit environment modifier for behavior consistent with the other program search methods (ISSUE-368, MERGE-411). By Kyle Brindley.

## 0.5.7 (2022-12-01)

### New Features

- Add quantitative regression test option to the tutorial and quickstart post-processing script (ISSUE-329, MERGE-406). By Kyle Brindley.

### Bug fixes

- Update the `plot_scatter.py` tutorial and quickstart post-processing script to account for the new dimension in `odb_extract` output (ISSUE-365, MERGE-405). By Kyle Brindley.

### Internal Changes

- Add builder action unit tests (ISSUE-364, MERGE-404). By Kyle Brindley.

- Change post-processing script name in the tutorials and quickstart template files to match broader scope (ISSUE-329, MERGE-406). By Kyle Brindley.

## 0.5.6 (2022-11-29)

### New Features

- Experimental `sbatch` builder and work-in-progress tutorial. Not a final draft with CI regression testing, but a starting point to solicit user stories (ISSUE-327, MERGE-398). By Kyle Brindley.

- Add an archival task tutorial to the core lesson plan (ISSUE-351, MERGE-400). By Kyle Brindley.

- Add archive task to `waves quickstart` template files (ISSUE-351, MERGE-400). By Kyle Brindley.

- Experimental `setuptools_scm` for dynamic version numbering tied to git as a version control system (ISSUE-363, MERGE-401). By Kyle Brindley.

### Bug fixes

- Cast the documentation index file Pathlib object to a string to comply with the `webbrowser.open()` required input variable type (ISSUE-362, MERGE-399). By Thomas Roberts.

### Internal Changes

- Remove `LD_LIBRARY_PATH` modification from Gitlab-CI modulefile. Modification is used in the AEA shared compute environments for c++ user subroutines, but is not necessary for WAVES and interferes with RHEL 7 system libraries (ISSUE-227, MERGE-397). By Kyle Brindley.

## 0.5.5 (2022-11-23)

### Bug fixes

- Add `__init__.py` file creation earlier in the tutorials to match the `PYTHONPATH` `SContruct` changes made in MERGE-375 (ISSUE-355, MERGE-383). By Kyle Brindley.

### Documentation

- Add a note about avoiding dependency cycles to the `copy_substitute` method (ISSUE-338, MERGE-388). By Kyle Brindley.

### Internal Changes

- Remove the “short” paper used for external publication. Next external release will be the open source repository (ISSUE-353, MERGE-382). By Kyle Brindley.

- Use keyword arguments in xarray plotting method(s) because positional arguments were deprecated in xarray 2022.11.0: https://docs.xarray.dev/en/stable/whats-new.html#deprecations (ISSUE-354, MERGE-385). By Kyle Brindley.

- Update the preferred Abaqus version to 2022 (ISSUE-350, MERGE-387). By Kyle Brindley.

- Run Gitlab-CI jobs on either AEA server (ISSUE-357, MERGE-389). By Kyle Brindley.

- Update the `odb_extract` default abaqus executable name convention to match the AEA server installation (ISSUE-358, MERGE-390). By Kyle Brindley.

- Use `mamba` for the Gitlab-CI package build process. Testing suggests it will save several minutes (maybe ~10% total time) in the `conda-build` CI job (ISSUE-360, MERGE-391). By Kyle Brindley.

- Revert to `sstelmo` for deploy jobs until `aea_service` account changes are finalized (MERGE-392). By Kyle Brindley.

- Avoid unnecessary job artifact download in Gitlab-CI jobs (ISSUE-359, MERGE-393). By Kyle Brindley.

- Protect Gitlab-CI deploy type jobs from scheduled pipelines (ISSUE-361, MERGE-394). By Kyle Brindley.

- No fast-test job on push pipelines to production branches (MERGE-395). By Kyle Brindley.

## 0.5.4 (2022-11-07)

### Internal Changes

- Revert the “short” paper title for external publication. Entire paper build may be removed after final draft submission (ISSUE-352:, MERGE-380). By Kyle Brindley.

## 0.5.3 (2022-11-02)

### New Features

- Add the preferred WAVES citation bibtex file to the `waves quickstart` template files (ISSUE-342, MERGE-367). By Kyle Brindley.

- Fixed the Sphinx usage of the preferred project citation. Sphinx uses BibTeX, which doesn’t have the `@software` style. Added project citations to the quickstart template files (ISSUE-343, MERGE-368). By Kyle Brindley.

### Documentation

- Update the `CITATION.bib` file to use the most recent production release number. Update the version release instructions to include this step (ISSUE-339, MERGE-366). By Kyle Brindley.

- Minor typographical fix in API (ISSUE-340, MERGE-369). By Kyle Brindley.

- Add a work-in-progress tutorial for re-using task definitions (ISSUE-63, MERGE-373). By Kyle Brindley.

- Add SConscript interface doc strings (ISSUE-346, MERGE-374). By Kyle Brindley.

### Internal Changes

- Remove Gitlab-CI developer note that is no longer relevant (ISSUE-9, MERGE-370). By Kyle Brindley.

- Remove pytest.ini and put settings in pyproject.toml (ISSUE-344, MERGE-371). By Prabhu Khalsa.

- Standardize on `pathlib` constructed absolute paths (ISSUE-346, MERGE-374). By Kyle Brindley.

- Make all `PATH`-like modifications once in the project configuration instead of distributed `sys.path` calls (ISSUE-345, MERGE-375). By Kyle Brindley.

- Remove unecessary tutorial and quickstart intermediate workflow directories (ISSUE-347, MERGE-376). By Kyle Brindley.

## 0.5.2 (2022-10-17)

### Bug fixes

- Fixed abaqus_file_parser (odb_extract) to correctly parse multiple steps in an odb (ISSUE-177, MERGE-359). By Prabhu Khalsa.

- Added code to abaqus_file_parser (odb_extract) to handle case where odbreport file lists an incorrect number of surface sets (ISSUE-335, MERGE-360). By Prabhu Khalsa.

- Do not append the CSV target when the odb extract builder option is set to delete that file (ISSUE-334, MERGE-363). By Kyle Brindley.

### Documentation

- Add draft example for running tasks remotely via SSH (ISSUE-316, MERGE-354). By Kyle Brindley.

- Match the user manual TOC tree to the tutorials table for less sidebar clutter (ISSUE-331, MERGE-356). By Kyle Brindley.

- Add reference to the `waves quickstart` modsim template to the user manual introduction (ISSUE-332, MERGE-357). By Kyle Brindley.

- Reduce man pages to a reference manual for the package API and CLI (ISSUE-333, MERGE-358). By Kyle Brindley.

### Internal Changes

- Remove references to the deprecated “amplitudes” file from the tutorials (ISSUE-326, MERGE-355). By Kyle Brindley.

- Add preferred CITATION file to the project root (ISSUE-337, MERGE-362). By Kyle Brindley.

## 0.5.1 (2022-09-30)

### Breaking changes

- Use a more generic name for the builder-global post action argument (ISSUE-318, MERGE-349). By Kyle Brindley.

### New Features

- Add builder-global post action feature to Abaqus journal and Python script builders (ISSUE-318, MERGE-349). By Kyle Brindley.

- Add a `.gitignore` file to the `waves quickstart` template files (ISSUE-324, MERGE-352). By Kyle Brindley.

### Internal Changes

- Reduce duplicate code by moving common, required, generate method calls to the ABC abstract method (ISSUE-322, MERGE-350). By Kyle Brindley.

- Update the tutorials directory name. It no longer contains the WAVES-EABM template, which moved to the quickstart directory (ISSUE-323, MERGE-351). By Kyle Brindley.

### Enhancements

- Accept a list of strings for the `abaqus_solver` `post_action` argument (ISSUE-318, MERGE-349). By Kyle Brindley.

## 0.4.7 (2022-09-29)

### New Features

- Add demonstration PDF report that reuses the documentation source files to the `waves quickstart` template files (ISSUE-305, MERGE-338). By Kyle Brindley.

- Add Abaqus solve cpu option as a build action signature escaped sequence in the `waves quickstart` template files (ISSUE-194, MERGE-341). By Kyle Brindley.

### Bug fixes

- Remove the `amplitudes.inp` file which conflicts with the direct displacement specification change introduced in MERGE-272 (ISSUE-320, MERGE-346). By Kyle Brindley.

- Fix the partially broken rectangle simulation schematic in the quickstart template files (ISSUE-321, MERGE-347). By Kyle Brindley.

### Documentation

- Add direct links to the Abaqus journal file API/CLI in the tutorials (ISSUE-175, MERGE-337). By Kyle Brindley.

- Add a rough draft “build action signature escape sequence” tutorial to demonstrate escape sequence usage (ISSUE-194, MERGE-341). By Kyle Brindley.

- Update the `tree` command usage for consistency across tutorials (ISSUE-317, MERGE-342). By Kyle Brindley.

- Clarify the usage of Python pathlib methods to generate the `solve_source_list` in Tutorial 04: Simulation (ISSUE-314, MERGE-343). By Thomas Roberts.

- Add a theory section to the quickstart template analysis report(s) and fix the images to match the intended simulation design (ISSUE-320, MERGE-345). By Kyle Brindley.

### Internal Changes

- Remove waves internal import from quickstart files (ISSUE-313, MERGE-339). By Kyle Brindley.

- Remove the waves internal import from the tutorial files (ISSUE-315, MERGE-340). By Kyle Brindley.

- Change from a plane strain to plane stress tutorial and quickstart simulation (ISSUE-319, MERGE-344). By Kyle Brindley.

- Change to the Abaqus linear solver in the example simulation (ISSUE-320, MERGE-345). By Kyle Brindley.

### Enhancements

- Reduce instances of hardcoded project name in the `waves quickstart` template files (ISSUE-312, MERGE-336). By Kyle Brindley.

## 0.4.6 (2022-09-21)

### Internal Changes

- Stop webhosting the WAVES-EABM quickstart HTML documentation until the build can be fixed in ISSUE-311 (MERGE-329). By Kyle Brindley.

- Test if the Git-LFS configuration errors were the cause of the bad version number and the Gitlab-Pages failures (MERGE-330). By Kyle Brindley.

- Chase the Git-LFS bug with a `before_script` debugging statement and `git lfs install` (MERGE-331). By Kyle Brindley.

- Test version number and Gitlab-Pages possible fix with a production release (ISSUE-306, MERGE-332). By Kyle Brindley.

## 0.4.5 (2022-09-21)

### Documentation

- Clarify `waves quickstart` project directory behavior in the CLI (MERGE-321). By Kyle Brindley.

### Internal Changes

- Fix the WAVES-EABM Gitlab-CI pages job. The quickstart WAVES-EABM removed the logic to help find WAVES in the repository instead of the Conda environment, so the build commands must modify PYTHONPATH (ISSUE-307, MERGE-317, MERGE-318). By Kyle Brindley.

- Add Conda managed Git package to the development environment (ISSUE-285, MERGE-322). By Kyle Brindley.

- Remove unused packages from quickstart template environemnt file (ISSUE-309, MERGE-325). By Kyle Brindley.

- Remove the duplicate tutorial suite regression tests. WAVES-EABM documentation test build now lives in the quickstart template and individual tutorial configuration are tested directly (ISSUE-310, MERGE-326). By Kyle Brindley.

### Enhancements

- WAVES `quickstart` subcommand no longer preserves source tree read/write meta data (ISSUE-304, MERGE-320). By Kyle Brindley.

## 0.4.4 (2022-09-19)

### New Features

- Add a `waves quickstart` subcommand to copy the rectangle compression project as a template for a new project. Currently limited to the “SCons-WAVES quickstart” tutorial files. (ISSUE-284, MERGE-300). By Kyle Brindley.

- Add a documentation template to the `waves quickstart` subcommand (ISSUE-291, MERGE-314). By Kyle Brindley.

### Documentation

- Update tutorial output examples to match the separation of datacheck and simulation tasks performed in ISSUE-244, MERGE-250. Some of the tutorial body text was missed in the update (ISSUE-298, MERGE-307). By Kyle Brindley.

- Update the Cubit journal file descriptions (ISSUE-299, MERGE-308). By Kyle Brindley.

- Clarify input and output file extension behavior in the journal file API and CLI (ISSUE-301, MERGE-311). By Kyle Brindley.

- Add analysis report examples to the WAVES-EABM documentation (ISSUE-202, MERGE-313). By Kyle Brindley.

### Internal Changes

- Do not install as the deprecated zipped EGG file (ISSUE-290, MERGE-301). By Kyle Brindley.

- Test the as-installed HTML documentation index file location used by the `waves docs` subcommand (ISSUE-290, MERGE-301). By Kyle Brindley.

- Dereference symbolic links during `copy_substitute` tasks by default (ISSUE-297, MERGE-303). By Kyle Brindley.

- Ignore `*.pyc` and cache files during `waves quickstart` project template creation (ISSUE-300, MERGE-310). By Kyle Brindley.

- Ignore the datacheck alias tasks when Abaqus is missing (ISSUE-296, MERGE-312). By Kyle Brindley.

### Enhancements

- Implement separate project and simulation configuration files for the `waves quickstart` subcommand (ISSUE-292, MERGE-302). By Kyle Brindley.

- Add extraction, post-processing, and global data_check alias to `waves quickstart` subcommand (ISSUE-293, MERGE-304). By Kyle Brindley.

- Add a mesh convergence template to the `waves quickstart` subcommand (ISSUE-294, MERGE-305). By Kyle Brindley.

## 0.4.3 (2022-09-13)

### Bug fixes

- Match the CSV file name to the H5 target name in the Abaqus extract builder. Will allow multiple tasks to extract separate output from the same ODB file (ISSUE-287, MERGE-296). By Kyle Brindley.

- Match the job name to the output file name instead of the input file name in `odb_extract` (ISSUE-287, MERGE-296). By Kyle Brindley.

## 0.4.2 (2022-09-08)

### Breaking changes

- Add ‘_Assembly’ to name of assembly instance in hdf5 output of odb_extract. Added to differentiate it from part instance of the same name (ISSUE-260, MERGE-263). By Prabhu Khalsa.

### Internal Changes

- Use `scipy` for latin hypercube sampling instead of `pyDOE2`. Reduces package dependency count and standardizes the current parameter generators on a single package (ISSUE-286, MERGE-293). By Kyle Brindley.

## 0.4.1 (2022-09-07)

### Breaking changes

- Use the same parameter distribution schema as Latin Hypercube in the Sobol Sequence generator (ISSUE-282, MERGE-288). By Kyle Brindley.

- Change the keyword arguments variable name to the more general `kwargs` in Latin Hypercube and Sobol Sequence for consistency between classes (ISSUE-282, MERGE-288). By Kyle Brindley.

- Remove the Linux wrapper shell script in favor of merging the `git clone` feature with the OS-agnostic `waves build` subcommand (ISSUE-283, MERGE-291). By Kyle Brindley.

### New Features

- Experimental waves build command for automatically re-running workflows which extend a parameter study (ISSUE-279, MERGE-285). By Kyle Brindley.

- Add a custom study subcommand to the parameter study CLI (ISSUE-276, MERGE-289). By Kyle Brindley.

- Add a sobol sequence subcommand to the parameter study CLI (ISSUE-277, MERGE-290). By Kyle Brindley.

- Add a `git clone` feature to the `waves build` subcommand (ISSUE-282, MERGE-291). By Kyle Brindley.

### Bug fixes

- Accept any 2D array like for the Custom Study parameter generator (ISSUE-276, MERGE-289). By Kyle Brindley.

### Documentation

- Clarify the WAVES builder behavior of setting the working directory to the parent directory of the first specified target (ISSUE-265, MERGE-279). By Thomas Roberts.

- Complete WAVES Tutorial: Mesh Convergence (ISSUE-272, MERGE-282). By Thomas Roberts.

- Add Tutorial: Mesh Convergence to the tutorial introduction page (ISSUE-281, MERGE-287). By Thomas Roberts.

### Enhancements

- Provide the data downselection dictionary as a CLI argument rather than hardcoding it in `plot_scatter.py` (ISSUE-273, MERGE-281). By Thomas Roberts.

### Internal Changes

- Test the parameter study CLI generator sub-commands (ISSUE-276, MERGE-289). By Kyle Brindley.

## 0.3.6 (2022-08-31)

### New Features

- Add a Sobol sequence parameter generator. Requires `scipy>=1.7.0` but this is not yet enforced in the Conda package runtime requirements. See ISSUE-278 for the timeline on the minimum `scipy` requirement update (ISSUE-274, MERGE-278). By Kyle Brindley.

### Bug fixes

- Use the parameter set name as the parameter study’s set index dimension. Fixes unintentional breaking change in the parameter study coordinates from MERGE-266 that required users to swap dimensions when merging parameter studies with the associated results (ISSUE-270, MERGE-277). By Kyle Brindley.

- Merge quantiles attribute correctly when provided with a previous parameter study (ISSUE-275, MERGE-280). By Kyle Brindley.

### Documentation

- Make typesetting corrections to the WAVES tutorials (ISSUE-263, MERGE-276). By Thomas Roberts.

### Internal Changes

- Use vectorized indexing to replace `nan` values in `_ParameterGenerator._update_parameter_set_names()` (ISSUE-271, MERGE-275). By Matthew Fister.

## 0.3.5 (2022-08-24)

### Documentation

- Fix the type hint for the `previous_parameter_study` of the paramter generators’ API (MERGE-271). By Kyle Brindley.

- Add the parameter study extension feature to the parameter study tutorials (ISSUE-267, MERGE-273). By Kyle Brindley.

### Enhancements

- Add keyword argument pass through to Latin Hypercube generation (ISSUE-261, MERGE-272). By Kyle Brindley.

- Use the parameter study extension feature in the `previous_parameter_study` interface of the parameter generators (ISSUE-267, MERGE-273). By Kyle Brindley.

### Internal Changes

- Use `pyDOE2` instead of `smt` for Latin Hypercube sampling. Implement more rigorous Latin Hypercube parameter study unit tests (ISSUE-261, MERGE-272). By Kyle Brindley.

## 0.3.4 (2022-08-23)

### Breaking changes

- Remove the intermediate attributes used to form the parameter study Xarray Dataset from the external API (ISSUE-268, MERGE-268). By Kyle Brindley.

### Bug fixes

- Fix parameter set dimensions in tutorial set iteration usage for parameter studies with more than 10 sets (ISSUE-258, MERGE-260). By Kyle Brindley.

- Fix odb_extract to properly parse and store the first data value in the field outputs (ISSUE-259, MERGE-261). By Prabhu Khalsa.

### New Features

- Add set name template option to the parameter generators and parameter study interfaces. Allow the set name template to be changed when writing parameter sets to STDOUT or a single file. (ISSUE-253, MERGE-264). By Kyle Brindley.

- Add the ability to merge or expand parameter studies without re-building all previously executed SCons parameter sets. Feature functions for all parameter generators and the CLI (ISSUE-224, MERGE-266). By Kyle Brindley.

### Documentation

- Separate the parameter study output file template from the set name directories in the WAVES-EABM tutorials (ISSUE-264, MERGE-265). By Kyle Brindley.

### Internal Changes

- Raise an exception for unsupported output file type strings (ISSUE-253, MERGE-264). By Kyle Brindley.

- Store the parameter set names as a dictionary mapping the unique parameter set hash to the set name (ISSUE-268, MERGE-268). By Kyle Brindley.

## 0.3.3 (2022-08-09)

### Bug fixes

- Look outside the `noarch` installation egg to find the installed documentation files (ISSUE-249, MERGE-248). By Kyle Brindley.

- odb_extract can now handle multiple ‘Component of field’ headers if they are present within field data sections (ISSUE-254, MERGE-255). By Prabhu Khalsa.

- Fix unintentional type casting in the parameter study conversion to dict (ISSUE-255, MERGE-257). By Kyle Brindley.

### New Features

- Add CustomStudy parameter study generator (ISSUE-231, MERGE-224). By Matthew Fister.

### Documentation

- Add bibliography citations to match external URLs hyperreferences (ISSUE-242, MERGE-249). By Kyle Brindley.

- Add a draft outline of a regression test tutorial (ISSUE-162, MERGE-251). By Kyle Brindley.

- Add references and citations to tutorials (ISSUE-252, MERGE-253). By Kyle Brindley.

- Add discussion to the data extraction tutorial (ISSUE-104, MERGE-254). By Kyle Brindley.

### Internal Changes

- Separate the WAVES-EABM datacheck tasks from the main simulation workflow (ISSUE-244, MERGE-250). By Kyle Brindley.

### Enhancements

- Redirect the `rm` command STDOUT and STDERR from the abaqus extract builder to a unique filename (ISSUE-250, MERGE-252). By Kyle Brindley.

## 0.3.2 (2022-08-04)

### Bug fixes

- Remove redundant parameter file dependency from WAVES-EABM parameter substitution tutorial source files (ISSUE-246, MERGE-243). By Kyle Brindley.

### New Features

- Create a `waves` command-line utility with a version argument and a subparser for opening the packaged HTML documentation in the system default web browser (ISSUE-172, MERGE-233). By Thomas Roberts.

- Add a Conda environment builder to aid in Python software stack documentation for reproducibility (ISSUE-212, MERGE-239). By Kyle Brindley.

- Add a substitution syntax helper to prepend and append special characters on dictionary key strings (ISSUE-235, MERGE-240). By Kyle Brindley.

### Documentation

- Standardize on ‘project configuration’ language to describe SCons scripts: SConstruct and SConscript (ISSUE-134, MERGE-237). By Kyle Brindley.

- Update the tutorial discussions about the simulation variables dictionary usage (ISSUE-243, MERGE-241). By Kyle Brindley.

- Standardize the WAVES-EABM parameter set module names (ISSUE-245, MERGE-242). By Kyle Brindley.

- Discuss task signatures related to parameter set values in the WAVES-EABM parameter substitution tutorial (ISSUE-246, MERGE-243). By Kyle Brindley.

### Internal Changes

- Update the WAVES-EABM journal and python files for the PEP-8 style guide (ISSUE-190, MERGE-236). By Kyle Brindley.

- Remove the Abaqus keyword `*PARAMETER` from the parameter substitution tutorial because it’s not supported for input file import to CAE. (ISSUE-240, MERGE-238). By Kyle Brindley.

- In WAVES-EABM, use parameter name keys without substitution syntax and perform substitution syntax key string changes only when necessary for parameter substitution (ISSUE-243, MERGE-241). By Kyle Brindley.

- Standardize the WAVES-EABM parameter set module names (ISSUE-245, MERGE-242). By Kyle Brindley.

- Standardize code snippet markers in tutorial configuration files to reduce diff clutter in the documentation (ISSUE-247, MERGE-245). By Kyle Brindley.

## 0.3.1 (2022-08-02)

### Breaking changes

- Change the parameter study data key from ‘values’ to ‘samples’ to avoid name clash with the ‘values’ method and attribute of dictionaries and datasets. (ISSUE-234, MERGE-229). By Kyle Brindley.

- Re-organize the parameter study coordinates to allow mixed types, e.g. one parameter that uses strings and another that uses floats (ISSUE-239, MERGE-234). By Kyle Brindley.

### Bug fixes

- Add construction environment variables to the Abaqus extract builder signature. Builder now re-executes when the keyword arguments change (ISSUE-230, MERGE-232). By Kyle Brindley.

- Re-organize the parameter study coordinates to allow mixed types, e.g. one parameter that uses strings and another that uses floats. Fixes the parameter study read/write to h5 files to avoid unexpected type conversions (ISSUE-239, MERGE-234). By Kyle Brindley.

### Documentation

- Complete WAVES Tutorial 07: Cartesian Product (ISSUE-103, MERGE-152). By Thomas Roberts.

### Internal Changes

- Simpler parameter study unpacking into the parameter set task generation loop (ISSUE-238, MERGE-230). By Kyle Brindley.

## 0.2.2 (2022-07-28)

### Breaking changes

- Parmeter study writes to YAML syntax by default to provide syntactically correct STDOUT default behavior. Note that the `write()` feature isn’t used in the WAVES-EABM tutorials, so the user manual documentation is unchanged. (ISSUE-218, MERGE-212). By Kyle Brindley.

- Remove the parameter study python syntax output. Recommend using YAML syntax and the PyYAML package if parameter study output files must use a text based serialization format. (ISSUE-223, MERGE-217). By Kyle Brindley.

### New Features

- Add the latin hypercube generator to the parameter study command-line utility (ISSUE-216, MERGE-207). By Kyle Brindley.

- Accept output template pathlike strings and write parameter study meta file in the same parent directory as the parameter set files (ISSUE-79, MERGE-210). By Kyle Brindley.

- Add the option to output the parameter study sets as Xarray Dataset H5 files (ISSUE-218, MERGE-212). By Kyle Brindley.

- Add the option to output the parameter study as a single file (ISSUE-222, MERGE-218). By Kyle Brindley.

### Bug fixes

- Fix the representation of strings in the parameter generator parameter set output files (ISSUE-215, MERGE-206). By Kyle Brindley.

- Fix the parameter study meta file write behavior to match documentation (MERGE-209). By Kyle Brindley.

### Documentation

- Provide Abaqus files in the appendix for users without access to the WAVES or WAVES-EABM repository files (ISSUE-206, MERGE-203). By Kyle Brindley.

- Remove the ABC ParameterGenerator abstract method docstrings from the parameter generators’ APIs (ISSUE-213, MERGE-204). By Kyle Brindley.

- Clarify parameter generator behavior in external APIs. Add ABC write method docstring to parameter generators’ APIs. (ISSUE-195, MERGE-214). By Kyle Brindley.

- Placeholder structure for work-in-progress post-processing tutorial (ISSUE-95, MERGE-215). By Kyle Brindley.

### Internal Changes

- Add cartesian product schema validation (ISSUE-80, MERGE-208). By Kyle Brindley.

- Avoid file I/O during parameter study write pytests (ISSUE-217, MERGE-211). By Kyle Brindley.

- Add matplotlib to the CI environment for the pending post-processing tutorial (ISSUE-221, MERGE-216). By Kyle Brindley.

- Add configuration and integration test files for a post-processing demonstration, including merging a parameter study with the results data. (ISSUE-95, MERGE-215). By Kyle Brindley.

- Simplify the WAVES-EABM parameter study variables and their usage in the simulation configuration files (ISSUE-219, MERGE-221). By Kyle Brindley.

- Changed validated to verified in WAVES acronym as it better reflects the intent of the tool (ISSUE-220, MERGE-222). By Kyle Brindley.

### Enhancements

- Construct WAVES and WAVES-EABM alias list from SCons configuration (ISSUE-56, MERGE-213). By Kyle Brindley.

- Add the `scipy.stats` parameter name to distribution object mapping dictionary as the `parameter_distributions` attribute of the `LatinHypercube` class for use by downstream tools and workflows (ISSUE-228, MERGE-220). By Kyle Brindley.

- Avoid type conversions with mixed type cartesian product parameter studies (ISSUE-225, MERGE-223). By Kyle Brindley.

## 0.2.1 (2022-07-22)

### Breaking changes

- Reform the parameter study xarray object to make it more intuitive (ISSUE-210, MERGE-197). By Kyle Brindley.

### New Features

- Add the `find_program` method to search for an ordered list of program names (ISSUE-65, MERGE-185). By Kyle Brindley.

- Add a LatinHypercube parameter generator (ISSUE-77, MERGE-192). By Kyle Brindley.

### Documentation

- Add minimal structure to data extraction tutorial (ISSUE-198, MERGE-183). By Kyle Brindley.

- Add a brief draft of the documentation computational practice discussion (ISSUE-124, MERGE-184). By Kyle Brindley.

- Add a Cubit example draft to the tutorials (ISSUE-203, MERGE-186). By Kyle Brindley.

- Separate the internal and external API (ISSUE-200, MERGE-188). By Kyle Brindley.

- Add private methods to the internal API (MERGE-190). By Kyle Brindley.

- Add a mulit-action task example using the general purpose SCons Command builder (ISSUE-196, MERGE-198). By Kyle Brindley.

- Add a Latin Hypercube tutorial (ISSUE-211, MERGE-200). By Kyle Brindley.

### Internal Changes

- Remove unused `pyyaml` package from WAVES-EABM environment lists (ISSUE-197, MERGE-182). By Kyle Brindley.

- Use the `find_program` method to search for an ordered list of Abaqus executable names in the WAVES-EABM and tutorials. Prefer the install naming convention `abqYYYY` (ISSUE-65, MERGE-185). By Kyle Brindley.

- Move the parameter set name creation to a dedicated function shared by all parameter generator classes (ISSUE-205, MERGE-189). By Kyle Brindley.

- Placeholder Latin Hypercube parameter generator with functioning schema validation (ISSUE-207, MERGE-191). By Kyle Brindley.

- Add `scipy` to the waves development environment for the latin hypercube parameter generator (ISSUE-208, MERGE-193). By Kyle Brindley.

- Mock `scipy` in the Sphinx documentation build to reduce package build time requirements (MERGE-194). By Kyle Brindley.

- Add `smt` to waves development environment to support latin hypercube parameter generator (MERGE-195). By Kyle Brindley.

### Enhancements

- Add support for `odb_extract` arguments in the `abaqus_extract` builder (ISSUE-200, MERGE-188) By Kyle Brindley.

## 0.1.17 (2022-07-18)

### Documentation

- Add the compute environment section to the computational practices discussion (ISSUE-126, MERGE-179). By Kyle Brindley.

## 0.1.16 (2022-07-14)

### Documentation

- Update Scons terminal output and sample tree output in the tutorials to reflect the state of a user’s tutorial files (ISSUE-189, MERGE-174). By Thomas Roberts.

- Add a pure SCons quickstart tutorial (ISSUE-48, MERGE-173). By Kyle Brindley.

### Internal Changes

- Reduce the simulation variables and substitution dictionary to a single dictionary (ISSUE-181, MERGE-177). By Kyle Brindley.

## 0.1.15 (2022-07-14)

### Breaking changes

- Require at least one target for the AbaqusJournal and PythonScript builders (ISSUE-188, MERGE-166). By Kyle Brindley.

- Return parameter study as an xarray dataset instead of a text YAML dictionary. Necessary for future output type options and multi-index tables, e.g. Latin Hypercube value and quantile information (ISSUE-70, MERGE-170). By Kyle Brindley.

- Convert project command-line variables to command-line options (ISSUE-179, MERGE-169). By Kyle Brindley.

### New Features

- Add ODB extract builder and EABM tutorial configuration (ISSUE-92, MERGE-100). By Prabhu Khalsa and Kyle Brindley.

### Bug fixes

- Fix the output and return code unpacking when calling the `run_external` function from `odb_extract.main` (ISSUE-92, MERGE-100). By Kyle Brindley.

- Execute the ODB parser for H5 file output (ISSUE-92, MERGE-100). By Kyle Brindley.

- Fix the `odb_extract` entry point specification. New specification required by new internal interface introduced in MERGE-100 (ISSUE-186, MERGE-163). By Kyle Brindley.

- Fix a missing file copy required by the Conda recipe test definition (ISSUE-187, MERGE-164). By Kyle Brindley.

- Match the script builder redirected STDOUT file name to the first target. Required to allow multiple tasks that execute the same script. Adds new target list requirement the script builders (ISSUE-188, MERGE-166). By Kyle Brindley.

### Documentation

- Update project URLs to reflect the move to the AEA Gitlab group (ISSUE-183, MERGE-160). By Kyle Brindley.

- Add a missing input file to the SolverPrep tutorial instructions (ISSUE-192, MERGE-167). By Kyle Brindley.

- Clarify target list requirements and emitter behavior in the builder APIs (ISSUE-188, MERGE-160). By Kyle Brindley.

- Add a discussion about the types, purposes, and values of modsim repository testing (ISSUE-127, MERGE-171). By Kyle Brindley.

- Fix typos and typesetting issues in Tutorial 01: Geometry (ISSUE-191, MERGE-172). By Thomas Roberts.

### Internal Changes

- Remove remnants of the parameter study file I/O that is no longer necessary from the cartesian product configuration (ISSUE-184, MERGE-161). By Kyle Brindley.

- Remove the `.jnl` file from the list of targets appended by the Abaqus journal builder (ISSUE-180, MERGE-162). By Matthew Fister.

- Explicitly manage the `.jnl` target additions for more complete SCons clean operations (ISSUE-185, MERGE-168). By Kyle Brindley.

## 0.1.14 (2022-06-30)

### Documentation

- Complete WAVES Tutorial 06: Include Files (ISSUE-102, MERGE-151). By Thomas Roberts and Kyle Brindley.

- Completed WAVES Tutorial 02: Partition and Mesh (ISSUE-98, MERGE-149). By Thomas Roberts and Kyle Brindley.

- Completed WAVES Tutorial 05: Parameter Substitution (ISSUE-137, MERGE-101). By Thomas Roberts and Kyle Brindley.

## 0.1.13 (2022-06-29)

### Bug fixes

- Abaqus File Parser will now handle blank values for Integration Points even when the ‘IP’ heading is given (ISSUE-176, MERGE-153). By Prabhu Khalsa.

### Documentation

- Add source code links to WAVES and WAVES-EABM documentation (ISSUE-173, MERGE-148). By Kyle Brindley.

### Internal Changes

- Move the argument parsing for partitioning and meshing to dedicated argument parser functions (ISSUE-174, MERGE-150). By Thomas Roberts.

- Remove the dummy file targets for documentation builds to allow conditional re-building only on source/target content changes (ISSUE-5, MERGE-154). By Kyle Brindley.

- Unpinned Sphinx version. Added fix to avoid warnings treated as errors (ISSUE-178, MERGE-155). By Sergio Cordova.

## 0.1.12 (2022-06-17)

### Documentation

- Move the build wrapper discussion and usage into the command-line utilities section (ISSUE-168, MERGE-143). By Kyle Brindley.

- Add TOC tree captions as PDF parts in the PDF documentation build (ISSUE-169, MERGE-144). By Kyle Brindley.

### Internal Changes

- Limit Gitlab-Pages build to the HTML documentation (ISSUE-168, MERGE-143). By Kyle Brindley.

- Fix the WAVES-EABM Gitlab-Pages documentation build (ISSUE-170, MERGE-145). By Kyle Brindley.

## 0.1.11 (2022-06-17)

### New Features

- Add an SCons build wrapper to manage unique build directory names and Git clone operations (ISSUE-114, MERGE-141). By Kyle Brindley.

### Documentation

- Add brandmark logo to documentation (ISSUE-133, MERGE-128). By Kyle Brindley.

- Update the Abaqus solver builder’s docstring action to match the implementation (ISSUE-163, MERGE-134). By Kyle Brindley.

- Update the developer documentation for WAVES repository testing and add a code snippet to help find the CI test targets (ISSUE-160, MERGE-135). By Kyle Brindley.

- Use copy and paste-able commands for SCons man page location and linking instructions (ISSUE-164, MERGE-136). By Kyle Brindley.

- Complete WAVES Tutorial 4: Simulation (ISSUE-100, MERGE-117). By Thomas Roberts.

- Add brandmark to WAVES-EABM documentation (ISSUE-166, MERGE-139). By Kyle Brindley.

- Add manpage and PDF builders for the WAVES documentation and bundle with the Conda package (ISSUE-167, MERGE-140). By Kyle Brindley.

- Update the Abaqus documentation links to use the Abaqus 2021 documentation (ISSUE-165, MERGE-138). By Thomas Roberts.

### Internal Changes

- Added three new documentation aliases to match the sphinx-build builders: html, latexpdf, man. “documentation” alias now collects all three documentation build types (ISSUE-167, MERGE-140). By Kyle Brindley.

## 0.1.10 (2022-06-09)

### Breaking changes

- Remove the `abaqus_wrapper` bash utility in favor of an SCons builder solution (ISSUE-22, MERGE-127). By Kyle Brindley.

- Use `*.stdout` extension for re-directed STDOUT and STDERR streams to avoid clobbering third-party software log files (ISSUE-159, MERGE-131). By Kyle Brindley.

### Documentation

- Add tutorial description page for summary instructions (ISSUE-144, MERGE-121). By Kyle Brindley.

- Add draft of the computational practices version control section (ISSUE-123, MERGE-122). By Kyle Brindley.

### Internal Changes

- Clean at the end of a branch’s Gitlab-Pages job to avoid incomplete clean operations when main/dev differ in their target file(s) (ISSUE-152, MERGE-125). By Kyle Brindley.

- Improve directory location change logic in the Gitlab-Pages job (ISSUE-154, MERGE-126). By Kyle Brindley.

- Keep the SConstruct markers to avoid unecessarily long and possibly confusing diffs in the tutorial documentation (ISSUE-158, MERGE-129). By Kyle Brindley.

### Enhancements

- Treat the EABM source files like a local package for re-using project settings (ISSUE-150, MERGE-124). By Kyle Brindley.

## 0.1.9 (2022-06-03)

### Documentation

- Add minimum scaffolding for the solverprep tutorial documentation (ISSUE-145, MERGE-111). By Kyle Brindley.

- Add minimum scaffolding for the simulation tutorial documentation (ISSUE-146, MERGE-112). By Kyle Brindley.

- Add a quickstart tutorial using a single project configuration file (ISSUE-147, MERGE-113). By Kyle Brindley.

- Add the EABM API and CLI to an Appendices section in the WAVES documentation (ISSUE-138, MERGE-104). By Thomas Roberts.

- Revise Tutorial 01: Geometry to match formatting of other tutorials (ISSUE-148, MERGE-116). By Thomas Roberts.

- Completed WAVES Tutorial 03: SolverPrep (ISSUE-99, MERGE-115). By Thomas Roberts.

## 0.1.8 (2022-06-02)

### New Features

- Add the command-line tools odb_extract, msg_parse, and sta_parse (ISSUE-93, MERGE-88). By Prabhu Khalsa.

### Bug fixes

- Workaround the self-signed re-git.lanl.gov ssl certificates (ISSUE-142, MERGE-109). By Kyle Brindley.

### Documentation

- Update the SConstruct example for the Python script builder (ISSUE-113, MERGE-83). By Kyle Brindley.

- Fix the out-of-order build/test/documentation examples as bulleted lists instead of enumerated lists (ISSUE-115, MERGE-84). By Kyle Brindley.

- Draft outline for the computational tools and practices “theory” manual (ISSUE-96, MERGE-85). By Kyle Brindley.

- Add the project configuration (SConstruct) tutorial (ISSUE-119, MERGE-89). By Kyle Brindley.

- Add minimum scaffolding for the parameter substitution tutorial documentation (ISSUE-137, MERGE-101). By Kyle Brindley.

- Draft of Tutorial 1: Geometry (ISSUE-45, MERGE-35). By Thomas Roberts.

- Completed WAVES Tutorial 1: Geometry (ISSUE-129, MERGE-94). By Thomas Roberts.

- Add minimum scaffolding for the include files tutorial documentation (ISSUE-139, MERGE-105). By Kyle Brindley.

- Add minimum scaffolding for the cartesian product tutorial documentation (ISSUE-140, MERGE-106). By Kyle Brindley.

### Internal Changes

- Create a list of files to be copied to the documentation build directory for include statements in `.rst` files (ISSUE-120, MERGE-90). By Thomas Roberts.

- Specify Sphinx v4.5.0 in the enviroment file (ISSUE-121, MERGE-91). By Thomas Roberts.

- Removed duplicate code in the docs/SConscript file (ISSUE-128, MERGE-93). By Sergio Cordova

- Changed test_builders so journal.stdout is not created by two targets (ISSUE-130, MERGE-95). By Prabhu Khalsa

- Create per-tutorial EABM stub project configuration files (SConstruct) to aid in incremental changes in the tutorial documentation and allow for per-tutorial regression tests (ISSUE-131, MERGE-97). By Kyle Brindley.

- Added odb_extract rst documentation and added odb_extract, msg_parse, and sta_parse to pyrpojects.toml (ISSUE-132, MERGE-96). By Prabhu Khalsa

- Added StaFileParser API documentation (ISSUE-135, MERGE-99). By Prabhu Khalsa

- Added MsgFileParser API documentation (ISSUE-136, MERGE-98). By Prabhu Khalsa

## 0.1.7 (2022-05-27)

### Breaking changes

- Re-arrange the EABM stub source files to allow identically named Abaqus and Cubit journal files when those files perform a nominally identical task (ISSUE-109, MERGE-77). By Kyle Brindley.

### New Features

- Add the SCons target definition equivalent to the ECMF and CMake-simulation cartesian product parameterized simulation files (ISSUE-61, MERGE-64). By Kyle Brindley.

- Record the Abaqus environment for each Abaqus builder task (ISSUE-85, MERGE-75). By Kyle Brindley.

- Add prototype Cubit geometry tutorial source files (ISSUE-108, MERGE-76). By Kyle Brindley.

- Add Cubit partition and mesh tutorial source files (ISSUE-110, MERGE-78). By Kyle Brindley.

- Add a Cubit journal files to Abaqus solver tutorial source files (ISSUE-111, MERGE-79). By Kyle Brindley.

### Documentation

- Update the build discussion to include references to the SCons complete CLI options. Add missing portions of the WAVES development operations documentation (ISSUE-49, MERGE-69). By Kyle Brindley.

- Typesetting update for mesh node and element set names in the meshing journal file API (ISSUE-84, MERGE-71). By Kyle Brindley.

- Add the Python package dependency list to the HTML documentation (ISSUE-81, MERGE-72). By Kyle Brindley.

- Update the EABM stub environment activation and creation instructions (ISSUE-82, MERGE-73). By Kyle Brindley.

- Update the tutorial Abaqus journal files CLI documentation for consistency with the API (ISSUE-83, MERGE-74). By Kyle Brindley.

### Internal Changes

- Collect target list with a Python built-in list for consistency across SConscript solutions with the paramerization solution (ISSUE-89, MERGE-65). By Kyle Brindley.

- Make the Abaqus and documentation builders thread safe for SCons parallel threading feature, `--jobs` option (ISSUE-62, MERGE-66). By Kyle Brindley.

- Update the parameter study for more useful post-processing demonstrations (ISSUE-107, MERGE-70). By Kyle Brindley.

- Separate the EABM specific abaqus utility function from the meshing journal file (ISSUE-53, MERGE-80). By Kyle Brindley.

### Enhancements

- Use the parameter study object directly to avoid unnecessary EABM parameter study file I/O (ISSUE-91, MERGE-67). By Kyle Brindley.

## 0.1.6 (2022-05-17)

### Breaking changes

- Output parameter set files in YAML syntax instead of CMake syntax (ISSUE-71, MERGE-59). By Kyle Brindley.

- Avoid writing parameter study meta file by default. Never write parameter meta file for output to STDOUT (ISSUE-87, MERGE-61). By Kyle Brindley.

- Change the project name to “WAVES” and update the Git repository URL and documentation (ISSUE-88, MERGE-62). By Kyle Brindley.

### New Features

- Re-work the parameter generators for direct use in an SCons builder: validate schema on instantiation, provide argument defaults on instantiation, output list of pathlib.Path file objects that will be written (ISSUE-60, MERGE-60). By Kyle Brindley.

### Documentation

- Add the root project name back to the documentation build (ISSUE-86, MERGE-57). By Kyle Brindley.

### Internal Changes

- Exclude documentation source files and build artifacts from the Conda package (ISSUE-68, MERGE-54). By Kyle Brindley.

- Move Conda package constants into a package internal settings file. Remove as many project settings from SCons configuration files as possible (ISSUE-64, MERGE-55). By Kyle Brindley.

- Separate the parametery study utility from the parameter generators module (ISSUE-64, MERGE-55). By Kyle Brindley.

- Handle parameter study utility missing positional arguments gracefully by printing usage (ISSUE-64, MERGE-55). By Kyle Brindley.

## 0.1.5 (2022-05-12)

### New Features

- Add an Abaqus datacheck prior to solving the simulation target (ISSUE-30, MERGE-26). By Kyle Brindley.

- Limit the EABM default targets to the documentation. Requires simulation targets to be specified in the SCons command line arguments to avoid building all simulations from a bare `scons` execution (ISSUE-32, MERGE-27). By Kyle Brindley.

- Make the variant (build) directory a command-line variable option (ISSUE-25, MERGE-29). By Kyle Brindley.

- Build the project internal variables into a substitution dictionary that can be passed to SConscript files (ISSUE-13, MERGE-30). By Kyle Brindley.

- Add a copy and substitute target builder to WAVES (ISSUE-28, MERGE-32). By Kyle Brindley.

- Add an alias collector solution to provide a list of available aliases in the project help message (ISSUE-33, MERGE-38). By Kyle Brindley.

- Add the SCons target definition equivalent to the ECMF and CMake-simulation parameter substitution tutorial files (ISSUE-57, MERGE-43). By Kyle Brindley.

- Add the SCons target definition equivalent to the ECMF include file tutorial (ISSUE-59, MERGE-44). By Kyle Brindley.

- Conditionally ignore Sphinx targets when the sphinx-build is not found in the construction environment (ISSUE-3, MERGE-45). By Kyle Brindley.

- Provide and use an override variable to the conditional ignore behavior. Useful for requiring all targets in a build, particularly for CI testing (ISSUE-3, MERGE-45). By Kyle Brindley.

- Conditionally skip simulation target trees when a required program is missing (ISSUE-38, MERGE-46). By Kyle Brindley.

### Bug fixes

- Limit automatically appended target extensions for the AbaqusSolver builder to avoid inadvertent `AlwaysBuild` behavior introduced by expected, but missing, file extensions that are never created (ISSUE-41, MERGE-28). By Kyle Brindley.

### Documentation

- Link from the AbaqusSolver builder to the Abaqus wrapper shell script to help explain the action definition (ISSUE-42, MERGE-31). By Kyle Brindley.

- Add a command-line interface (CLI) documentation page (ISSUE-44, MERGE-34). By Thomas Roberts.

- Fix WAVES builder docstring example syntax (ISSUE-54, MERGE-36). By Kyle Brindley.

- Create a custom usage message for the geometry argument parser that displays the proper command for running an Abaqus journal file (ISSUE-55, MERGE-37). By Thomas Roberts.

### Internal Changes

- Move the geometry argument parser to a stand-alone function within the geometry script (ISSUE-43, MERGE-33). By Thomas Roberts.

- Unit test the WAVES copy and substitute builder function (ISSUE-52, MERGE-40). By Kyle Brindley.

- Unit test the WAVES Abaqus Journal builder and emitter (ISSUE-50, MERGE-41). By Kyle Brindley.

- Unit test the WAVES Abaqus Solver builder and emitter (ISSUE-51, MERGE-51). By Kyle Brindley.

- Search a user provided construction environment for the ‘abaqus_wrapper’ program before using the WAVES internal project bin. Allows users to override the WAVES Abaqus wrapper with their own (ISSUE-40, MERGE-47). By Kyle Brindley.

- Separate the development environment fast tests from the Conda build/test job. Skip the WAVES documentation build in the Conda packaging process (ISSUE-67, MERGE-48). By Kyle Brindley.

- Deploy as a `noarch` Conda package (ISSUE-69, MERGE-51). By Kyle Brindley.

### Enhancements

- Avoid build file creation in the source directory during copy/substitution operations, e.g. SolverPrep (ISSUE-16, MERGE-25). By Kyle Brindley.

- Provide an optional Abaqus program argument to the Abaqus builders (ISSUE-40, MERGE-47). By Kyle Brindley.

## 0.1.4 (2022-05-06)

### New Features

- Add parameter study module and tests (ISSUE-27, MERGE-19). By Kyle Brindley.

- Add Conda build recipe (ISSUE-35, MERGE-21). By Kyle Brindley.

- Deploy Conda package as “waves” to AEA Conda channel (ISSUE-36, MERGE-22). By Kyle Brindley.

### Documentation

- Use WAVES repository version in WAVES-EABM documentation (ISSUE-31, MERGE-18). By Kyle Brindley.

## 0.1.3 (2022-05-05)

### New Features

- Append the Abaqus journal Builder managed targets automatically (ISSUE-18, MERGE-10). By Kyle Brindley.

- Separate the common custom builders from the EABM SCons project configuration (ISSUE-19, MERGE-11). By Kyle Brindley.

- Add a variable to pass through additional Abaqus command-line arguments to the Abaqus journal file builder (ISSUE-19, MERGE-11). By Kyle Brindley.

- Add the SCons target definition equivalent to the ECMF and CMake-simulation Abaqus simulation execution (ISSUE-21, MERGE-13). By Kyle Brindley.

### Bug fixes

- Avoid modifying the contents or timestamp of input files in Abaqus journal files (ISSUE-17, MERGE-12). By Kyle Brindley.

### Documentation

- Add SCons custom builder documentation for the build system (ISSUE-19, MERGE-11). By Kyle Brindley.

- Separate the Scons build system documentation from the associated WAVES-EABM documentation (ISSUE-26, MERGE-16). By Kyle Brindley.

### Internal Changes

- Remove the dummy `{job_name}.touch` file from the Abaqus wrapper. SCons does not automatically delete target file(s) when the build fails like GNU Make or CMake does (ISSUE-24, MERGE-14). By Kyle Brindley.

## 0.1.2 (2022-05-04)

### New Features

- Add the SCons target definition equivalent to the ECMF and CMake-simulation “Tutorial 01: geometry” (ISSUE-10, MERGE-3). By Kyle Brindley.

- Add the SCons target definition equivalent to the ECMF and CMake-simulation “Tutorial 02: partition and mesh” (ISSUE-11, MERGE-4). By Kyle Brindley.

- Add the SCons target definition equivalent to the ECMF and CMake-simulation “Tutorial 03: solverprep” (ISSUE-14, MERGE-6). By Kyle Brindley.

- Link the SCons man pages to the expected man page directory of the Conda environment (ISSUE-15, MERGE-7). By Kyle Brindley.

### Bug fixes

- Fix the documentation alias declaration (ISSUE-6, MERGE-8). By Kyle Brindley.

### Documentation

- Add Abaqus journal file API to documentation (ISSUE-12, MERGE-5). By Kyle Brindley.

## 0.1.1 (2022-05-03)

### New Features

- Functioning Gitlab-CI environment creation job. By Kyle Brindley.

- Functioning documentation target build and Gitlab-Pages CI job. By Kyle Brindley.

- Automatic micro version number bumping for dev->main merges (ISSUE-1, MERGE-1). By Kyle Brindley.

- Retrieve project version number from Git tags for the SCons environment (ISSUE-1, MERGE-1). By Kyle Brindley.

## 0.1.0 (2022-04-20)

### Breaking changes

### New Features

### Bug fixes

### Documentation

### Internal Changes

### Enhancements