Skip to content

v2.0-alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@hulsed hulsed released this 17 May 01:17
· 807 commits to main since this release

2.0-alpha Release Update

The 2.0-alpha release brings a number of high-level, far-reaching changes to the fmdtools codebase, which change how models are defined, simulated, and analyzed. As a result of all of these changes, you can expect many of the old commands and syntaxes to no longer be present--the codebase has essentially been almost completely refactored with the long-term goal of making development easier and improving the underlying interfaces/syntaxes. The major goals of the 2.0 development cycle have been to:

  1. Decompose the overall model architecture into individual classes which can be documented, simulated, tested, and analyzed individually and composed in different model architectures. This has been done by creating specialized classes for States, Modes, Rands, Graphs, Results, Historys, etc.
  2. Replace dictionaries with recordclass-based classes when possible to reduce memory usage and better enable users to define model states.
  3. Refactor the overall module architecture to enable better discovery of fmdtools classes.
  4. Enable the simulation, analysis, and visualization of communications and perception via specialized constructs (MultiFlow and CommsFlow).
  5. Enable the simulation of indicators to track the occurrence of conditions and use them to start/end a given simulation (replacing end_conditions)

This is an alpha release, meaning that much of the code/tests/documentation here are not fully stable and are subject to to change. The goal of the alpha release is to show progress towards important features while enabling users to try what is here and find bugs. Expect further updates to documentation in the future to match all of the changes shown here.

Detailed Release Notes - Resilience Analysis and Design - Version fmdtools 2.0-alpha

Sub-task

  • [RAD-184] - Generalize rd.graph methods
  • [RAD-185] - add/refactor graphing methods to model constructs
  • [RAD-186] - propositional network graphs
  • [RAD-187] - Get graph properties from History

Bug

  • [RAD-86] - An error is thrown out when states are assigned lists
  • [RAD-89] - The function type is always set to 'comms' when creating CommsFlow

Epic

  • [RAD-77] - Create modelling features for DSA research
  • [RAD-170] - Low-level Software Engineering Improvements

Story

  • [RAD-61] - Unify tracking/display options with get_var syntax
  • [RAD-71] - Create Information Flow
  • [RAD-78] - Add ability to create propositional network from flows
  • [RAD-79] - Add specialized comms flow type
  • [RAD-80] - Add "Goals" to functions
  • [RAD-87] - User feedback bugfixes/improvements
  • [RAD-88] - Remove unnecessary sys.path calls
  • [RAD-92] - Augment CommsFlow to enable ATC communications
  • [RAD-97] - Enable multiple end_conditions via indicators
  • [RAD-98] - Refactor Graphing
  • [RAD-158] - Use __slots__/recordclass
  • [RAD-161] - Add Model Development Guide
  • [RAD-171] - Create and leverage base types: Parameters
  • [RAD-172] - Refactor all modules
  • [RAD-173] - Create and leverage base type: History
  • [RAD-174] - Create and leverage base type: States
  • [RAD-175] - Consolidate examples
  • [RAD-179] - Refactor Block/FxnBlock
  • [RAD-182] - Refactor Model
  • [RAD-183] - Add ability to simulate FxnBlock, ASG, Block in sim.propagate
  • [RAD-199] - Refactor and iterate on Graph Module

Task

  • [RAD-73] - Fix restuldisp.graph.GraphInteractor output
  • [RAD-188] - Split readme out of docs
  • [RAD-194] - Use Parameter in propagate