Skip to content

Releases: cyclus/cyclus

1.6.0

04 May 17:22
Compare
Choose a tag to compare

Added:

  • adding compatibility with cbc 2.10 (#1557)
  • In src/pyne.h, replace a macro isnan() with using 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 in src/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

14 Jan 17:30
407f260
Compare
Choose a tag to compare

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

05 Jul 16:14
bbdcaa5
Compare
Choose a tag to compare

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 and Products 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 are MaterialStateVar and ProductStateVar.
  • 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 on cpp if not defined
  • cyclus_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 variable
  • cython compatibility limited to >=0.25 and <0.27
  • dbtypes_gen.py will now throw approriate errors for incorrect
    JSON in queryable_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 enables None 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

10 Jan 21:06
Compare
Choose a tag to compare

Added:

  • New CYCLUS_PLATFORM string for uniquely identifying the
    platform. This is initialized with the cyclus_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 the install_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

18 Dec 23:41
Compare
Choose a tag to compare

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

13 Dec 17:27
Compare
Choose a tag to compare

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 the internal 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 and tolerance_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

03 Dec 19:36
Compare
Choose a tag to compare
Pre-release

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

26 Nov 16:21
Compare
Choose a tag to compare
Pre-release
  • ABI fix

Cyclus 1.4.2 Release Candidate 2

19 Nov 00:18
Compare
Choose a tag to compare
Pre-release

Change in the documentation.

Cyclus 1.4.2-rc1

15 Nov 17:48
Compare
Choose a tag to compare
Cyclus 1.4.2-rc1 Pre-release
Pre-release

Cyclus 1.4.2 Release Candidate 1

Changeling from 1.4.1:

  • initial/optional Python bindings for Cyclus
  • prevent double free corruption issues from Cython