Releases: nasa/fmdtools
fmdtools v2.0.3
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
Test release for PyPi. See fmdtools v2.0.0.
fmdtools v2.0.1
Test release for PyPi. See fmdtools v2.0.0.
fmdtools version 2.0.0
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:
- https://github.com/nasa/fmdtools/releases/tag/v2.0-rc5
- https://github.com/nasa/fmdtools/releases/tag/v2.0-rc-4
- https://github.com/nasa/fmdtools/releases/tag/v2.0-rc-3
- https://github.com/nasa/fmdtools/releases/tag/v2.0-rc-2
- https://github.com/nasa/fmdtools/releases/tag/v2.0-rc-1
- https://github.com/nasa/fmdtools/releases/tag/v2.0-beta3
- https://github.com/nasa/fmdtools/releases/tag/v2.0-beta2
- https://github.com/nasa/fmdtools/releases/tag/v2.0-beta1
- https://github.com/nasa/fmdtools/releases/tag/v2.0-beta-0.0
- https://github.com/nasa/fmdtools/releases/tag/v2.0-alpha
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
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
andflow
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
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
import
s - 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 usingPython 3.11
. While older versions of python may still be compatible, it is recommended to update to install fmdtools in aPython 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
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
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
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
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
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
Story
- [RAD-233] - Refactor and Generalize Architectures (ASG, CompArch, Model)
- [RAD-319] - Add testing coverage to code testing reporting