Archived changelogs

2015.05

Released 2015-05-09, tagged as v2015.05. See the release announcement for a high-level overview.

Dependency changes

No dependency changes in this release.

New features

Changes

Build system

  • CMake now always installs FindCorrade.cmake to library-specific location, making it usable without providing own copy of the file in depending projects. The WITH_FIND_MODULE option is no longer needed. See mosra/corrade#17.
  • Displaying all header files, plugin metadata files and resource files in project view to make use of some IDEs less painful (such as QtCreator)
  • Properly checking for C++ standard compiler flags to avoid adding conflicting ones (see mosra/corrade#10)
  • Gentoo ebuild (see mosra/corrade#16)
  • Better handling of RPATH on macOS (see mosra/corrade#18)

Bug fixes

  • Removed static initializers to avoid memory corruption in static builds (see mosra/magnum#90).
  • Plugin manager now correctly folows dependency order when unloading plugins.
  • Fixed issues with plugin manager having multiple global instances in static builds (see mosra/corrade#15)
  • Fixed a crash in Clang caused by overly clever code (see mosra/magnum#84)

Deprecated APIs

No API was deprecated in this release.

Potential compatibility breakages, removed APIs

  • Removed unused plugin replacement feature, as it had questionable benefits and no real use.
  • All functionality deprecated in 2014.01 has been removed, namely:
    • Removed deprecated ability to use relative includes (e.g. #include <Utility/Debug.h>), use absolute paths (#include <Corrade/Utility/Debug.h>) instead.
    • Removed deprecated Utility::String::split() overload, use either split() or splitWithoutEmptyParts() instead.

2014.06

Released 2014-06-30, tagged as v2014.06. See the release announcement for a high-level overview.

Dependency changes

  • Minimal required GCC version is now 4.7. Support for GCC 4.6 has been moved to compatibility branch.

New features

Changes

  • Libraries and plugins in debug build configuration are installed to different locations, making it possible to have debug and release libraries installed alongside each other
  • Compiler compatibility mode is now automatically detected by CMake to make the building easier
  • It's no longer needed to explicitly test validity of pointer returned from PluginManager::Manager::instance()
  • Improved error reporting in PluginManager library
  • Thorough documentation review, fixes and improvements

Bug fixes

Deprecated APIs

No API was deprecated in this release.

Potential compatibility breakages, removed APIs

  • All functionality deprecated in 2013.10 has been removed. In particular the deprecated Interconnect::Emitter::connect() was removed, use Interconnect::connect() instead.

2014.01

Released 2014-01-21, tagged as v2014.01. See the release announcement for a high-level overview.

Dependency changes

No dependency changes in this release.

New features

Changes

  • TestSuite tests now display ?: <unknown>() in test output for test cases without any checks to make them more discoverable
  • Skipped test cases in TestSuite tests are displayed without useless file/line information (unlike failed test cases, where the information is needed)
  • All deprecated functions and types are now emitting compiler warnings to encourage updating the code
  • Various documentation and example updates and improvements

Bug fixes

Deprecated APIs

Potential compatibility breakages, removed APIs

  • Removed Utility::log2() and Utility::pow2() utility functions, as they weren't used anywhere anymore (and the latter one was a bad joke)
  • Removed useless metadata from PluginManager::PluginMetadata class (author name, version, description), as they don't fit current use case anymore (they were used back in 2007 when Corrade was part of Kompas). These metadata can be easily added back as custom configuration values.
  • Removed now useless Utility::Translator class, it was used only for plugin metadata and was prime example of bad design (exposing unguarded naked pointers)

Internal changes

  • Using Jenkins Continuous Integration to maintain compilable and bug-free state of the project more easily. Currently GCC 4.8, 4.7, 4.6, 4.5, 4.4, Clang 3.3, Clang 3.3 with libc++, Emscripten, x86-32/x86-64 Native Client and MinGW32 compilers are tested with both shared and static libraries. Separately testing builds with deprecated features enabled and disabled.
  • All files from src/ directory were moved to src/Corrade, examples/ directory was moved to src/examples (required to make inter-project includes absolute, as mentioned above)

2013.10

Released 2013-10-30, tagged as v2013.10. See the release annoucement for a high-level overview.

Dependency changes

No dependency changes in this release.

New features

Changes

  • Returning std::unique_ptr instead of naked pointer from PluginManager::Manager::instance() for better usability and to avoid accidental memory leaks
  • Documentation updates and improvements to make the library more accessible for newcomers
  • Various build system updates for better compile times and easier installation

Build system

  • Added a WITH_FIND_MODULE CMake option to install Find modules for Corrade into a system location (see mosra/corrade#2)
  • GCC*_COMPATIBILITY is sometimes needed to be set explicitly (see mosra/corrade#1)
  • Installing *.dll and *.lib files to pproper locations on Windows (see mosra/corrade#5)

Bug fixes

Deprecated APIs

Potential compatibility breakages, removed APIs

No deprecated API was removed in this release.

2013.08

Released 2013-08-30, tagged as v2013.08. See the Magnum project announcement for a high-level overview.

2012.02

Released 2012-02-08, tagged as v2012.02. See the project announcement for a high-level overview.