Do not submit a proposal without reading this roadmap document. Ideas should be discussed on the SDL Slack #sdl_evolution open channel before a proposal is created here.
For more information about SDL, go to www.smartdevicelink.com.
This process and document is based on Apple's excellent Swift Evolution process.
This document tracks the ongoing evolution of SDL. Proposals should be made for any public API surface change, that is, any change that would necessitate a minor or major version change in any SDL mobile library. If a protocol or RPC change does not change any API surface, they must still be brought through the proposal process. In sum, the following changes must be proposed:
- Changes necessitating minor or major version updates to SDL Core, the mobile libraries, Manticore, SDL Policy Server, and SHAID according to semantic versioning, except those that are caused by a misspelling.
- Any change to the SDL Protocol.
- Any change to the SDL RPC spec.
Important documents:
- Goals for upcoming SDL releases – this document.
- The SDL evolution proposal review schedule to see upcoming SDL evolution proposal reviews.
- The SDL evolution review process to see how to propose and review proposals.
- The proposals versus issues document to understand the differences between an SDL Evolution Proposal and an SDL Issue.
When entering a proposal, only one platform will be listed as impacted on the proposal status page. It's inherent that some platforms impact others, as described below:
The SmartDeviceLink protocol specification describes the method for establishing communication between an application and head unit and registering the application for continued communication with the head unit. The protocol is used as the base formation of packets sent from one module to another.
All new SDL implementations should implement the newest version of the protocol.
Repository: https://github.com/smartdevicelink/protocol_spec
Changes to Protocol also impact the following platforms:
- Core
- iOS
- Android
Spec for RPC messages sent between mobile devices and hardware modules.
Repository: https://github.com/smartdevicelink/rpc_spec
Changes to RPC also impact the following platforms:
- Core
- iOS
- Android
The Core component is the software which Vehicle Manufacturers (OEMs) implement in their vehicle head units. Integrating this component into their head unit and HMI based on a set of guidelines and templates enables access to various smartphone applications.
Repository: https://github.com/smartdevicelink/sdl_core
Changes to Core also impact the following platforms:
- Manticore
The Android library is implemented by Android app developers into their applications to enable command and control via the connected head unit.
Repository: https://github.com/smartdevicelink/sdl_android
The iOS library is implemented by iOS app developers into their applications to enable command and control via the connected head unit.
Repository: https://github.com/smartdevicelink/sdl_ios
Manticore is used to dynamically provision SDL Core and SDL HMI instances in the cloud.
Repository: https://github.com/smartdevicelink/manticore
SDL hosted instance: https://smartdevicelink.com/resources/manticore/
The SDL Policy Server handles authentication, data collection, and basic configurations for SDL connected vehicles.
Repository: https://github.com/smartdevicelink/sdl_server
SHAID is a centralized service designed to keep information about SDL-supported applications synchronized across the SmartDeviceLink (SDL) ecosystem.
Repository: https://github.com/smartdevicelink/sdl_shaid
You can see a detailed list of accepted and implemented proposals for upcoming versions on the proposal status page. Each proposal is listed as only impacting one platform, as it's inherent that some platforms impact others, as described above in the Platforms
Section.
Release Date: August 15, 2017
Contents: This release enhances SHAID to allow application information (including name, description, default HMI level, RPCs required for integration, and ID) for SDLC-approved apps to be stored and accessible to "App Consumer" companies (OEMs and Suppliers). SHAID will also send notifications to these App Consumer companies when an SDLC-approved application registered on SHAID has been modified.
Release Date: October 30, 2017
Contents: Introducing control frame payloads and a revised version negotiation scheme. Release information can be found here.
Release Date: October 30, 2017
Contents: Release information can be found here.
Release Date: March 27, 2018
Contents: This release focuses on bug fixes and making integration easier for application developers. It also adds a new SDLScreenManager
which enables easier use of (so far) text, graphics, and soft buttons. Contents of this release are described in detail in the iOS 5.2.0 Release Notes.
Release Date: March 29, 2018
Contents: This release focuses on bug fixes and making integration easier for application developers. It also targets version 26 to make use of new Android Oreo features. Contents of this release are described in detail in the Android 4.5.0 Release Notes.
Release Date: April 5, 2018
Contents: This release includes stabilization fixes and the Connectivity via iAP-BT and Transport Switch feature described here. Contents of this release are described in detail in the Core 4.5.0 Release Notes.
Release Date: May 1, 2018
Contents: Include enhancements and update to the latest version of Core.
Expected Release Date: June 29, 2018
Contents: This release will focus on bug fixes and making integration easier for application developers. Contents of this release can be tracked on the Android 4.6.0 Project Page.
Expected Release Date: June 29, 2018
Contents: This major release will include additional Screen Manager components, and also hide Transport, Protocol and Proxy layers by making them private. Contents of this release can be tracked on the iOS 6.0.0 Project Page.
Expected Release Date: September 28, 2018
Contents: Contents of this release can be tracked on the Core 5.0.0 Project Page.
Expected Release Date: October 26, 2018
Contents: Include enhancements and update to the latest version of Core.