.. 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: 3
   :local:


Version history 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           |
|            |          |                  |                   |
+------------+----------+------------------+-------------------+


Summary
-------
Improved stability.


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
============

Amber
-----
+-----------------------------+---------------------------------------------------+
| **Project**                 | Non-RT RIC                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Repo/commit-ID**          | nonrtric/ec3829493c0b71c5e5908a430edd1e493504178e |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release designation**     | Amber                                             |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release date**            | 2019-11-22                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Purpose of the delivery** | Introducing Non-RT RIC                            |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+

Amber Maintenance
-----------------
+-----------------------------+---------------------------------------------------+
| **Project**                 | Non-RT RIC                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Repo/commit-ID**          | nonrtric/08691d2192981c302a5528669fdb71e48cb3dcbc |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release designation**     | Amber Maintenance Release                         |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Release date**            | 2020-02-03                                        |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
| **Purpose of the delivery** | Introducing Policy Agent and                      |
|                             | updating to latest A1 spec                        |
+-----------------------------+---------------------------------------------------+

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           |
|                             |                                                   |
+-----------------------------+---------------------------------------------------+
