Skip to content

2.0-rc-1

Pre-release
Pre-release
Compare
Choose a tag to compare
@hulsed hulsed released this 08 Jan 23:27
· 299 commits to main since this 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

<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 11 failures, mainly in model reset (no longer used but kept for future) and rover model. Some errors also in rover model, AST sampling due to lack of packages. 76% coverage on inaugural run, weak spots identified in rover, pump examples.
2b Regenerate badge x  
3 Update version numbers in appropriate files x Fmdtools 2.0-rc-1
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 Need to figure out what is going on with badge – adds extra tests to numerator and denominator. (the errors?)
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  
9 Update/check external CI resources as needed x  
9a CodeFactor x 66 fixed issues, 27 new issues in the past month (173 total). Grade remains A-.
10 If release is ‘stable’ Upload to PyPI (see below   NA