# RoadMap

This document contains tentative plans for changes and improvements of note in upcoming versions of the HELICS library. All dates are approximate and subject to change, but this is a snapshot of the current planning thoughts. See the [projects](https://github.com/GMLC-TDC/HELICS/projects) for additional details

## \[2.6\] ~ 2020-07-24

This will be the last of the 2.X series releases, there will likely be at least one patch release after this before fully moving to 3.0

- Internal text based (probably JSON) message format option for general backwards compatibility
- Additional Debugging tools
- Increased code Coverage (target 80%)
- Additional package manager integration
- Some dynamic federation support
- Performance improvements and tests
- Websocket based core type
- Debugging tools (Global time synchronization points)

## \[3.0\] ~ 2020-08-26

Upgrade minimum compilers and build systems. Currently planned minimum targets are gcc 7.0, clang 5.0, MSVC 2017 15.7, XCode 10.1, and CMake 3.10. This is a setup which should be supported on Ubuntu 18.04 repositories. Minimum Boost version will also be updated though Boost is becoming less critical for the HELICS core so may not be that important. The likely minimum tested target will likely be 1.65.1 though the core might work with older versions and its use can be disabled completely. Certain features may require a newer boost version(1.70) than what would be available on Ubuntu 18.04. General target requirements will allow HELICS to build on the most recent 2 LTS versions of Ubuntu using readily available repo packages. Minimum required compilers for building on macOS and systems using ICC will include Xcode 10 and ICC 19. The minimum ZMQ version will also be bumped up to 4.2. General policy for Mac builds will be supporting Xcode compilers on versions of MacOS that receive security upgrades which is generally the last 3 versions, though 10.1+ and 11 will likely be the only 2 supported at HELICS 3.0 release, and support minor releases for at least 2 years. MSVC compilers will be supported for at least 2 years from release date, an appropriate CMake (meaning slightly newer than the compiler) will also be required for Visual Studio builds.

- Control interface
- Full Dynamic Federation support
- Much more general debugging support
- Targeted endpoints
- General API changes based on feedback and code review
- Single thread cores(partial at release)
- Plugin architecture for user defined cores
- Remove deprecated functions
- Change values for log level enumerations
- Some additional renaming of CMake variables
- xSDK compatibility
- Renaming of some of the libraries and reorganization of the header locations

## \[3.1\] ~ 2020-10-15

Very little idea of what will be in this release, only that there will be a release around this date probably with a few things that didn't quite make it in 3.0 and a number of bug fixes that come from transitioning to HELICS 3.0.

- SSL capable core (unlikely in 3.1 but someday)
