Skip to content

Update Version of libraries/programming languages #409

Open
@xsaschako

Description

@xsaschako

We should discuss when to update to newer versions of the libraries and programming languages we use.
E.g., when there is a stable release (e.g., vX.0.0). Or when the stable release is matured (vX.1.0 or vX.0.1). This is of course dependent on the specific tool, but in most cases we should update earlier than later because of the burden that gets added with each update.

For the programming languages, we use:

  • C++14 -> Update to c++17/c++20. C++23 is developed but not mature.

  • Python 3.9 -> We should update to 3.11 as soon as there is a stable release. This is because the release notes say https://docs.python.org/3.11/whatsnew/3.11.html:

    Python 3.11 is between 10-60% faster than Python 3.10. On average, we measured a 1.25x speedup on the standard benchmark suite. See Faster CPython for details.

  • Cmake: TBD

For libraries, we use:

C++:

Library Version Most up-to-date-version Required Bundled Notes
spdlog 1.5.0 1.10 Yes Yes (git repo) https://github.com/gabime/spdlog
Eigen 3.3.9 3.4.0 Yes Yes (git repo) http://gitlab.com/libeigen/eigen
Boost 1.75.0 1.80.0 Yes Yes (.tar.gz archive) https://www.boost.org/
JsonCpp 1.7.4 1.9.5 No Yes (git repo) https://github.com/open-source-parsers/jsoncpp
HDF5 1.12.0 1.12.2 No No https://www.hdfgroup.org/, package libhdf5-dev on apt (Ubuntu)
GoogleTest 1.10 1.12.1 For Tests only Yes (git repo) https://github.com/google/googletest

Python:

  • pandas<1.2.0
  • matplotlib
  • tables
  • numpy>=1.22
  • openpyxl
  • xlrd
  • requests
  • pyxlsb
  • wget
  • pyfakefs
  • coverage
  • pylint
  • pylint-json2html

Metadata

Metadata

Assignees

No one assigned

    Labels

    class::discussionUsed for discussions on software and model .loc::backendThis issue concerns the C++ backend implementation.loc::continuous integrationThis issue concerns any problem of continuous integration.loc::data handlingThis issue concerns any kind of data handling.loc::infrastructureGeneral MEmilio Infrastructure related issuesloc::python interfaceThis issue concerns the python interface to the backend implementation.prio::lowThe priority of this task is low. It is an interesting item but with low priority.

    Type

    No type

    Projects

    Status

    Product Backlog 📕

    Status

    Product Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions