Changes from 6.0.4 to 7.0.0
---------------------------

** Improvement
    * Update to latest framework and main version 7.0.0

Changes from 6.0.3 to 6.0.4
---------------------------

** Improvement
    * Update to latest framework and main version 6.0.4
    * Update to latest gogo runtime 1.1.4
    * Update to latest gogo.jline 1.1.8
    * Update to latest jline 3.13.2
    * Update to latest jansi 1.18

Changes from 6.0.2 to 6.0.3
---------------------------

** Improvement
   * Update to latest framework and main version 6.0.3

Changes from 6.0.1 to 6.0.2
---------------------------

** Improvement
   * Update to latest framework and main version 6.0.2

Changes from 6.0.0 to 6.0.1
---------------------------

** Improvement
   * Update to latest framework and main version 6.0.1

Changes from 5.6.10 to 6.0.0
----------------------------

** Improvement
   * Update to latest framework and main version 6.0.0
   * Update to latest gogo runtime 1.1.0
   * Update to latest gogo.jline 1.1.0
   * Update to latest gogo.shell 1.1.0
   * Update to latest jline 3.7.0
   * Update to latest jansi 1.17.1

Changes from 5.6.8 to 5.6.10
----------------------------

** Improvement
    * Update to latest framework and main version 5.6.10
    * Update to latest gogo runtime 1.0.10
    * Update to latest gogo.jline 1.0.10
    * Update to latest jline 3.5.1

Changes from 5.6.6 to 5.6.8
---------------------------

** Improvement
    * Update to latest framework and main version 5.6.8

Changes from 5.6.4 to 5.6.6
---------------------------

** Improvement
    * Update to latest framework and main version 5.6.6

Changes from 5.6.2 to 5.6.4
---------------------------

** Improvement
    * Update to latest framework version 5.6.4
    * Update to latest gogo.jline 1.0.6
    * Update to latest obr 2.0.10
    * Update to jline 3.3.0
    * Update to jansi 1.16

Changes from 5.6.2 to 5.6.2-jansi
---------------------------------

** Bug
    * Add jansi 1.14 to make jline work on windows (FELIX-5569).

Changes from 5.6.1 to 5.6.2
---------------------------

** Improvement
    * Update to framework and main 5.6.2
    * Update to gogo command 1.0.2
    * Update to gogo runtime 1.0.2
    * Replace shell with gogo.jline 1.0.2
    * Include jline 3.0.1

Changes from 5.6.0 to 5.6.1
---------------------------

** Improvement
    * Update to framework and main 5.6.1

Changes from 5.4.0 to 5.6.0
---------------------------

** Improvement
    * Update to framework and main 5.6.0
    * Update to latest obr version 2.0.8

Changes from 5.2.0 to 5.4.0
---------------------------

** Improvement
    * Update to framework and main 5.4.0
    * Update to latest obr version 2.0.6
    * Update to latest gogo commands 0.16.0

Changes from 5.0.1 to 5.2.0
---------------------------

** Improvement
    * Update to framework and main 5.2.0

Changes from 5.0.0 to 5.0.1
---------------------------

** Improvement
    * Update to framework and main 5.0.1

Changes from 4.6.1 to 5.0.0
---------------------------

** Improvement
    * Update to framework and main 5.0.0
    * Update to latest obr version 2.0.4
    * Update to latest gogo runtime 0.16.2
    * Update to latest gogo commands and shell ( 0.10.0/0.14.0)

Changes from 4.6.0 to 4.6.1
---------------------------

** Improvement
    * Update to framework and main 4.6.1

Changes from 4.4.1 to 4.6.0
---------------------------

** Improvement
    * Update to framework and main 4.6.0

Changes from 4.4.0 to 4.4.1
---------------------------

** Improvement
    * Update to latest framework and main version 4.4.1
    * Update to latest obr version 2.0.2
    * Update to gogo commands 0.14.0 and runtime 0.12.1

Changes from 4.2.1 to 4.4.0
---------------------------

** Improvement
    * Update to framework and main 4.4.0

Changes from 4.2.0 to 4.2.1
---------------------------

** Improvement
    * Update to framework and main 4.2.1

Changes from 4.0.3 to 4.2.0
---------------------------

** Improvement
    * Update to framework and main 4.2.0

Changes from 4.0.2 to 4.0.3
---------------------------

** Improvement
    * Update to framework and main 4.0.3

Changes from 4.0.1 to 4.0.2
---------------------------

** Improvement
    * Update to framework and main 4.0.2

Changes from 4.0.0 to 4.0.1
---------------------------

** Improvement
    * Update to framework and main 4.0.1

Changes from 3.2.2 to 4.0.0
---------------------------

** Improvement
    * Update to framework and main 4.0.0
    * Update to gogo command 0.12.0
    * Update to OBR 1.6.6

Changes from 3.2.1 to 3.2.2
---------------------------

** Improvement
    * Update to framework and main 3.2.2 

Changes from 3.2.0 to 3.2.1
---------------------------

** Improvement
    * Update to framework and main 3.2.1

Changes from 3.0.9 to 3.2.0
---------------------------

** Improvement
    * Update to framework and main 3.2.0

Changes from 3.0.8 to 3.0.9
---------------------------

** Improvement
    * Update to framework and main 3.0.9


Changes from 3.0.7 to 3.0.8
---------------------------

** Improvement
    * Update to framework and main 3.0.8
    * Update to gogo 0.8.0

Changes from 3.0.6 to 3.0.7
---------------------------

** Improvement
    * Update to framework and main 3.0.7

** Bug
    * [FELIX-2695] - [Distro] Invalid settings in config.properties 

Changes from 3.0.5 to 3.0.6
---------------------------

** Improvement
    * Update to framework and main 3.0.6

Changes from 3.0.4 to 3.0.5
---------------------------

** Improvement
    * Update to framework and main 3.0.5

Changes from 3.0.3 to 3.0.4
---------------------------

** Improvement
    * Update to framework and main 3.0.4

Changes from 3.0.2 to 3.0.3
---------------------------

** Improvement
    * Update to framework and main 3.0.3
    * Update to gogo 0.6.1

Changes from 3.0.1 to 3.0.2
---------------------------

** Improvement
    * Update to framework and main 3.0.1

Changes form 3.0.0 to 3.0.1
---------------------------

** Improvement
    * Update to framework and main 3.0.1

Changes from 2.0.5 to 3.0.0
---------------------------

** Improvement
    ** Update to framework and main 3.0.0
    ** Replace shell with gogo 0.6.0

Changes from 2.0.4 to 2.0.5
---------------------------

** Improvement
    ** Update to framework and main 2.0.5

2.0.4
-----

** Initial release
