Skip to content

Commit

Permalink
Release v0.2.0 (#480)
Browse files Browse the repository at this point in the history
  • Loading branch information
john-science authored Nov 19, 2021
1 parent d362b57 commit 20c28eb
Show file tree
Hide file tree
Showing 5 changed files with 175 additions and 130 deletions.
2 changes: 1 addition & 1 deletion armi/meta.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@
# duplicating with setup.py for now. This is because in order to import meta.py, we
# need to run armi.__init__, which does a whole heck of a lot of stuff that setup.py
# shouldn't need. We should clean this up in the future.
__version__ = "0.1.7"
__version__ = "0.2.0"
251 changes: 123 additions & 128 deletions doc/release/0.1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,79 +2,88 @@
ARMI v0.1 Release Notes
=======================

ARMI v0.1.0
ARMI v0.1.7
===========
Release Date: 2019-10-31

Initial public release.
Release Date: 2021-08-09

ARMI v0.1.1
===========
Release Date: 2019-11-15
API changes
-----------

User-facing enhancements
------------------------
* Added C5G7 sample LWR inputs
* Slightly improved installation documentation
* Improved ability to input subassembly geometric details by adding
grid definitions to blueprints files
* Demoted ``mpi4py`` to an optional requirement to ease installation
process.
* ``geomType`` arguments in most places has been changed to accept a ``GeomType``
enumeration, instead of a string. Some places will still attempt to implicitly convert
strings into enum values, but this will eventually be deprecated.

Backend changes
---------------
* Removed need for geometry object for Reactor construction
* Pushed symmetry and geomType metadata onto spatialGrids
* Turned off auto-conversion of HDF5 DBs to a previous format
* The ``SystemLayoutInput`` class has been moved into its own module. Instances of the
``SystemLayoutInput`` (usually named ``geom``) often participate in various function
signatures. These will be removed soon, as grids now serve this purpose, and ``geom``
objects are largely vestigial. ``SystemLayoutInput`` will be retained to facilitate
input migrations.

ARMI v0.1.2
===========
Release Date: 2019-11-16
* Changed block default names so that they are no longer constrained by axial characters.
They now are named ``B{assemNum}-{axialIndex}`` to allow arbitrary numbers of blocks. This
will invalidate any user setting that includes a block name (e.g. detail assemblies)

Hotfixes
--------
* Fixed dependency issue with pympler
* Changed location string labels to be numerical (``001-002-005``) rather than alphanumeric
to eliminate a limitation on how many i-indices and k-indices were allowed. This will
invalidate any user setting value that includes a location label (e.g. in
``detailAssemsByBOLLocation``). A migration script may be used to assist in migration.

ARMI v0.1.3
===========
Release Date: 2020-02-25
* Removed the ``localization`` module, and shifted most of that exception handling to less
custom exception types. Though, there were also some functions moved to:
``armi.utils.customExceptions.py``.

User-facing enhancements
------------------------
* Improved flexibility of nuclide flags input by adding an ``expandTo`` section so
users can control precisely which isotopes the elements get expanded into.
* Improved migration system, accessible with ``python -m armi migrate-inputs``
* Added new material modifications for inputting fuels made of mixtures of two custom
isotopic vectors.
* Add YAML ``!include`` support to blueprints files.
* Remove ``latticeFile`` section to grid blueprints.
* Allow modification of linked dimentions in ``SuiteBuilder``.
* ``Settings`` are now immutable (or nearly so).

Bugfixes
--------
* SuiteBuilder handles smear density dimension changes for parameter sweeps again
* Fixed broken documentation printout of Flags.
* Ensure that Cases do not think of themselves as their own dependencies.
Bug fixes
---------

Backend changes
---------------
* Number fractions are now maintained across elemental expansion subsets. This slightly
changes the isotopic composition when, for example, Tungsten is expanded to 4 out of
the 5 natural isotopes.
* Add BOL HM mass block parameter.
* Add support for custom parameter serializers for database interaction.
* Formalize Flag reading and writing from/to the database.
* Improve handling of large HDF5 attributes in Database3.
* Fix bug in loading from databases when multi-index locations are used.


ARMI v0.1.4
ARMI v0.1.6
===========
Release Date: 2020-02-27
Release Date: 2020-12-17

* Add capability to map flags to current meaning when loading from database.
Previously, loading would fail if the meanings of written and current flags did not
match exactly.
* Numerous documentation improvements.
* Add support for XDMF visualization file output.
* Add optional flag to ``armi.configure()`` to permit repeated configuration. This aids
in certain testing and demonstration contexts.
* Allow for fully-qualified material names in blueprints. Materials take the form of
``module.import.path:MaterialClassName``.
* Disable the use of the fast path in interactive sessions.
* Define ``ARMITESTBASE`` environment variable when configuring ``pytest``. This allows
tests to spawn new processes and still find the ARMI test suite.
* Enable full-core expansion of core grid blueprints.

Deprecations
------------

* Removed ``dumpLocationSnapshot`` setting and related functionality. This is replaced
by features of Database, version 3. Database 3 supports history tracking from the
database file, and whole reactor models can be loaded for any stored time step,
obviating the need for special logic in snapshots.
* Removed ``None`` option to XS ``"geometry"`` setting.
* Removed ``Location`` classes. These were made redundant with grids/spatial locators.
* Removed ``Block.isAnnular()``.
* Remove old "XTView" database format support. Migrating older databases will require
checking out an older version of the code.

Bugfixes
--------
* Fix minor output date/time bug.
* Copy Interface inputs in a manner constistent with standard inputs when cloning Cases.

* Apply YAML ``!input`` resolution before writing blueprints to database.
* Change default App ``name`` to "armi" instead of "ARMI". This allows ARMI to re-invoke
itself, and produce accurate help messages.
* Conform R-Z-Theta grid ring/position indices to be 1-based like other grid types.
* Add a check that an ISOTXS library exists before attempting to calculate flux-based
reaction rates on mesh conversions. Prior to this, performing mesh conversions without
an ISOTXS would lead to a crash.
* Hide ``FAST_PATH`` behind ``context.getFastPath()`` function, allowing it to change.
The avoids bugs where code is sensitive to changes to the fast path at runtime.



ARMI v0.1.5
Expand Down Expand Up @@ -139,98 +148,84 @@ Backend changes
* Add a Setting class for handling lists of Flags.
* Greatly improve support for CCCC file reading/writing.


ARMI v0.1.6
ARMI v0.1.4
===========
Release Date: 2020-12-17
Release Date: 2020-02-27

* Add capability to map flags to current meaning when loading from database.
Previously, loading would fail if the meanings of written and current flags did not
match exactly.
* Numerous documentation improvements.
* Add support for XDMF visualization file output.
* Add optional flag to ``armi.configure()`` to permit repeated configuration. This aids
in certain testing and demonstration contexts.
* Allow for fully-qualified material names in blueprints. Materials take the form of
``module.import.path:MaterialClassName``.
* Disable the use of the fast path in interactive sessions.
* Define ``ARMITESTBASE`` environment variable when configuring ``pytest``. This allows
tests to spawn new processes and still find the ARMI test suite.
* Enable full-core expansion of core grid blueprints.
Bugfixes
--------
* Fix minor output date/time bug.
* Copy Interface inputs in a manner constistent with standard inputs when cloning Cases.

Deprecations
------------
ARMI v0.1.3
===========
Release Date: 2020-02-25

* Removed ``dumpLocationSnapshot`` setting and related functionality. This is replaced
by features of Database, version 3. Database 3 supports history tracking from the
database file, and whole reactor models can be loaded for any stored time step,
obviating the need for special logic in snapshots.
* Removed ``None`` option to XS ``"geometry"`` setting.
* Removed ``Location`` classes. These were made redundant with grids/spatial locators.
* Removed ``Block.isAnnular()``.
* Remove old "XTView" database format support. Migrating older databases will require
checking out an older version of the code.
User-facing enhancements
------------------------
* Improved flexibility of nuclide flags input by adding an ``expandTo`` section so
users can control precisely which isotopes the elements get expanded into.
* Improved migration system, accessible with ``python -m armi migrate-inputs``
* Added new material modifications for inputting fuels made of mixtures of two custom
isotopic vectors.
* Add YAML ``!include`` support to blueprints files.
* Remove ``latticeFile`` section to grid blueprints.
* Allow modification of linked dimentions in ``SuiteBuilder``.

Bugfixes
--------
* SuiteBuilder handles smear density dimension changes for parameter sweeps again
* Fixed broken documentation printout of Flags.
* Ensure that Cases do not think of themselves as their own dependencies.

* Apply YAML ``!input`` resolution before writing blueprints to database.
* Change default App ``name`` to "armi" instead of "ARMI". This allows ARMI to re-invoke
itself, and produce accurate help messages.
* Conform R-Z-Theta grid ring/position indices to be 1-based like other grid types.
* Add a check that an ISOTXS library exists before attempting to calculate flux-based
reaction rates on mesh conversions. Prior to this, performing mesh conversions without
an ISOTXS would lead to a crash.
* Hide ``FAST_PATH`` behind ``context.getFastPath()`` function, allowing it to change.
The avoids bugs where code is sensitive to changes to the fast path at runtime.

Backend changes
---------------
* Number fractions are now maintained across elemental expansion subsets. This slightly
changes the isotopic composition when, for example, Tungsten is expanded to 4 out of
the 5 natural isotopes.
* Add BOL HM mass block parameter.
* Add support for custom parameter serializers for database interaction.
* Formalize Flag reading and writing from/to the database.
* Improve handling of large HDF5 attributes in Database3.

ARMI v0.1.7
ARMI v0.1.2
===========
Release Date: 2021-08-09
Release Date: 2019-11-16

API changes
-----------
Hotfixes
--------
* Fixed dependency issue with pympler

* ``geomType`` arguments in most places has been changed to accept a ``GeomType``
enumeration, instead of a string. Some places will still attempt to implicitly convert
strings into enum values, but this will eventually be deprecated.

* The ``SystemLayoutInput`` class has been moved into its own module. Instances of the
``SystemLayoutInput`` (usually named ``geom``) often participate in various function
signatures. These will be removed soon, as grids now serve this purpose, and ``geom``
objects are largely vestigial. ``SystemLayoutInput`` will be retained to facilitate
input migrations.
ARMI v0.1.1
===========
Release Date: 2019-11-15

* Changed block default names so that they are no longer constrained by axial characters.
They now are named ``B{assemNum}-{axialIndex}`` to allow arbitrary numbers of blocks. This
will invalidate any user setting that includes a block name (e.g. detail assemblies)
User-facing enhancements
------------------------
* Added C5G7 sample LWR inputs
* Slightly improved installation documentation
* Improved ability to input subassembly geometric details by adding
grid definitions to blueprints files
* Demoted ``mpi4py`` to an optional requirement to ease installation
process.

* Changed location string labels to be numerical (``001-002-005``) rather than alphanumeric
to eliminate a limitation on how many i-indices and k-indices were allowed. This will
invalidate any user setting value that includes a location label (e.g. in
``detailAssemsByBOLLocation``). A migration script may be used to assist in migration.
Backend changes
---------------
* Removed need for geometry object for Reactor construction
* Pushed symmetry and geomType metadata onto spatialGrids
* Turned off auto-conversion of HDF5 DBs to a previous format

* Removed the ``localization`` module, and shifted most of that exception handling to less
custom exception types. Though, there were also some functions moved to:
``armi.utils.customExceptions.py``.
ARMI v0.1.0
===========
Release Date: 2019-10-31

Initial public release.

Bug fixes
---------

* Fix bug in loading from databases when multi-index locations are used.


ARMI v0.1.8
===========
Release Date: TBD

API changes
-----------

* ``Settings`` are now immutable (or nearly so).

Bug fixes
---------

* TBD
49 changes: 49 additions & 0 deletions doc/release/0.2.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
=======================
ARMI v0.2 Release Notes
=======================



ARMI v0.2.0
===========
Release Date: 2021-11-19

The API has started to solidify, and the number of external-facing changes have started to
slow down. This release is a stake in the ground on a stable API.

What's new in ARMI v0.2.0
-------------------------
* Made user settings immutable to avoid confusing runtime behavior
* Removed the concept of 'facemaps' (now replaced with more general grids)
* Added ability to use module-level logging for more precise debugging
* Added ability to write full tips-up hex asciimaps
* Fixed ability to serialize grid blueprints
* Improved code coverage and linting
* Added a latin hypercube suite builder for parameter sweeps
* Added several clarifications, fixes, and updates to documentation
* Updated units labels on several parameters
* Added protections against deleting directories
* Updated spontaneous fission data
* Removed confusing Charge Fuel Pool from core
* Sped up YAML reading
* Removed localization module
* Added ANL116 energy group structure
* Added setting to control auto-creation of within-block grids
* Added new plot/summarizing capabilities
* Added ability for GUI to save map as image
* Added C5G7 compositions and dimensions to LWR tutorial
* Added 1d/2d mesh reading/writing to GEODST

Backwards incompatible changes
------------------------------
There may be some new errors based on updated input checking.


Bug fixes
---------
* Fixed centering of full-symmetry Cartesian lattice maps
* Fixed issues with grids that had multii-index locations
* Removed test files from coverage check
* Fixed order of operations issue in rotatePins
* Fixed incorrect multiplicity for non-grid block components
* Many additional bugfixes and cleanups (see PR list)
1 change: 1 addition & 0 deletions doc/release/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ Each ARMI release has a set of corresponding notes, found within this section.
.. toctree::
:maxdepth: 1
:glob:
:reversed:

*
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def collectExtraFiles():
setup(
name="armi",
# duplicating with meta.py for now. See comments there for rationale.
version="0.1.7",
version="0.2.0",
description="The Advanced Reactor Modeling Interface",
author="TerraPower, LLC",
author_email="[email protected]",
Expand Down

0 comments on commit 20c28eb

Please sign in to comment.