Skip to content

Releases: nasa/fmdtools

fmdtools v2.1.3

06 Jun 23:46
v2.1.3
91fbfb2
Compare
Choose a tag to compare

This release brings two main changes to fmdtools:

  1. The ability to have GeomArchitectures with Geometries that change position and shape. This is now enabled by having State values that can define properties of Geoms, rather than just Parameters.

  2. More documentation of FRDL, including the incorporation of a tutorial and step-by-step run-throughs of the circuit and bread making examples

     Release Notes - Resilience Analysis and Design  - Version fmdtools 2.1.3
    

Sub-Task

  • [RAD-499] - Fill out FRDL spec
  • [RAD-507] - Add ability to visualize dynamic Geoms

Release Checklist

<style> </style>
Step Description Complete?
1 Sync appropriate branches into release branch using git sync-into-dev x
2 Update version numbers in appropriate files x
2a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml init.py" x
2b "Run a repository-wide search for the version number" x
3 Allow (or force) Bamboo CI to build tests and docs x
4 "Release to GitHub/remotes using git release v2.x.x ''Version 2.x.x'' " x
5 Create a release in GitHub x
5a "incorporate a narrative summary of features and changes" x
5b "incorporate the auto-generated bitbucket release notes." x
6 "Update project plan" x
6a "Include any changed dependencies" x
6b "Include version in schedule" x
6c "Identify and include additional changes/activities" x
7 Update/check external CI resources as needed x
7a "Toggle CodeFactor so it updates" (from 38 to 36 issues)
7b "Check upload to PyPi" x

fmdtools v2.1.2

20 May 00:25
v2.1.2
Compare
Choose a tag to compare

The fmdtools v.2.1.2 version includes minimal changes to the library itself, but comes with the incorporation of the Functional Reasoning Design Language (FRDL) specification as a part of the documentation repository.

<style> </style>
Step Description Complete? Comment
1 Sync appropriate branches into release branch using git sync-into-dev x  
2 Update version numbers in appropriate files x  
2a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml init.py" x  
2b "Run a repository-wide search for the version number" x  
3 Allow (or force) Bamboo CI to build tests and docs x  
4 "Release to GitHub/remotes using git release v2.x.x ''Version 2.x.x'' " x  
5 Create a release in GitHub x  
5a "incorporate a narrative summary of features and changes" x  
5b "incorporate the auto-generated bitbucket release notes." x  
6 "Update project plan" x  
6a "Include any changed dependencies" x  
6b "Include version in schedule" x  
6c "Identify and include additional changes/activities" x  
7 Update/check external CI resources as needed x  
7a "Toggle CodeFactor so it updates" x N/A, no changes to code
7b "Check upload to PyPi" x  

fmdtools v2.1.1

17 Apr 00:36
v2.1.1
Compare
Choose a tag to compare

Summary

fmdtools version 2.1.1 provides some minor changes to fmdtools 2.1.0, including:

  • A variety of bugfixes to Coords, which use used for environmental modelling
  • Added the ability to parametrically define and sample fault modes as a part of FaultDomain. The FlexibleMode class was deprecated in favor of this new workflow, and the rover model (which previously relied on FlexibleMode now uses FaultDomain instead. Overall, this workflow make models easier to define and reuse, makes the methodology easier to use and adapt, and is more computationally efficient (because the modes are only created when required for sampling, rather than at model instantiation).

Detailed changes (from commit log)

  • Added publication list and updated/added publications to list
  • Fixed hierarchical test such that it now sets sub_faults property on fault injection and hierarchical tests now use correct syntaxes for test
    , resolving: RAD-495
  • Fixed Coords.in_area to now check arrays of points correctly, resolving RAD-490
  • Fixed collection label display bug so that collection labels can now be set to true (prop label) or a custom label, resolving RAD-489
  • Fixed issue with collections freezing Coords.show so that they can now plot collections without first plotting properties (no longer freezes in the process), resolving: RAD-488
  • Updated coords.py so that default label for show is 'prop' rather than True
  • Fixed issue with shared multiflow creation so that ultiple functions can now instantiate and use the same local flow, enabling better individual/joint simulation, resolving: RAD-485
  • Added ability to parameterize fault samples so that one can now define non-default values for faults in faultdomains to sample in faultsamples. These values can be used for optional disturbances or other aspects of the faults (rates, phases, etc)
    see: RAD-491
  • Added demo of parameterized fault samples in rover and tests. See RAD-491
  • Replaced FlexibleMode with FaultDomain.add_fault_space method and added basic test to add_fault_space. See: RAD-496
  • Adapted rover example to not use FlexibleMode so that instead of FlexibleMode, Rover now uses custom modes which are sampled with FaultDomain. Adapted rover mode notebook to match this. See: RAD-496

Release Checklist

<style> </style>
Step Description Complete? Comment
1 Sync appropriate branches into release branch using git sync-into-dev x fixed command to delete public/dev
2 Update version numbers in appropriate files x  
2a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml init.py" x  
2b "Run a repository-wide search for the version number" x  
3 Allow (or force) Bamboo CI to build tests and docs x had to re-run to reflect new version numbers
4 "Release to GitHub/remotes using git release v2.x.x ''Version 2.x.x'' " x  
5 Create a release in GitHub x  
5a "incorporate a narrative summary of features and changes" x  
5b "incorporate the auto-generated bitbucket release notes." x  
6 "Update project plan" x  
6a "Include any changed dependencies" x  
6b "Include version in schedule" x  
6c "Identify and include additional changes/activities" x  
7 Update/check external CI resources as needed x  
7a "Toggle CodeFactor so it updates" x 36 issues to 38 issues
7b "Check upload to PyPi" x  

fmdtools v2.1.0

12 Mar 22:25
Compare
Choose a tag to compare

Summary

fmdtools 2.1 is the first major point-release of fmdtools 2. As a major (breaking) release, it was primarily developed to better streamline how users work with fmdtools models based on our experience working with the library. The major changes are:

  • RAD-466: A revamp of the syntax for used to define Modes. Modes are now defined in a much more intuitive syntax (adding a variable fault_modename = (mode parameters)) rather than the obtuse fm_args = {'modename': (mode parameters)} syntax used previously. This change in mode syntax (planned in the 2.0 development process) has resulted in a significant improvement in model performance--up to a 1.75x speedup--because dictionaries of fault modes are no longer created at model instantiation from the fm_args dictionary. Instead, these modes are created and accessed when needed (e.g., to build FaultDomains, determine the set of potential faults in a function, etc.).
  • RAD-459: A change to the syntax of Problem classes in search. Instead of instantiating and extending Problem objects, the user is now expected to define a subclass of Problem. The advantage of this approach is that new problems can be instantiated and sent to different algorithms and can be run with different parameters with different results and iteration histories. It also enables these problems to be more readily defined in model files and imported elsewhere (scripts, tests, etc).

While these changes should break external models, it is our intent to keep these "breaking" changes like this relatively predictable by following our major/minor release process. Both of these major changes have come with a host of adaptations to our example models (as well as bugfixes), which can be used to help determine how to migrate any dependent models you might have to the new syntaxes.

Full Changelog: v2.0.7...v2.1.0

    Release Notes - Resilience Analysis and Design  - Version fmdtools 2.1

Sub-Task

  • [RAD-466] - Revise Mode to be quicker, take less memory, be more intuitive, and use dict less

Story

  • [RAD-95] - Create Model Docs Views
  • [RAD-472] - Update Python Setup for fmdtools 2.1
  • [RAD-473] - New features for fmdtools 2.1

Release Checklist

<style> </style>
Step Description Complete? Comment
1 Sync appropriate branches into release branch using git sync-into-dev x  
2 Update version numbers in appropriate files x  
2a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml init.py" x  
2b "Run a repository-wide search for the version number" x  
3 Allow (or force) Bamboo CI to build tests and docs x Some fixes were required for HumanModes which have now been implemented
4 "Release to GitHub/remotes using git release v2.x.x ''Version 2.x.x'' " x  
5 Create a release in GitHub
5a "incorporate a narrative summary of features and changes" x  
5b "incorporate the auto-generated bitbucket release notes." x  
6 "Update project plan" x Relected in Rev Q
6a "Include any changed dependencies" x  
6b "Include version in schedule" x  
6c "Identify and include additional changes/activities" x  
7 Update/check external CI resources as needed x  
7a "Toggle CodeFactor so it updates" x 46 issues -> 49 issues
7b "Check upload to PyPi" x  

fmdtools v2.0.7

30 Jan 22:28
d5af1ca
Compare
Choose a tag to compare

This release brings a number of simplifications, improvements, and bugfixes, focusing on:

  • Providing better functionality from Coords for representing and visualizing environments. This has been desired by internal modelling and simulation focusing on Systems-of-Systems models
  • Improving overall code quality and testing coverage from Result, Rand, Coords, and FunctionArchitecture by implementing doctests in classes and methods that otherwise had no test.

This is the last point-release expected from the 2.0 series before beginning the 2.1 development, which is expected to bring a variety of changes, including incrementing Python version compatibility, along with a range of higher-impact (i.e., potentially breaking) features and improvements.

    Release Notes - Resilience Analysis and Design  - Version fmdtools 2.0.7

Sub-Task

  • [RAD-450] - Coords collections - add way of specifying more complex collections
  • [RAD-456] - Provide multiplot version of Coords.show_from
  • [RAD-458] - Coords.show: enable hatching (?)

Story

  • [RAD-462] - Improve calculation of metrics for Result/Tabulate
  • [RAD-463] - Improve Rand
  • [RAD-464] - Improve Coords

Task

  • [RAD-336] - Enable hierarchical modelling - with provided test

Release Checklist

<style> </style>
Step Description Complete? Comment
1 Sync appropriate branches into release branch using git sync-into-dev x  
2 Update version numbers in appropriate files x Coverate now at 87.6% from 86.2%. 356 tests from 320
2a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml init.py" x  
2b "Run a repository-wide search for the version number" x  
3 Allow (or force) Bamboo CI to build tests and docs x Test found errors to fix in optimization notebooks
4 "Release to GitHub/remotes using git release v2.x.x ''Version 2.x.x'' " x  
5 Create a release in GitHub x Problem with Python upload - update upload-artifact to v4
5a "incorporate a narrative summary of features and changes" x  
5b "incorporate the auto-generated bitbucket release notes." x  
6 "Update project plan" x  
6a "Include any changed dependencies" x  
6b "Include version in schedule" x  
6c "Identify and include additional changes/activities" x  
7 Update/check external CI resources as needed x  
7a "Toggle CodeFactor so it updates" x Went from 42 to 46 issues.
7b "Check upload to PyPi" x  

fmdtools v2.0.6

19 Dec 16:32
v2.0.6
Compare
Choose a tag to compare

This release brings in a range of improvements developed over the last month, mainly focused on (1) improving Coords and environments (2) improving search capabilities and (3) improving general code quality and test metrics. Note that some interfaces for the related classes (Coords, Problems, etc) will have changed with this release.

Release Notes - Resilience Analysis and Design - Version fmdtools 2.0.6

Sub-Task

  • [RAD-449] - Fix Coords/FirePropagation bug: why do we have to turn "protect" off?
  • [RAD-451] - Modify get_neighbors to get corner neighbors also
  • [RAD-452] - Fix rounding for grid points in Coords
  • [RAD-453] - Add ability to get/cache endclass in Problems
  • [RAD-455] - Add optimization plots to Problem
  • [RAD-457] - show_from/plot_trajectory: provide ability to set x/y labels and titles
  • [RAD-460] - Adapt BurnedMap: Add ability to plot metrics over multi-scenario results

Story

  • [RAD-399] - Use somewhat safer way of passing sequences
  • [RAD-444] - Fix more easy style issues
  • [RAD-445] - Improve doctest coverage
  • [RAD-447] - Add to requirements: matplotlib >3.7 (won't work without it)
  • [RAD-454] - Lessons learned from aerialdrm (short term)
  • [RAD-461] - Fix a couple docs issues

Release Checklist

<style> </style>
Step Description Complete? Comment
1 Sync appropriate branches into release branch using git sync-into-dev x No outside changes
2 Update version numbers in appropriate files x  
2a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml init.py" x  
2b "Run a repository-wide search for the version number" x  
3 Allow (or force) Bamboo CI to build tests and docs x  
4 "Release to GitHub/remotes using git release v2.x.x ''Version 2.x.x'' " x  
5 Create a release in GitHub x  
5a "incorporate a narrative summary of features and changes" x  
5b "incorporate the auto-generated bitbucket release notes." x  
6 "Update project plan" x  
6a "Include any changed dependencies" N/A  
6b "Include version in schedule" x  
6c "Identify and include additional changes/activities" N/A  
7 Update/check external CI resources as needed x  
7a "Toggle CodeFactor so it updates" x Went from 84 to 42 issues, attributable to RAD-444
7b "Check upload to PyPi" x Version up to date

fmdtools v2.0.5

13 Nov 21:22
v2.0.5
Compare
Choose a tag to compare

This release has some basic fixes to the fmdtools repo and classes:

  • The documentation repository now builds as desired. This fixes an issue in 2.0.4 where sphinx did not use autodoc and automodule
  • Some fixes to Coords (see: 3c5e236). Specifically, NaNs now masked over when performing array comparisons and rands now sync effectively between architectures and environments

Full Changelog: v2.0.4...v2.0.5

Release Checklist

<style> </style>
Step Description Complete? Comment
1 Sync appropriate branches into release branch using git sync-into-dev N/A  
2 Update version numbers in appropriate files x  
2a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml init.py" x  
2b "Run a repository-wide search for the version number" x  
3 Allow (or force) Bamboo CI to build tests and docs x  
4 "Release to GitHub/remotes using git release v2.x.x ''Version 2.x.x'' " x  
5 Create a release in GitHub x  
5a "incorporate a narrative summary of features and changes" x  
5b "incorporate the auto-generated bitbucket release notes." x  
6 "Update project plan" x  
6a "Include any changed dependencies" N/A  
6b "Include version in schedule" x  
6c "Identify and include additional changes/activities" N/A  
7 Update/check external CI resources as needed x  
7a "Toggle CodeFactor so it updates" x No new issues
7b "Check upload to PyPi" x New programming language versions reflected

fmdtools v2.0.4

28 Oct 16:26
v2.0.4
3c97b33
Compare
Choose a tag to compare

This version brings a few changes to fmdtools, including features, bugfixes, and development changes. These changes include:

  • Adding the ability to show class inheritance as a part of ModelGraphs
  • Support/use of latest version of recordclass
  • Explicit support of Python 3.10, 3.11, and 3.12 (which are now all automatically tested)
  • Change to the overall development process to use CI tools rather than building and testing on a developer's local machine. As a result, the development process is much more streamlined, requires much less user setup, and tests/builds should be consistent.

Release Checklist

<style> </style>
Step Description Complete? Comment
1 Sync appropriate branches into release branch using git sync-into-dev x  
2 Update version numbers in appropriate files x  
2a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml init.py" x  
2b "Run a repository-wide search for the version number" x  
3 Allow (or force) Bamboo CI to build tests and docs x First full run using bamboo CI for multiple tests.
4 "Release to GitHub/remotes using git release v2.x.x ''Version 2.x.x'' " x Added one additional piece - support for multiple versions in toml
5 Create a release in GitHub x  
5a "incorporate a narrative summary of features and changes" x  
5b "incorporate the auto-generated bitbucket release notes." N/A  
6 "Update project plan" x  
6a "Include any changed dependencies" N/A  
6b "Include version in schedule" x  
6c "Identify and include additional changes/activities" Updated automated testing verbiage
7 Update/check external CI resources as needed x  
7a "Toggle CodeFactor so it updates" x Some issues introduced due to new docs/reports folders not being ignored. Those files now added to ignore for CodeFactor.
7b "Check upload to PyPi" x Now current with 2.0.4 tag (missed change in toml--will update with next release)

fmdtools v2.0.3

09 Sep 21:38
fe60540
Compare
Choose a tag to compare

Another build to ensure desired PyPi build (2.0.0-2.0.2 haven't built properly). Reflects some changes to documentation but that's all.

<style> </style>
Step Description Complete? Comment
1 Sync appropriate branches into release branch x  
1a "Internal branches (e.g. main dev)" x  
1b "External branches (e.g. main)" x  
2 Run script run_all_tests.py and verify test results are appropriate N/A No changes since 2.0.0
2a "Run full tests" N/A  
2b "Regenerate badge" N/A  
3 Update version numbers in appropriate files x  
3a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml" x Note - will add__init__.py to future releases
3b "Run a repository-wide search for the version number" x  
4 Generate the documentation using "./make html" x  
5 Commit and tag branch with the appropriate version. x  
5a "git tag -a v2.x.x -m 'version 2.x.x'" x Note - will add signing to next release checklist as -s
6 Sync to remotes x  
6a "Push release branch to github and internal remotes" x  
6b "Push docs using git subtree split --prefix=_build/html --branch gh-pages, git push -f public gh-pages git branch -D gh-pages" x  
7 Create a release in GitHub x  
7a "incorporate a narrative summary of features and changes" x  
7b "incorporate the auto-generated bitbucket release notes." x  
8 "Update project plan" N/A  
8a "Include any changed dependencies" N/A  
8b "Include version in schedule" N/A  
8c "Identify and include additional changes/activities" N/A  
9 Update/check external CI resources as needed x  
9a "Toggle CodeFactor so it updates" N/A  
9b "Check upload to PyPi" x Note - now downloads and installs as needed

fmdtools v2.0.2

03 Sep 16:42
0e2b6ee
Compare
Choose a tag to compare

Test release for PyPi. See fmdtools v2.0.0.