.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright (C) 2020 Nordix

=============
Release-Notes
=============


This document provides the release notes for the release of the different parts of the Non-RT RIC.

.. contents::
   :depth: 1
   :local:


Version history A1 Policy Agent
===============================

+------------+----------+------------------+--------------------+
| **Date**   | **Ver.** | **Author**       | **Comment**        |
|            |          |                  |                    |
+------------+----------+------------------+--------------------+
| 2020-02-03 | 1.0.0    | Henrik Andersson | First version      |
|            |          |                  | Amber Maintenance  |
|            |          |                  | Release            |
+------------+----------+------------------+--------------------+
| 2020-06-18 | 2.0.0    | Henrik Andersson | Bronze Release     |
|            |          |                  |                    |
+------------+----------+------------------+--------------------+
| 2020-07-29 | 2.0.1    | Henrik Andersson | Bronze Maintenance |
|            |          |                  | Release            |
|            |          |                  |                    |
+------------+----------+------------------+--------------------+
| 2020-12-03 | 2.1.0    | Henrik Andersson | Cherry Release     |
|            |          |                  |                    |
+------------+----------+------------------+--------------------+
| 2021-06-23 | 2.2.0    | Henrik Andersson | D Release          |
|            |          |                  |                    |
+------------+----------+------------------+--------------------+


Version history Enrichment Coordinator Service
==============================================

+------------+----------+------------------+----------------+
| **Date**   | **Ver.** | **Author**       | **Comment**    |
|            |          |                  |                |
+------------+----------+------------------+----------------+
| 2020-12-03 | 1.0.0    | Henrik Andersson | Cherry Release |
|            |          |                  |                |
+------------+----------+------------------+----------------+
| 2021-06-23 | 1.1.0    | Henrik Andersson | D Release      |
|            |          |                  |                |
+------------+----------+------------------+----------------+


Version history Service Catalogue
=================================

+------------+----------+------------------+----------------+
| **Date**   | **Ver.** | **Author**       | **Comment**    |
|            |          |                  |                |
+------------+----------+------------------+----------------+
| 2020-12-03 | 1.0.0    | Henrik Andersson | Cherry Release |
|            |          |                  |                |
+------------+----------+------------------+----------------+


Version history Helm Manager
============================

+------------+----------+------------------+-----------------+
| **Date**   | **Ver.** | **Author**       | **Comment**     |
|            |          |                  |                 |
+------------+----------+------------------+-----------------+
| 2021-06-23 | 1.0.0    | Henrik Andersson | Initial version |
|            |          |                  | D Release       |
+------------+----------+------------------+-----------------+


Version history SDNC A1 Controller
==================================

+------------+----------+------------------+--------------------+
| **Date**   | **Ver.** | **Author**       | **Comment**        |
|            |          |                  |                    |
+------------+----------+------------------+--------------------+
| 2019-11-12 | 1.7.3    | Maxime Bonneau   |                    |
|            |          |                  |                    |
+------------+----------+------------------+--------------------+
| 2020-02-04 | 1.7.4    | Henrik Andersson | Amber Maintenance  |
|            |          |                  | Release            |
+------------+----------+------------------+--------------------+
| 2020-06-18 | 2.0.0    | Henrik Andersson | Bronze Release     |
|            |          |                  |                    |
+------------+----------+------------------+--------------------+
| 2020-07-29 | 2.0.1    | Henrik Andersson | Bronze Maintenance |
|            |          |                  | Release            |
|            |          |                  |                    |
+------------+----------+------------------+--------------------+


Release Data
============

Bronze
------
+-----------------------------+---------------------------------------------------+
| **Project**                 | Non-RT RIC                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Repo/commit-ID**          | nonrtric/2466f9d370214b578efedd1d3e38b1de17e6ca1c |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release designation**     | Bronze                                            |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release date**            | 2020-06-18                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Purpose of the delivery** | Improved stability                                |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+

Bronze Maintenance
------------------
+-----------------------------+---------------------------------------------------+
| **Project**                 | Non-RT RIC                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Repo/commit-ID**          | nonrtric/5d4f252a530a0d9abbf2a363354c5e56e8f2f33e |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release designation**     | Bronze                                            |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release date**            | 2020-07-29                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Purpose of the delivery** | Introduce configuration of certificates           |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+

Cherry
------
+-----------------------------+---------------------------------------------------+
| **Project**                 | Non-RT RIC                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Repo/commit-ID**          | nonrtric/90ce16238dd6970153e1c0fbddb15e32c68c504f |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release designation**     | Cherry                                            |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release date**            | 2020-12-03                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Purpose of the delivery** | Introduction of Enrichment Service Coordinator    |
|                             | and rAPP Catalogue                                |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+

D
-
+-----------------------------+---------------------------------------------------+
| **Project**                 | Non-RT RIC                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Repo/commit-ID**          | nonrtric/dd3ebfd784e96919a00ddd745826f8a8e074c66f |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release designation**     | D                                                 |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release date**            | 2021-06-23                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Purpose of the delivery** | Improvements                                      |
|                             | Introduction of initial version of Helm Manager   |
+-----------------------------+---------------------------------------------------+
