Skip to content

Releases: nasa/fmdtools

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.

fmdtools v2.0.1

03 Sep 16:03
e9a1ead
Compare
Choose a tag to compare

Test release for PyPi. See fmdtools v2.0.0.

fmdtools version 2.0.0

22 Aug 18:45
276e7dd
Compare
Choose a tag to compare

This release is represents the second official release of fmdtools. The 2.0 milestone advances the overall goals of (1) extending modelling capabilities to enable the representation of human systems and distributed situation awareness in the context of systems-of-systems simulations, (2) improve the underlying modelling constructs and analysis methods to improve scalability, enable the adaptation and re-use of models, and improve the overall workflow, and (3) increase the overall maturity of the codebase. Additionally, version 2.0 is released under new license, Apache-2.0, to enable external usage and collaboration.

Compared to version 1.0, version 2.0 brings significant changes to both module organization and overall interfaces of the toolkit. If you were familiar with version 1.0, it is recommended to look through the documentation (see: https://nasa.github.io/fmdtools/).

For detailed understanding of what has changed in this development cycle, it is also recommended to review the updates for our alphas, betas and release candidates:

Release Checklist

<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 x Errors from rc-6 removed
2a "Run full tests" x  
2b "Regenerate badge" x  
3 Update version numbers in appropriate files x 2.0.0
3a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml" x  
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  
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." N/A  
8 "Update project plan" x  
8a "Include any changed dependencies" x  
8b "Include version in schedule" x  
8c "Identify and include additional changes/activities" x  
9 Update/check external CI resources as needed x  
9a "CodeFactor" x 99 issues -> 71 issues
10 If release is 'stable' Upload to PyPI (see below todo Working on account recovery with PyPi support

v2.0-rc-6

29 Jul 23:20
9e149fe
Compare
Choose a tag to compare
v2.0-rc-6 Pre-release
Pre-release

Version 2.0-rc-6 brings a number of changes to fmdtools graph functionality to better enable graphical specification and representation of models.

Some major updates include:

  • Created ability to create hierarchical modelgraphs recursively and get properties like (1) generating code (2) methods (3) containers and parse flows, aggregations, and containments from architectures.
  • Nodes in graphs now given names corresponding to their model id (e.g., pump.fxns.import_ee), rather than using a "flat" representation (import_ee)
  • create_graph and as_modelgraph interfaces now can be used at the Object level to create networkx graphs as well as output ModelGraphs
  • Reorganization of graph the architecture and flow modules into their corresponding modules in define.
  • Some licensure/versioning fixes

Release Checklist

<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
2a "Run full tests" x Tests pass with two warnings, added to jira
2b "Regenerate badge" x x
3 Update version numbers in appropriate files x  
3a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml" x  
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  
6 Sync to remotes x  
6a "Push release branch to github and internal remotes" x  
6b "Push docs using git subtree push --prefix=_build/html public 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" x  
8a "Include any changed dependencies" x  
8b "Include version in schedule" x  
8c "Identify and include additional changes/activities" x  
9 Update/check external CI resources as needed x  
9a "CodeFactor" x Same as before
10 If release is 'stable' Upload to PyPI (see below N/A  

v2.0-rc-5

12 Jun 23:47
ec0018d
Compare
Choose a tag to compare
v2.0-rc-5 Pre-release
Pre-release

Summary

This pre-release adds the following:

  • Add more features to Coords to support modelling, visualization, and animating environments
  • Supporting preliminary alignment between graph plots and our FRDL specification. This effort also refactored the graph module into a subpackage to support testing and future extensions, which means that any software using these graphs will need to adjust imports
  • Add/fix some bugs identified during new modelling efforts, like making it so non-default states sent to a model continue to be used in the model and deprecating methods in Function other than static_behavior and dynamic_behavior
  • Improving testing coverage
  • Docs no longer tracked (which was the case prior to 2.0-rc4
  • Aside from this, the fmdtools development environment has shifted to using Python 3.11. While older versions of python may still be compatible, it is recommended to update to install fmdtools in a Python 3.11 environment to remain up-to-date with our developments.

Detailed Release Notes

    Release Notes - Resilience Analysis and Design  - Version fmdtools 2.0-rc-5

Story

  • [RAD-374] - Create the ability to overlay multiple plots in the result.plot_metric_dist ()
  • [RAD-378] - Close missing testing pieces
  • [RAD-403] - Troupe fmdtools feature development opportunities
  • [RAD-406] - Align Graph representation with FRDL
  • [RAD-410] - Remove behavior() and condfaults() from function definition

Release Checklist

<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 x  
2a "Run full tests" x  
2b "Regenerate badge" x  
3 Update version numbers in appropriate files x  
3a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml" x  
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  
6 Sync to remotes x  
6a "Push release branch to github and internal remotes" x  
6b "Push docs using git subtree push --prefix=_build/html public 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" x  
8a "Include any changed dependencies" x  
8b "Include version in schedule" x  
8c "Identify and include additional changes/activities" x  
9 Update/check external CI resources as needed x  
9a "CodeFactor" x from 110 to 99 issues
10 If release is 'stable' Upload to PyPI (see below N/A N/A

v2.0-rc-4

22 May 00:05
cafbacb
Compare
Choose a tag to compare
v2.0-rc-4 Pre-release
Pre-release

v2.0-rc-4 is mainly an update to documentation in preparation to the official v2.0 release.

Highlights include:

  • Updated logo
  • Improved organization of docs
  • More resources for docs (figures/diagrams, etc)
  • Removed minor bug in Result.get_values

Notes:

    Release Notes - Resilience Analysis and Design  - Version fmdtools 2.0-rc-4

Story

  • [RAD-241] - Release documentation update

Full Changelog: v2.0-rc-3...v2.0-rc-4

<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 x  
2a "Run full tests" x  
2b "Regenerate badge" x  
3 Update version numbers in appropriate files x updated to 2.0-rc-4
3a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md pyproject.toml" x  
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  
6 Sync to remotes x  
6a "Push release branch to github and internal remotes" x  
6b "Push docs using git subtree push --prefix=_build/html public 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" x  
8a "Include any changed dependencies" x  
8b "Include version in schedule" x  
8c "Identify and include additional changes/activities" x  
9 Update/check external CI resources as needed x  
9a "CodeFactor" x  
10 If release is 'stable' Upload to PyPI (see below x  

v2.0-rc-3

11 May 00:44
Compare
Choose a tag to compare
v2.0-rc-3 Pre-release
Pre-release

These updates cover basic adaptation of the rover model(s) and use cases, not counting the adaptation will need to be done for various papers.

  • Notably, it re-adds the ability to sample from histories using the ParameterHistSample class.
  • It also adapts a few of the notebooks for the RoverModel using this new class.
  • It also cleans up a few bugs which have been identified so far.
  • This version also comes with significant updates to documentation, to reflect upcoming release.

Full Changelog: v2.0-rc-2...v2.0-rc-3

Links to Bugs/Stories

  • [RAD-389] - Final Version 2 Rover Adaptation and Bugfixes

Checklist

<style> </style> <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 x  
2a "Run full tests" x All pass except skiped. Added RAD-401 for numpy warning
2b "Regenerate badge" x  
3 Update version numbers in appropriate files x 2.0-rc-3
3a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md" x  
3b "Run a repository-wide search for the version number" x added pyproject.toml to list for next time
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  
6 Sync to remotes x  
6a "Push release branch to github and internal remotes" x  
6b "Overwrite documentation on gh-pages and push to GitHub" 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 Using github notes instead
8 "Update project plan" x  
8a "Include any changed dependencies" x  
8b "Include version in schedule" x  
8c "Identify and include additional changes/activities" x  
9 Update/check external CI resources as needed x Some issues added but still rated A
9a "CodeFactor" x  
10 If release is 'stable' Upload to PyPI (see below N/A  

2.0-rc-2

03 Feb 01:48
Compare
Choose a tag to compare
2.0-rc-2 Pre-release
Pre-release

The 2.0-rc-2 release adds more polish to the fmdtools codebase prior to release. This progress point represents a final refinement on the codebase and features prior to our official release.

The main changes are:

  • All blocks now require a defined slots for new objects, encouraging speed and type-safety

  • Results now save using numpy.save, removing an instance where the pickle module was (unsafely) being used to save and load results

  • Bringing several research examples in the rover up to speed with the current developments in fmdtools

  • Incorporation of a new taxiway model to demonstrate modelling of Systems of Systems

  • A polishing of the documentation repository.

      Release Notes - Resilience Analysis and Design  - Version fmdtools 2.0-rc-2
    

Story

  • [RAD-224] - Adapt AST Sampling notebook/methodology
  • [RAD-242] - Incorporate Taxiway model in examples
  • [RAD-249] - Avoid and deprecate pickle for save/load
  • [RAD-317] - Fix bug in multiplots - ticks should rotate even if no plot
  • [RAD-337] - Enable better attribute safety in Flows, Blocks, etc
<style> </style>

Release Checklist

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 x  
2a "Run full tests" x Errors added as bug:s =========================== short test summary info =========================== ERROR examples/rover/rover_mode_space.py - TypeError: 'NoneType' object is not callable ERROR examples/rover/optimization/ea_analysis.py - FileNotFoundError: [Errno 2] No such file or directory: 'results/rslt_ea.csv'
2b "Regenerate badge" x  
3 Update version numbers in appropriate files x  
3a "Check files conf.py LICENSE.py README.py Intro_to_fmdtools.md" x  
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  
6 Sync to remotes x  
6a "Push release branch to github and internal remotes" x  
6b "Overwrite documentation on gh-pages and push to GitHub" 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" x  
8a "Include any changed dependencies" x  
8b "Include version in schedule" x  
8c "Identify and include additional changes/activities" x  
9 Update/check external CI resources as needed x  
9a "CodeFactor" x  Grade went from A- to A!
10 If release is 'stable' Upload to PyPI (see below N/A  

2.0-rc-1

08 Jan 23:27
Compare
Choose a tag to compare
2.0-rc-1 Pre-release
Pre-release

Narrative Summary

Version 2.0-rc-1 represents the final major change in the 2.0 release cycle for fmdtools. The major change here is a major refactoring of the define package, resulting in more tractable syntax for Block and Architecture classes. This effort represents a final shaping of the underlying fmdtools simulation structures into a logical, organized, object-oriented simulatin language. Note that models from 2.0-beta-3 and before will thus need to be adapted somewhat to work with this version. Some major changes include:

  • Re-organization of define package into object, container, block, and architecture subpackages representing each type of simulation.
  • Definition of new BaseObject, Container, and Architecture classes which are now used to define how simulation structures initialize attributes, create histories, return mutables, etc
  • FxnBlock is now named Function in keeping with class name convention
  • Model, ASG, Comparch repaced by FunctionArchitecture, ActionArchitecture, and ComponentArchitecture classes which all inherit from/specialize the base Architecture class
  • Simulation histories now fully created at instantiation via the tracking argument rather than in propagate.
  • Roles (i.e., init_c, init_p, init_flowname) now given explicit names corresponding to their type (i.e., container_c, container_p, flow_flowname)
  • Basic adaptation of tests, examples, and documentation.
  • Usage of "coverage" package in testing to give overall testing coverage report.

Auto-generated release notes

    Release Notes - Resilience Analysis and Design  - Version fmdtools 2.0-rc-1

Sub-task

  • [RAD-334] - Create sub-package for roles
  • [RAD-335] - Decompose/Refactor Architectures

Story

  • [RAD-233] - Refactor and Generalize Architectures (ASG, CompArch, Model)
  • [RAD-319] - Add testing coverage to code testing reporting

Release checklist

Read more