summaryrefslogtreecommitdiffstats
path: root/CHANGELOG.md
blob: 44a8c2d612044cbdf9c0440c2ed6ad6747365e1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# Changelog

This file lists changes for the GoVPP releases.

<!-- TEMPLATE
### Fixes
-
### Features
-
### Other
-
-->

## 0.4.0 (in development)
> _NOT RELEASED YET_

### Binapi Generator
- generator code has been split into multiple packages:
  - [vppapi](binapigen/vppapi) - parses VPP API (`.api.json`) files
  - [binapigen](binapigen) - processes parsed VPP API and handles code generation
- previously required manual patches for generated code should not longer be needed
- any types imported from other VPP API (`*_types.api`) files are now automatically resolved for generated Go code
- dependency on `github.com/lunixbochs/struc` was removed and message un/marshaling is now part of generated code
- generated code now contains comment with information about versions of VPP and binapi-generator
- RPC service code is now generated into a separated file (`*_rpc.ba.go`) in same directory
- many generated aliases were removed and referenced to `*_types` files for simpler reading 
- generated new helper methods for more convenient IP and MAC address conversion

### Features
- optimized [socketclient](adapter/socketclient) adapter and add method to set client name
- added list of compatible messages to `CompatibilityError`
- removed global binary API adapter - this change allows GoVPP to manage multiple VPP connections with different 
  sockets simultaneously

### Fixes
- `MsgCodec` will recover panic occurring during a message decoding
- calling `Unsubscibe` will close the notification channel

### Other
- improved log messages to provide more relevant info

#### Examples
- added more code samples of working with unions in [union example](examples/union-example)
- added profiling mode to [perf bench](examples/perf-bench) example
- improved [simple client](examples/simple-client) example to work properly even with multiple runs
- added [multi-vpp](examples/multi-vpp) example displaying management of two VPP instances from single
  application

#### Dependencies
- updated `github.com/sirupsen/logrus` dep to `v1.6.0`
- updated `github.com/lunixbochs/struc` dep to `v0.0.0-20200521075829-a4cb8d33dbbe`

## 0.3.5
> _18 May 2020_

### Fixes
- statsclient: Fix stats data errors and panic for VPP 20.05

## 0.3.4
> _17 April 2020_

### Features
- binapi-generator: Format generated Go source code in-process

## 0.3.3
> _9 April 2020_

### Fixes
- proxy: Unexport methods that do not satisfy rpc to remove warning

## 0.3.2
> _20 March 2020_

### Fixes
- statsclient: Fix panic occurring with VPP 20.05-rc0 (master)

## 0.3.1
> _18 March 2020_

### Fixes
- Fix import path in examples/binapi

## 0.3.0
> _18 March 2020_

### Fixes
- binapi-generator: Fix parsing default meta parameter

### Features
- api: Improve compatibility checking with new error types:
  `adapter.UnknownMsgError` and `api.CompatibilityError`
- api: Added exported function `api.GetRegisteredMessageTypes()`
  for getting list of all registered message types
- binapi-generator: Support imports of common types from other packages
- binapi-generator: Generate `Reset()` method for messages
- binapi-generator: Compact generated methods

### Other
- deps: Update `github.com/bennyscetbun/jsongo` to `v1.1.0`
- regenerate examples/binapi for latest VPP from stable/2001

## 0.2.0
> _04 November 2019_

### Fixes
- fixed socketclient for 19.08
- fixed binapi compatibility with master (20.01-rc0)
- fixed panic during stat data conversion

### Features
- introduce proxy for remote access to stats and binapi
- optimizations for statclient

### Other
- migrate to Go modules
- print info for users when sockets are missing

## 0.1.0
> _03 July 2019_

The first release that introduces versioning for GoVPP.