Releases: cyclus/cyclus
Releases · cyclus/cyclus
1.6.0
Added:
- adding compatibility with cbc 2.10 (#1557)
- In
src/pyne.h
, replace a macroisnan()
withusing std::isnan
,
as the former has led to undesired macro expansion in Boost header files. (#1560) - updated cyclus_nuc_data.h5 URL after Dory retirement (#1567)
- now default quantize are zero which corresponds to no quantize policy. (#1552)
- Added several lines to DEPENDENCIES.rst to explain that even when using a
machine with a single python3 install (such as a fresh Ubuntu 20.04), install
will fail unless update-alternatives has been used to point python at the
correct python3 version (#1558) - build and test are now fown on githubAction in place or CircleCI (#1569)
- Have separate workflows for testing, publishing dependency images, and publishing release images (#1597, #1602, #1606, #1609, #1629, #1633, #1637, #1668, #1672, #1676, #1708)
- Add Ubuntu 20.04 to the list of supported platforms (#1605, #1608)
- Add random number generator (Mersenne Twister 19937, from boost) and the ability to set the seed in the simulation control block (#1599, #1677)
- Added code coverage reporting to GitHub workflows (#1616, #1679)
- Adds active and dormant buying cycles in buy policy (#1596)
- Add random number generator (Mersenne Twister 19937, from boost) and the ability to set the seed in the simulation control block (#1599, #1639)
- Allow randomness in request frequency and size through buy policy (#1634)
- Adds support for Cython3 (#1636)
- Adds TotalInvTracker, which allows an inventory cap to be set for multiple resource buffers, and is now required for material buy policy (#1646)
- AddMutalReqs and AddReciepe functions and exclusive bids in python API of DRE (#1584)
- Created Package class and optional declaration of packages in input files (#1673, #1699, #1712, #1729), package id is default unpackaged (#1711) and is a member of
resources (materials/products) (#1675). Can pop resources as packaged from resource buffer, pushing resource onto a buffer defaults to stripping packaging (#1683) - CI support for Rocky Linux (#1691)
- Added support for a ResBuf to behave as a single bulk storage with mixing & extraction of resources (#1687)
- Added
--allow-milps
flag into INSTALL.rst table (#1740)
Changed:
- Moved to unified CHANGELOG Entry and check them with GithubAction (#1571)
- Major update and modernization of build (#1587, #1632, #1734, #1737)
- Changed Json formatting for compatibility with current python standards (#1587)
- Changed README.rst installation instructions, tested on fresh Ubuntu-22.04 system with Python 3.11 (#1617, #1644)
- Resolved various compilation warnings due to use of deprecated APIs (#1671)
- Update version management in CMake build (#1696)
- Changed dependency versions in README.rst, INSTALL.rst, and DEPENDENCIES.rst (#1703, #1735)
- Updated minor documentation about updating CHANGELOG.rst, fix formatting for rendering
hyperlinks, and change branch name in README instructions on forking for development (#1715) - Updated GTest suite to be fetched from GitHub during the build process (#1738)
- Default to building a Release version of Cyclus when installing via the python script (#1741)
Removed:
- A duplicate
using std::list
insrc/hdf5_back.cc.in
, which triggers compiler
errors with some GCC versions. (#1560) - Removed deprecated
smbchk.py
ABI consistency checking functionality and tests (#1706). This functionality was
originally deprecated in #1396, and is removed in #1706 to clean up deprecated functionality
with the pending v1.6 release.
Fixed:
- Issue #1312. (#1560)
- fix sell_policy that was offering bids when capacity was inbetween 0 and the
quantize, bids that one was not able to fullfill and caused cyclus to crash. (#1552) - Resolve deprecation warnings involving <boost/detail/sp_typeinfo.hpp> (#1611)
- Resolve segmentation faults when calling Cbc (#1614)
- Resolve segmentation faults when using cyclus via Python (#1666)
- Resolve pytest and compilation warnings related to invalid escape sequences (#1684, #1698)
- Fix how Env::GetInstallPath() finds the location of the cyclus installation (#1689)
- Fix Debian package generation (#1676)
1.5.5
Added:
- Added a test example of Cyclus sensitivity analysis studies conducted using Dakota.
- Script and CI implementation ensuring at least 1 news file have been recreated.
- Added capability to register unit when reporting values in a time series.
- Added
map<string,map<string,double>>
typesystem. This can be used with C++ archetypes. But not python archetypes.
Changed:
- git and open-ssh added to the dockerfile (removed from CI).
- MACOS only: link against PYTHON lib in the binary building process. It should not be required when building the Python package as python knows about itself. For some reason, this is only true (and working) on MACOS, and was an issue when using Conda to install Python and other Cyclus deps.
- Updated the Cyclus quick installation instructions to reflect our use of conda to install dependencies.
Removed:
- git and open-ssh from CI (added to the dockerfile).
- Reference to
develop
branch tests in the readme file.
Fixed:
- News now checks diff against cyclus/master not origin/master.
- News check now triggers on PRs only.
- Allows build against Python => 3.7.
- Change cyclus-deps Docekrfile accordingly. (changing cython version to 0.28.5).
1.5.4
Added:
- Python bindings to the
Position
class. - Input validation for Latitude and Longitude
- New
Mocksim::DummyProto
where capacity and commodity of the prototype can be defined. - The Python typesystem generator has been extended to include
types that should be passed by their C++ shared pointers, such
as resources.Materials
andProducts
have thus been added as
fully valid types on their own in the typesystem. Note that since
resources already have classes of their own in the typesystem, state
variables for these classes areMaterialStateVar
andProductStateVar
. - Added the Decision Phase. This phase occurs after the tock phase and allows
cyclus agents to make decisions based on what has occured during the
tick and tock phase of the current timestep.
Changed:
cycpp.py
now takes advantage of the$CPP
environment variable if defined,
falls back oncpp
if not definedcyclus_deps
docker container built now on debian9, removed gcc from apt-get
package, build the full list of conda package (don't rely on cyclus-deps conda
package as it is temporary broken), define CXX CC and CPP environment variablecython
compatibility limited to >=0.25 and <0.27dbtypes_gen.py
will now throw approriate errors for incorrect
JSON inqueryable_backend.h
.- Python interface will now raise exceptions when it encounters an error in C++ or
Cython. - Updated cycstub readme to reflect changes
- Updated the record time series function to also include the name of the field being
recorded.
Fixed:
boost/uuid/sha1.hpp
include now varies according to the Boost version
installed due to its deprecation in boost > 1.67- Python inventories required a value for
capacity
even though it was optional. This
change also enablesNone
valued capacities, which are treated as infinite. - Fixed issue where resource buffer Python bidnings would attempt to append to
the resources themselves when popping resources out of the buffers. - Fixed issue when pushing many resources to a resource buffer would attempt to
append the entire buffer - Error in generation of
dbtypes.json
file led to incorrect
enumeration of of some database types. This in turn led to segfaults
when using these types in the Python typesystem. It also made the HDF5
backend generator skip some types. - Invalid JSON in
queryable_backend.h
has been fixed. - Fixed cycstub build issue which failed to find Cyclus shared libraries
- Fixed cycstub unit test issue that failed to locate stub library shared object
1.5.3
Added:
- New
CYCLUS_PLATFORM
string for uniquely identifying the
platform. This is initialized with thecyclus_platform()
macro. - New
download_platform()
macro for downloading a tar.gz
file and its platform-specific equivalent.
Changed:
- Cyclus agent libraries will now have the the install directroy and
rpath correctly set to when using theinstall_agent_lib()
in CMake. - Updated how fast compiling downloads and searches for files so that
only platform-specific files are grabbed.
Deprecated:
- CMake policies CMP0040 and CMP0042 supressed.
Fixed:
- Fixed issue with
cyclus_unit_tests
not being able to find
the agents library in linking on macOS. - Fixed SQLite backend bug with Boost v1.66.
- CMake RPATH now correctly uses semicolon delimiters, rather
than colons. DynamicLoadingTests
now properly start/stop Python.
1.5.2
Changed:
- Unit tests now link to libcyclus and agents, rather than recompiling all the sources
into the test executable.
Fixed:
- Fixed issue with Python agent state vars that were set in the input file
instead using the default value set on the archetype for optional state vars. - Fixed issue with Python agent prototypes not being registered correctly when created.
This caused segfaults due the the agents being deallocated too soon. - Fixed many issues with institution kinds checking "Institution", rather than "Inst".
Cyclus 1.5.0
Changelog:
Compatibility:
- C++ 11 support is now required to compile Cyclus and Cycamore.
- Resource exchange preferences now default to 1.0 instead of zero.
Features:
- Resource exchange now supports COIN linear and mixed integer linear solvers.
This can be specified in the input file. - Added new optional :ref:
ExplicitInventory <explicit-inv-table>
and
:ref:ExplicitInventoryCompact <explicit-inv-compact-table>
tables to the
database that can be enabled via input file. - Implemented custom time step duration that can be set in the input
file (i.e. CEP 23). - Agents/archetypes now can provide their own versions that are recorded in
the :ref:AgentVersion <agent-version-table>
table in the database for
provenance/reproducibility. - Support for new datatypes added to the sqlite backend:
std::list<std::pair<int, int> >
std::map<std::string, std::pair<std::string, std::vector<double> > >
std::vector<std::pair<std::pair<double, double>, std:map<std::string, double > > > >
cycpp
now supports theinternal
annotation for state variables
allowing them to be persisted in the database, but not visible in the input
file or GUI.- Adding 2 new variables allowing to adjust the caculation tolerance:
tolerance_generic
andtolerance_generic
. - Building stubs archetypes now requires C++11.
- More effective hdf5 backend generation by using an AST setup with various
nodes and blocks of nodes - Generate lastest version in dbtypes.json upon install
- Now generate a Python library allowing Cymetric to be full Python
Bug fixes:
- Fixed floating-point comparison bugs in DRE causing incorrectly failed
resource trades. - Determinism/reproducibility improved by calling agents' resource exchange
related functions in consistent order. - Fixed invalid memory access bugs affecting newer and mac compilers.
- xinclude substitutions in input files are now processed for the input file
stored in output databases - rather than storing the incomplete, partial
input file. - Archetype compilation now correctly fails early if the
cycpp
preprocessor fails. - Fix late silent failures on <= 0.0 quantity bids to early loud failures.
cyclus::toolkit::ResBuf
is no longer experimental.- Fix bad types in
dbtypes.json
Cyclus 1.5.0-Release Candidate 1
Change since 1.4.2-RC3:
- fix ubuntu 14.04 python2 compilation
- update dependency documentation
- Ubuntu 14.04 support deprecation
Cyclus 1.4.2 Release Candidate 3
- ABI fix
Cyclus 1.4.2 Release Candidate 2
Change in the documentation.
Cyclus 1.4.2-rc1
Cyclus 1.4.2 Release Candidate 1
Changeling from 1.4.1:
- initial/optional
Python
bindings forCyclus
- prevent double free corruption issues from
Cython