CHANGES.rst 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642
  1. Changelog
  2. =========
  3. 0.4.x
  4. ~~~~~
  5. Version 0.4.12
  6. -------------
  7. Released on Oct 13, 2020.
  8. - Support include files with dot in name, via `2-#125`_.
  9. .. _2-#125: https://github.com/Thriftpy/thriftpy2/pull/125
  10. Version 0.4.11
  11. -------------
  12. Released on Mar 17, 2020.
  13. - Support Cython in HTTP and fix TCyBufferedTransport early flush issue, via `2-#129`_.
  14. - Fix exception handling in TProcessor, via `2-#128`_.
  15. - Rename socket_timeout to timeout for compatibility, via `2-#115`_.
  16. .. _2-#115: https://github.com/Thriftpy/thriftpy2/pull/115
  17. .. _2-#128: https://github.com/Thriftpy/thriftpy2/pull/128
  18. .. _2-#129: https://github.com/Thriftpy/thriftpy2/pull/129
  19. Version 0.4.10
  20. -------------
  21. Released on Jan 1, 2020.
  22. - Add TAsyncCompactProtocol and TAsyncFramedTransport, via `2-#103`_.
  23. - Add TAsyncProtocolBase and TAsyncTransportBase, via `2-#108`_.
  24. - Add __str__ on TProtocolException, via `2-#109`_.
  25. - Support passing socket_family in make_client, via `2-#110`_.
  26. .. _2-#103: https://github.com/Thriftpy/thriftpy2/pull/103
  27. .. _2-#108: https://github.com/Thriftpy/thriftpy2/pull/108
  28. .. _2-#109: https://github.com/Thriftpy/thriftpy2/pull/109
  29. .. _2-#110: https://github.com/Thriftpy/thriftpy2/pull/110
  30. Version 0.4.9
  31. -------------
  32. Released on November 27, 2019.
  33. - Fix unexpected data length in aio buffer transport, via `2-#102`_.
  34. .. _2-#102: https://github.com/Thriftpy/thriftpy2/pull/102
  35. Version 0.4.8
  36. -------------
  37. Released on October 27, 2019.
  38. - Fix NoneType TypeError happened when calling method struct_to_obj, via `2-#94`_.
  39. .. _2-#94: https://github.com/Thriftpy/thriftpy2/pull/94
  40. Version 0.4.7
  41. -------------
  42. Released on October 4, 2019.
  43. - Fix loading remote IDL file failed on Python 3, via `2-#88`_.
  44. .. _2-#88: https://github.com/Thriftpy/thriftpy2/pull/88
  45. Version 0.4.6
  46. -------------
  47. Released on September 24, 2019.
  48. - Follow strict datatype in TJsonProtocol, via `2-#85`_.
  49. - Add timeout support to asyncio contrib, via `2-#84`_.
  50. - Enable socket_timeout on unix_socket, via `2-#83`_.
  51. - Add url support as optional argument to make_client, via `2-#80`_.
  52. - Enforce required arguments, fixes #72, via `2-#81`_.
  53. .. _2-#80: https://github.com/Thriftpy/thriftpy2/pull/80
  54. .. _2-#81: https://github.com/Thriftpy/thriftpy2/pull/81
  55. .. _2-#83: https://github.com/Thriftpy/thriftpy2/pull/83
  56. .. _2-#84: https://github.com/Thriftpy/thriftpy2/pull/84
  57. .. _2-#85: https://github.com/Thriftpy/thriftpy2/pull/85
  58. Version 0.4.5
  59. -------------
  60. Released on August 27, 2019.
  61. - Support kwargs style parameters passing in TSimpleServer, via `2-#67`_.
  62. - Fix #65 allow double const to ommit integer part, via `2-#66`_.
  63. .. _2-#67: https://github.com/Thriftpy/thriftpy2/pull/67
  64. .. _2-#66: https://github.com/Thriftpy/thriftpy2/pull/66
  65. Version 0.4.4
  66. -------------
  67. Released on June 11, 2019.
  68. - Enable include_package_data in setup.py, via `2-#44`_.
  69. - Fix parse error on empty set field value, via `2-#43`_.
  70. .. _2-#43: https://github.com/Thriftpy/thriftpy2/pull/62
  71. .. _2-#44: https://github.com/Thriftpy/thriftpy2/pull/63
  72. Version 0.4.3
  73. -------------
  74. Released on May 24, 2019.
  75. - Fix cannot call thrift method which name's close, via `2-#42`_.
  76. .. _2-#42: https://github.com/Thriftpy/thriftpy2/pull/55
  77. Version 0.4.2
  78. -------------
  79. Released on February 25, 2019.
  80. - Fix parser handling out-of-order definition bugs, via `2-#41`_.
  81. .. _2-#41: https://github.com/Thriftpy/thriftpy2/pull/42
  82. Version 0.4.1
  83. -------------
  84. Released on February 18, 2019.
  85. - Close socket when got a connect error, via `2-#37`_.
  86. - Add i8 as alias for 'byte', via `2-#38`_.
  87. - Fix error when loading object which is dumped before changing the IDL, via `2-#34`_.
  88. .. _2-#37: https://github.com/Thriftpy/thriftpy2/pull/37
  89. .. _2-#38: https://github.com/Thriftpy/thriftpy2/pull/38
  90. .. _2-#34: https://github.com/Thriftpy/thriftpy2/pull/34
  91. Version 0.4.0
  92. -------------
  93. Released on December 10, 2018.
  94. Non-Backward Compatible changes:
  95. - Rename all thriftpy to thriftpy2, via `2-#22`_.
  96. - Parse thrift without sequential dependency, via `2-#21`_.
  97. .. _2-#22: https://github.com/Thriftpy/thriftpy2/pull/22
  98. .. _2-#21: https://github.com/Thriftpy/thriftpy2/pull/21
  99. 0.3.x
  100. ~~~~~
  101. Version 0.3.12
  102. -------------
  103. Released on November 14, 2018.
  104. - handle EINTER signal
  105. Version 0.3.11
  106. -------------
  107. Released on September 26, 2018.
  108. - support asyncio
  109. - support tornado 5.x
  110. Version 0.3.10
  111. -------------
  112. Released on September 26, 2018.
  113. - update cython version.
  114. Version 0.3.9
  115. -------------
  116. Released on August 26, 2016.
  117. - add support for timeout and ssl in `make_server` / `make_client` helper
  118. funcs, via `#204`_, `#205`_ and `#229`_.
  119. - add support for `thrift_file` path in http protocol, via `#225`_.
  120. - preserve traceback when re-raise undeclared exception, via `#206`_.
  121. - performance improvement by dynamically compile spec'd `__init__`
  122. functions, via `#210`_ and `#227`_.
  123. - performance improvement by refine cython encoding/decoding,
  124. via `#211`_ and `#212`_.
  125. - bugfix for type error in `cast_byte` parser and improve include dirs
  126. function, via `#214`_
  127. - bugfix for parse error when field begin with true/false keyword,
  128. via `#215`_ and `#218`_.
  129. - bugfix for `is_open` not return false when socket closed after open,
  130. via `#230`_.
  131. .. _`#204`: https://github.com/eleme/thriftpy/pull/204
  132. .. _`#205`: https://github.com/eleme/thriftpy/pull/205
  133. .. _`#206`: https://github.com/eleme/thriftpy/pull/206
  134. .. _`#210`: https://github.com/eleme/thriftpy/pull/210
  135. .. _`#211`: https://github.com/eleme/thriftpy/pull/211
  136. .. _`#212`: https://github.com/eleme/thriftpy/pull/212
  137. .. _`#214`: https://github.com/eleme/thriftpy/pull/214
  138. .. _`#215`: https://github.com/eleme/thriftpy/pull/215
  139. .. _`#218`: https://github.com/eleme/thriftpy/pull/218
  140. .. _`#225`: https://github.com/eleme/thriftpy/pull/225
  141. .. _`#227`: https://github.com/eleme/thriftpy/pull/227
  142. .. _`#229`: https://github.com/eleme/thriftpy/pull/229
  143. .. _`#230`: https://github.com/eleme/thriftpy/pull/230
  144. Version 0.3.8
  145. -------------
  146. Released on May 3, 2016.
  147. - add propagate decode_response to nested structs, via `#194`_.
  148. - add support for tornado ssl, via `#196`_.
  149. .. _`#194`: https://github.com/eleme/thriftpy/pull/194
  150. .. _`#196`: https://github.com/eleme/thriftpy/pull/196
  151. Version 0.3.7
  152. -------------
  153. Released on Mar 24, 2016.
  154. - bugfix for a possible unicode decode error in cybin.
  155. - use a better unhashable implementation for payload.
  156. Version 0.3.6
  157. -------------
  158. Released on Mar 24, 2016.
  159. - add compact protocol support, via `#159`_.
  160. - add option to force return bytes on response, via `#190`_.
  161. - bugfix for ssl socket can't be init without certfile and keyfile,
  162. and add additional `capath` argument for SSLContext. via `#186`_.
  163. - bugfix for set_timeout only works before socket open, via `#188`_.
  164. .. _`#159`: https://github.com/eleme/thriftpy/pull/159
  165. .. _`#186`: https://github.com/eleme/thriftpy/pull/186
  166. .. _`#188`: https://github.com/eleme/thriftpy/pull/188
  167. .. _`#190`: https://github.com/eleme/thriftpy/pull/190
  168. Version 0.3.5
  169. -------------
  170. Released on Feb 16, 2016.
  171. - fix another set_timeout backward compat issue introduced in last version.
  172. - make thrift container struct unhashable, via `#184`_.
  173. .. _`#184`: https://github.com/eleme/thriftpy/pull/184
  174. Version 0.3.4
  175. -------------
  176. Released on Feb 3, 2016.
  177. - fix backward compat issue introduced in last version, add back
  178. `set_timeout` api in socket.
  179. Version 0.3.3
  180. -------------
  181. Released on Jan 21, 2016.
  182. - add support for ssl transport.
  183. - add named loggers, via `#169`_.
  184. - refine socket and serversocket implementation with more configure options.
  185. - bugfix for parser failure on windows under python3.2 caused by samefile
  186. method, via `#172`_.
  187. .. _`#169`: https://github.com/eleme/thriftpy/pull/169
  188. .. _`#172`: https://github.com/eleme/thriftpy/pull/172
  189. Version 0.3.2
  190. -------------
  191. Released on Oct 12, 2015.
  192. - add `__thrift_meta__` attribute to loaded module, via `#138`_.
  193. - add type validation before write data to transport, via `#149`_ and `#150`_.
  194. - add load_fp api to load thrift from file like object, via `#154`_.
  195. - add support for recursive struct definition, via `#155`_.
  196. - add support for integer boolean constants, via `#161`_.
  197. - simplify the read_i08() bool result cast, via `#162`_.
  198. - performance improvements on payload `init()` func, via `#163`_.
  199. - bugfix for parsing of duplicate field name or id, now will raise error
  200. when duplicates detected, via `#139`_.
  201. - bugfix for server side transport not connected error when closing socket,
  202. via `#143`_.
  203. - bugfix for a typo error in `default_spec` generation, via `#145`_.
  204. - bugfix for i16 byte swap bug in OS X, via `#148`_.
  205. .. _`#138`: https://github.com/eleme/thriftpy/pull/138
  206. .. _`#139`: https://github.com/eleme/thriftpy/pull/139
  207. .. _`#143`: https://github.com/eleme/thriftpy/pull/143
  208. .. _`#145`: https://github.com/eleme/thriftpy/pull/145
  209. .. _`#148`: https://github.com/eleme/thriftpy/pull/148
  210. .. _`#149`: https://github.com/eleme/thriftpy/pull/149
  211. .. _`#150`: https://github.com/eleme/thriftpy/pull/150
  212. .. _`#154`: https://github.com/eleme/thriftpy/pull/154
  213. .. _`#155`: https://github.com/eleme/thriftpy/pull/155
  214. .. _`#161`: https://github.com/eleme/thriftpy/pull/161
  215. .. _`#162`: https://github.com/eleme/thriftpy/pull/162
  216. .. _`#163`: https://github.com/eleme/thriftpy/pull/163
  217. Version 0.3.1
  218. -------------
  219. Released on May 29, 2015.
  220. - lock down to use pure python only in windows env. (this avoid the cython
  221. stuffs on windows totally)
  222. - enable multiple include dirs, via `#131`_.
  223. - bugfix for parsing of constants with separators, via `#134`_.
  224. .. _`#131`: https://github.com/eleme/thriftpy/pull/131
  225. .. _`#134`: https://github.com/eleme/thriftpy/pull/134
  226. Version 0.3.0
  227. -------------
  228. Released on April 15, 2015.
  229. Non-Backward Compatible changes:
  230. - migrate multiplexed protocol implementation to the same with upstream,
  231. via `#117`_.
  232. .. _`#117`: https://github.com/eleme/thriftpy/pull/117
  233. 0.2.x
  234. ~~~~~
  235. Version 0.2.1
  236. -------------
  237. Released on April 15, 2015.
  238. - add an experimental tracking feature in `thriftpy.contrib`, via `#96`_.
  239. - add limitation on thrift reserved keyword for compatible with upstream, via
  240. `#115`_.
  241. - bugfix EOF grammar error, via `#103`_.
  242. - bugfix for mis-mach transport in client caused server crash, via `#119`_.
  243. - bugfix for typedef on included thrift files, via `#121`_.
  244. .. _`#96`: https://github.com/eleme/thriftpy/pull/96
  245. .. _`#103`: https://github.com/eleme/thriftpy/pull/103
  246. .. _`#115`: https://github.com/eleme/thriftpy/pull/115
  247. .. _`#119`: https://github.com/eleme/thriftpy/pull/119
  248. .. _`#121`: https://github.com/eleme/thriftpy/pull/121
  249. Version 0.2.0
  250. -------------
  251. Released on March 3, 2015.
  252. - support for default enum values that reference the original enum, via
  253. `#69`_.
  254. - support for `require` keyword, via `#72`_.
  255. - support for allow use and definition of types in the same file, via
  256. `#77`_.
  257. - support for multiplexing for services, via `#88`_.
  258. - support for cython accelerated memory transport and framed transport,
  259. via `#93`
  260. - bugfix for transport clean in read_struct in cybin, via `#70`_.
  261. - bugfix for large reading size in framed transport, via `#73`_.
  262. - bugfix for cython build failed in older CentOS, via `#92`_.
  263. - bugfix for thrift file version mis-match caused message corrupt in
  264. `read_struct`, via `#95`_.
  265. Non-Backward Compatible changes:
  266. - refined new parser, the parser now behaves very similar to Apache Thrift,
  267. and supports a lot more features than the old one, via `#80`_. Refer to the
  268. pull request for more detailed changes.
  269. - refined transport, all transports have cython accelerated version. The
  270. cython version of protocol and transport are enabled by default now.
  271. .. _`#69`: https://github.com/eleme/thriftpy/pull/69
  272. .. _`#70`: https://github.com/eleme/thriftpy/pull/70
  273. .. _`#72`: https://github.com/eleme/thriftpy/pull/72
  274. .. _`#73`: https://github.com/eleme/thriftpy/pull/73
  275. .. _`#77`: https://github.com/eleme/thriftpy/pull/77
  276. .. _`#80`: https://github.com/eleme/thriftpy/pull/80
  277. .. _`#88`: https://github.com/eleme/thriftpy/pull/88
  278. .. _`#91`: https://github.com/eleme/thriftpy/pull/91
  279. .. _`#92`: https://github.com/eleme/thriftpy/pull/92
  280. .. _`#93`: https://github.com/eleme/thriftpy/pull/93
  281. .. _`#95`: https://github.com/eleme/thriftpy/pull/95
  282. 0.1.x
  283. ~~~~~
  284. Version 0.1.15
  285. --------------
  286. Released on December 12, 2014.
  287. - add MIT `LICENSE` file as requested.
  288. - tests refines with tox and pytest fixtures.
  289. - support for a mostly cythonized version of framed transport, via `#66`_.
  290. - bugfix for unix socket param in rpc.
  291. - bugfix for receiving 0-length strings & framed transport, via `#63`_.
  292. - bugfix for json protocol unicode decode error, via `#65`_.
  293. - bugfix for operator `__ne__` implementation error, via `#68`_.
  294. .. _`#66`: https://github.com/eleme/thriftpy/pull/66
  295. .. _`#63`: https://github.com/eleme/thriftpy/pull/63
  296. .. _`#65`: https://github.com/eleme/thriftpy/pull/65
  297. .. _`#68`: https://github.com/eleme/thriftpy/pull/68
  298. Version 0.1.14
  299. --------------
  300. Released on November 8, 2014.
  301. - support for python2.6.
  302. - support for testing by tox.
  303. - support for oneway keyword, via `#49`_.
  304. - bugfix for wrong type args, via `#48`_.
  305. - bugfix for thrift file include keyword, via `#53`_.
  306. - bugfix for skip method not found in protocol, via `#55`_.
  307. - bugfix for set type support, via `#59`_.
  308. - bugfix for 'api' arg name collision in client.
  309. .. _`#48`: https://github.com/eleme/thriftpy/pull/48
  310. .. _`#49`: https://github.com/eleme/thriftpy/pull/49
  311. .. _`#53`: https://github.com/eleme/thriftpy/pull/53
  312. .. _`#55`: https://github.com/eleme/thriftpy/pull/55
  313. .. _`#59`: https://github.com/eleme/thriftpy/pull/59
  314. Version 0.1.13
  315. --------------
  316. Released on September 24, 2014.
  317. - bugfix for TPayload not able to be hashed in py3, via `#44`_.
  318. - bugfix for cython buffered transport read issue, via `#46`_.
  319. .. _`#44`: https://github.com/eleme/thriftpy/pull/44
  320. .. _`#46`: https://github.com/eleme/thriftpy/pull/46
  321. Version 0.1.12
  322. --------------
  323. Released on September 18, 2014.
  324. - bugfix for lack of `skip` func in cython binary protocol, via `#43`_.
  325. .. _`#43`: https://github.com/eleme/thriftpy/pull/43
  326. Version 0.1.11
  327. --------------
  328. Released on September 16, 2014.
  329. - bugfix for init func generator for TStruct.
  330. - bugfix for set constants in parser, via `#39`_.
  331. - add support for "includes" and service "extends", via `#37`_.
  332. - add close() to servers, via `#38`_.
  333. - implement non-strict mode for binary protocol, via `#40`_.
  334. - removed cython ext in pypy, and add pypy3 support.
  335. - some args updates:
  336. * add `trans_factory` arg to `make_server`
  337. * rename `rbuf_size` in buffered transport to `buf_size`.
  338. * rename `isOpen` to `is_open`, `readFrame` to `read_frame`.
  339. .. _`#37`: https://github.com/eleme/thriftpy/pull/37
  340. .. _`#38`: https://github.com/eleme/thriftpy/pull/38
  341. .. _`#39`: https://github.com/eleme/thriftpy/pull/39
  342. .. _`#40`: https://github.com/eleme/thriftpy/pull/40
  343. Version 0.1.10
  344. --------------
  345. Released on September 4, 2014.
  346. - bugfix for memory free in cython buffered transport, via `#35`_.
  347. - new thrift parser by PLY, removed cache since the performance is much more
  348. faster now, via `#36`_.
  349. .. _`#35`: https://github.com/eleme/thriftpy/pull/35
  350. .. _`#36`: https://github.com/eleme/thriftpy/pull/36
  351. Version 0.1.9
  352. -------------
  353. Released on September 1, 2014.
  354. - refine cython binary protocol, add cython buffered transport, via `#32`_.
  355. - param name change, rename transport_factory to trans_factory in rpc.
  356. .. _`#32`: https://github.com/eleme/thriftpy/pull/32
  357. Version 0.1.8
  358. -------------
  359. Released on August 28, 2014.
  360. - faster thrift file parse speed, via `#30`_.
  361. - bugfix for cybin buffer read, via `#31`_.
  362. .. _`#30`: https://github.com/eleme/thriftpy/pull/30
  363. .. _`#31`: https://github.com/eleme/thriftpy/pull/31
  364. Version 0.1.7
  365. -------------
  366. Released on August 19, 2014.
  367. - use args instead of kwargs in api calling to match upstream behavior.
  368. - cython binary protocol auto grow buffer size, via `#29`_.
  369. - bugfix for void api exception handling in processor.
  370. - bugfix for cybin protocol buffer overflow and memcpy, via `#27`_ and `#28`_.
  371. .. _`#27`: https://github.com/eleme/thriftpy/pull/27
  372. .. _`#28`: https://github.com/eleme/thriftpy/pull/28
  373. .. _`#29`: https://github.com/eleme/thriftpy/pull/29
  374. Version 0.1.6
  375. -------------
  376. Released on August 14, 2014.
  377. - json protocol, via `#21`_.
  378. - more standard module for loaded sdk, now generated TPayload objects can
  379. be pickled when module_name provided, via `#22`_.
  380. - gunicorn_thrift integration pingpong example, via `#24`_.
  381. - token cache now only checks python's major and minor version.
  382. - bugfix for exception handling in void api in RPC request.
  383. - bugfix for negative number value not recognized.
  384. - bugfix for cybin protocol to allow None value in struct.
  385. - bugfix for double free or corruption in cybin protocol, via `#26`_.
  386. .. _`#21`: https://github.com/eleme/thriftpy/pull/21
  387. .. _`#22`: https://github.com/eleme/thriftpy/pull/22
  388. .. _`#24`: https://github.com/eleme/thriftpy/pull/24
  389. .. _`#26`: https://github.com/eleme/thriftpy/pull/26
  390. Version 0.1.5
  391. -------------
  392. Released on July 25, 2014.
  393. - tornado client, server and framed transport support with tornado 4.0,
  394. via `#15`_.
  395. - immediately read from TMemoryBuffer after writing to it, via `#20`_.
  396. - cache `load` function to avoid duplicate module generation.
  397. - support client with socket timeout
  398. - enum struct now has VALUES_TO_NAMES and NAMES_TO_VALUES.
  399. .. _`#15`: https://github.com/eleme/thriftpy/pull/15
  400. .. _`#20`: https://github.com/eleme/thriftpy/pull/20
  401. Version 0.1.4
  402. -------------
  403. Released on July 17, 2014.
  404. - parser token cache, speed boost for thrift file parsing, via `#12`_.
  405. - new cython binary protocol with speed very close to c ext, via `#16`_.
  406. .. _`#12`: https://github.com/eleme/thriftpy/pull/14
  407. .. _`#16`: https://github.com/eleme/thriftpy/pull/14
  408. Version 0.1.3
  409. -------------
  410. Released on June 19, 2014.
  411. - support for union, binary fields, support for empty structs,
  412. support for Apache Storm thrift file, via `#14`_.
  413. - bugfix for import hook
  414. - bugfix for skip function in binary protocols
  415. .. _`#14`: https://github.com/eleme/thriftpy/pull/14
  416. Version 0.1.2
  417. -------------
  418. Released on June 7, 2014.
  419. - disabled the magic import hook by default. and add install/remove
  420. function to switch the hook on and off.
  421. - reworked benchmark suit and add benchmark results.
  422. - new `__init__` function code generator. get a noticable speed boost.
  423. - bug fixes
  424. Version 0.1.1
  425. -------------
  426. First public release.