Fix encode/decode for []bool
[govpp.git] / CHANGELOG.md
1 # Changelog
2
3 This file lists changes for the GoVPP releases.
4
5 <!-- TEMPLATE
6 ### Fixes
7 -
8 ### Features
9 -
10 ### Other
11 -
12 -->
13
14 ## 0.4.0 (in development)
15 > _NOT RELEASED YET_
16
17 ### Binapi Generator
18 - generator code has been split into multiple packages:
19   - [vppapi](binapigen/vppapi) - parses VPP API (`.api.json`) files
20   - [binapigen](binapigen) - processes parsed VPP API and handles code generation
21 - previously required manual patches for generated code should no longer be needed
22 - many generated aliases were removed and referenced to `*_types` files for simpler reading
23 - any types imported from other VPP API (`*_types.api`) files are now automatically resolved for generated Go code
24 - marshal/unmarshal methods for memory client messages are now generated
25 - generated new helper methods for more convenient IP and MAC address conversion
26 - added option to generate HTTP handlers for RPC services
27 - RPC service code is now generated into a separated file (`*_rpc.ba.go`) in the same directory and uses low level
28   stream API
29 - generated code now contains comment with information about versions of VPP and binapi-generator
30 - in addition to the file name, the binapi generator now accepts full path (including extension, e.g. `/usr/share/vpp/api/core/vpe.api.json`)
31 - dependency on `github.com/lunixbochs/struc` was removed
32 - generated helper methods for `vpe_types.Timestamp`
33
34 ### Features
35 - [socketclient](adapter/socketclient) received a new method to add client name
36 - added list of compatible messages to `CompatibilityError`
37 - removed global binary API adapter - this change allows GoVPP to manage multiple VPP connections with different
38   sockets simultaneously
39 - added support for the stats v2. The statsclient adapter recognized the version automatically so the `StatsAPI`
40   remained unchanged. In relation to this change, the legacy support (i.e. stat segment v0) for VPP <=19.04 was dropped.
41 - GoVPP now recognizes VPP state `NotResponding` which can be used to prevent disconnecting in case the VPP hangs
42   or is overloaded
43 - added method `SetLogger()` for setting the global logger
44 - `StatsAPI` has a new method `GetMemory()` retrieving values related to the statseg memory heap
45
46 ### Fixes
47 - `MsgCodec` will recover panic occurring during a message decoding
48 - calling `Unsubscibe` will close the notification channel
49 - GoVPP omits sending `sockclnt_delete` while cleaning up socket clients in order to remove VPP duplicate close
50   complaints - VPP handles it itself
51 - fixed major bug causing GoVPP to not receive stats updates after VPP restart
52 - fixed name conflict in generated union field constructors
53 - size of unions composed of another unions is now calculated correctly
54 - fixed race condition in the VPP adapter mock
55 - fixed crash caused by return value of uint kind
56
57 ### Other
58 - improved log messages to provide more relevant info
59 - updated extras/libmemif to be compatible again
60 - default health check parameter was increased to 250 milliseconds (up from 100 milliseconds), and the default
61   threshold was increased to 2 (up from 1)
62
63 #### Examples
64 - added more code samples of working with unions in [binapi-types](examples/binapi-types)
65 - added profiling mode to [perf bench](examples/perf-bench) example
66 - improved [simple client](examples/simple-client) example to work properly even with multiple runs
67 - added [multi-vpp](examples/multi-vpp) example displaying management of two VPP instances from single
68   application
69 - added [stream-client](examples/stream-client) example showing usage of the new stream API
70
71 #### Dependencies
72 - updated `github.com/sirupsen/logrus` dep to `v1.6.0`
73 - updated `github.com/lunixbochs/struc` dep to `v0.0.0-20200521075829-a4cb8d33dbbe`
74
75 ## 0.3.5
76 > _18 May 2020_
77
78 ### Fixes
79 - statsclient: Fix stats data errors and panic for VPP 20.05
80
81 ## 0.3.4
82 > _17 April 2020_
83
84 ### Features
85 - binapi-generator: Format generated Go source code in-process
86
87 ## 0.3.3
88 > _9 April 2020_
89
90 ### Fixes
91 - proxy: Unexport methods that do not satisfy rpc to remove warning
92
93 ## 0.3.2
94 > _20 March 2020_
95
96 ### Fixes
97 - statsclient: Fix panic occurring with VPP 20.05-rc0 (master)
98
99 ## 0.3.1
100 > _18 March 2020_
101
102 ### Fixes
103 - Fix import path in examples/binapi
104
105 ## 0.3.0
106 > _18 March 2020_
107
108 ### Fixes
109 - binapi-generator: Fix parsing default meta parameter
110
111 ### Features
112 - api: Improve compatibility checking with new error types:
113   `adapter.UnknownMsgError` and `api.CompatibilityError`
114 - api: Added exported function `api.GetRegisteredMessageTypes()`
115   for getting list of all registered message types
116 - binapi-generator: Support imports of common types from other packages
117 - binapi-generator: Generate `Reset()` method for messages
118 - binapi-generator: Compact generated methods
119
120 ### Other
121 - deps: Update `github.com/bennyscetbun/jsongo` to `v1.1.0`
122 - regenerate examples/binapi for latest VPP from stable/2001
123
124 ## 0.2.0
125 > _04 November 2019_
126
127 ### Fixes
128 - fixed socketclient for 19.08
129 - fixed binapi compatibility with master (20.01-rc0)
130 - fixed panic during stat data conversion
131
132 ### Features
133 - introduce proxy for remote access to stats and binapi
134 - optimizations for statclient
135
136 ### Other
137 - migrate to Go modules
138 - print info for users when sockets are missing
139
140 ## 0.1.0
141 > _03 July 2019_
142
143 The first release that introduces versioning for GoVPP.