-
Notifications
You must be signed in to change notification settings - Fork 19
/
CHANGELOG
229 lines (168 loc) · 7.13 KB
/
CHANGELOG
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
# 1.7.8
- Fix warnings of unknown JSON modules when a JSON library is not installed
# 1.7.7
- Fix launch by removing :propcheck from extra applications
# 1.7.6
- Fix typespecs for JSON decoding (thanks to https://github.com/squirmy)
# 1.7.5
- Use origin repository for propchek rather than a fork
# 1.7.4
- Fix handling of enum in snake case
# 1.7.3
- Raise DecodingError and EncodingError for invalid strings (thanks to https://github.com/g-andrade)
# 1.7.2
- Fix typespec of enum encode function (thanks to https://github.com/wingyplus)
# 1.7.1
- Fix decoding and encoding of proto3 optional fields
# 1.7.0
- Add support of FileOptions (which can be access with `Msg.file_options/0`)
# 1.6.10
- Fix format of generated files
# 1.6.9
- Fix deprecation warnings in Elixir >= 1.14 about Bitwise (thanks to https://github.com/moogle19)
# 1.6.8
- Raise clearer error message if protoc is missing (thanks to https://github.com/josevalim)
# 1.6.7
- New release to publish docs using the improved ex_doc 0.27
# 1.6.6
- Fix JSON conformance tests related to fractional part in Timestamp
- Add an option to not generate deprecated functions `defs/0` and `defs_by_name/0`
# 1.6.5
- Elixir 1.9 is now the minimal supported version
- Relax constraint on Decimal version (thanks to https://github.com/ananthakumaran)
# 1.6.4
- Renamed module Protox.Message into Protox.MergeMessage to reflect its real role
- Fix inconsistent behavior when encoding to JSON an enum with an unknown atom field
⚠️ Requires to regenerate code from .proto definitions
# 1.6.3
- Fix typespec of message's json_decode! function
# 1.6.2
- Fix possible double compilation of Empty well-known type
- Fix dependency on protoc for generated code
# 1.6.1
- Fix compilation when protoc does not include well-known types
# 1.6.0
- Add support of JSON protobuf encoding and decoding (https://developers.google.com/protocol-buffers/docs/proto3#json), with support of well-known types (except for Any)
- More accurate error reporting
- Fix decoding of fixed32 and fixed64 values (detected using JSON conformance tests)
- Deprecate Protox.Encode.encode/1 and Protox.Encode.encode!/1; use Protox.encode/1 and Protox.encode!/1 instead
- Deprecate generated defs()/0 and defs_by_name()/0
- Internal refactoring to hopefully make things more explicit (based on a work initiated by https://github.com/sneako)
# 1.5.1
- Fix handling of multiple import paths (thanks to https://github.com/zolakeith)
# 1.5.0
- Allow multiple import paths (thanks to https://github.com/cheng81)
* 1.4.0
- Add support of proto3 optional fields (thanks to https://github.com/sneako)
* 1.3.2
- Bump version to build doc using ex_doc 0.24
* 1.3.1
- Fix table of types mapping in documentation
* 1.3.0
- Allow namespaces through protox.generate (thanks to https://github.com/sdrew)
- Expand output path when generating files
- More thorough testing of code generation
* 1.2.4
- Fix warning when compiling generated code (thanks to https://github.com/xinz)
- Format generated code
- Fix warning about unused variable in generated code when encoding an empty protobuf message
* 1.2.3
- Update documentation to better explain the package directive usage
* 1.2.2
- Enable listing of task protox.generate via mix help.
* 1.2.1
- Add --keep-unknown-fields option to configure support of unknown fields when generating files
* 1.2.0
- Add keep_unknown_fields option to configure support of unknown fields
* 1.1.1
- Fix documentation links
* 1.1.0
- Add ability to generate one file per protobuf message to speed up compilation (thanks to https://github.com/qgau)
* 1.0.0
- Use Protox exceptions as errors codes
* 0.25.0
- Add mix task to generate files
- Bump to Elixir 1.7 as minimal supported version
* 0.24.0
- Usage of @external_resource is no longer necessary
* 0.23.1
- Fix parse of [packed=false] option (the serialization was still correct,
but not in compliance with Protobuf conformance checker recommandations)
* 0.23.0
- [Breaking change] encode/1 returns a tuple, use encode!/1 to get the old
behavior of encode/1
- Raise RequiredFieldsError when encoding or decoding a Protobuf 2 message
with unset required fields (that is, that have the value `nil`)
- Raise IllegalTagError when decoding a message with a tag set to 0
- +40% speedup & -30% memory consumption when decoding thanks to macros
- Fix missing encoding of unknown fields when a message hadn't any field
* 0.22.0
- O(1) encoding of oneof fields
* 0.21.0
- Move back to ahamez/protox
- Bump to Elixir 1.6 as minimal supported version
- Add benchmarks
- Add conformance tests to CI
- Add dialyzer to CI
* 0.20.0
- Pass all tests of protobuf 3.12 conformance suite tests
- (proto2) Always serialize required fields
- Add defs_by_name/0 in generated modules for messages
- Add syntax/0 in generated modules for messages
- Add Protox.MergeMessage.merge/2 to merge two messages of the same type
- [Breaking change] (proto2) use nil for unset fields
- [Breaking change] rename generated get_required_fields/0 into required_fields/0
- [Breaking change] rename generated get_unknown_fields/0 into unknown_fields/0
- [Breaking change] rename generated get_unknown_fields_name/0 into unknown_fields_name/0
* 0.19.1
- Fix warning about duplicate keys (thanks to https://github.com/ananthakumaran)
* 0.19.0
- CamelCase for all generated modules (fixes https://github.com/ahamez/protox/issues/3)
* 0.18.0
- Allow ability to construct file names at compile time (thanks to https://github.com/ananthakumaran)
* 0.17.0
- Add path: option to specify import path (thanks to https://github.com/mathsaey)
* 0.16.2
- Fix generation of typespecs for when there are more than one required field
* 0.16.1
- Change base name for unknown fields from '__unknown_fields__' to '__uf__'
* 0.16.0
- Fix handling of +/-infinity and NaN when encoding/decoding floats
- Move RandomInit to tests
* 0.15.2
- Fix typespecs for enum constants accessors
* 0.15.1
- Fix typespecs for unknown and required fields accessors
* 0.15.0
- Use 0.0 as default value for floats and doubles
* 0.14.0
- Development now takes place at https://github.com/EasyMile/protox
- Move conformance test escript to https://github.com/EasyMile/protox-conformance
- Remove benchmarks escripts
* 0.13.0
- Typespecs for generated encoder
- Bring Varint into Protox
- Fix decoding of booleans encoded with a varint which is not 0 or 1
* 0.12.1
- Fix handling of unset members in map entries
* 0.12.0
- ~2x speed improvement when encoding
* 0.11.1
- It's now possible to clear unknown fields
* 0.11.0
- Encode unknown fields
* 0.10.0
- Update deps (dialyxir, excoveralls, hackney)
* 0.9.0
- Keep unknown fields when decoding
* 0.8.0
- Raise an error when decoding and when required fields are missing
* 0.7.1
- Fix encoding of varint to match C++ version
- Fix encoding of enums to match C++ version
* 0.7.0
- Read definitions from files or binaries
- Parse definitions with protoc
- Generate Elixir structs from parsed definition
- Can prepend namespaces
- Encode/decode protobuf messages