.. This work is licensed under a Creative Commons Attribution 4.0
   International License. http://creativecommons.org/licenses/by/4.0
   Copyright 2017 AT&T Intellectual Property.  All rights reserved.

.. _doc-release-notes:

Release Notes
=============

Version: 3.0.1
--------------

:Release Date: 2019-01-31

**New Features**

The Documentation project release contains only minor fixes.

* DOC-342 fix typos
* DOC-367 manifest appears with incorrect navigation bar context
* DOC-385 Update release notes for Casablanca Maintenance Release
* DOC-391 Casablanca Maintenance Release Note - reference to AAF
* DOC-392 Casablanca Maintenance Release Note - reference to MSB
* DOC-393 Casablanca Maintenance Release Note - reference to VFC


Version: 3.0.0
--------------

:Release Date: 2018-11-30

**New Features**

* Introduced a new theme (mobile compatible)

* Added a 'Report Issue' link to open a Jira bug report

* Include swagger2doc plugin to better display Swagger files

Version: 2.0.0
--------------

:Release Date: 2018-06-07

**New Features**

* Created a beijing branch referencing all repos providing documentation
  for the beijing release.

* Added tox environments and documentation for linkcheck and spellcheck
  buiders.

* Verify jobs now include the html build in the archived log to make it
  easier to review changes prior to merge.

* Provided guidelines for document "code reviews" and
  end of release work with multiple branches.

* Added a template for a Virtual Netework Function

**Other**

Version: 1.0.0
--------------

:Release Date: 2017-11-16

**New Features**

Project release controlled documentation is now managed in gerrit and published
on readthedocs.

**Other**

The developer wiki still contains some pages that are referenced from the
readthedocs documentation. The pages and links that remain to be migrated
are listed in Jira Issue `DOC-179 <https://jira.onap.org/browse/DOC-179>`_.

===========

End of Release Notes
