diff --git a/docs/_posts/2018-01-16-42.2.0-release.md b/docs/_posts/2018-01-16-42.2.0-release.md index bdbdaddafe..272c800a1f 100644 --- a/docs/_posts/2018-01-16-42.2.0-release.md +++ b/docs/_posts/2018-01-16-42.2.0-release.md @@ -1,6 +1,6 @@ --- title: PostgreSQL JDBC Driver 42.2.0 Released -date: 2018-01-16 08:11:00 -0500 +date: 2018-01-16 11:11:10 -0500 categories: - new_release version: 42.2.0 @@ -20,7 +20,7 @@ version: 42.2.0 - Improve behaviour of ResultSet.getObject(int, Class). [PR 932](https://github.com/pgjdbc/pgjdbc/pull/932) - Parse CommandComplete message using a regular expresion, allows complete catch of server returned commands for INSERT, UPDATE, DELETE, SELECT, FETCH, MOVE, COPY and future commands. [PR 962](https://github.com/pgjdbc/pgjdbc/pull/962) - Use 'time with timezone' and 'timestamp with timezone' as is and ignore the user provided Calendars, 'time' and 'timestamp' work as earlier except "00:00:00" now maps to 1970-01-01 and "24:00:00" uses the system provided Calendar ignoring the user-provided one [PR 1053](https://github.com/pgjdbc/pgjdbc/pull/1053) -- Change behaviour of multihost connection. The new behaviour is to try all slaves first before trying the master [PR 844](https://github.com/pgjdbc/pgjdbc/pull/844). +- Change behaviour of multihost connection. The new behaviour is to try all secondaries first before trying the master [PR 844](https://github.com/pgjdbc/pgjdbc/pull/844). - Avoid reflective access to TimeZone.defaultTimeZone in Java 9+ [PR 1002](https://github.com/pgjdbc/pgjdbc/pull/1002) fixes [Issue 986](https://github.com/pgjdbc/pgjdbc/issues/986) ### Fixed - Make warnings available as soon as they are received from the server. This is useful for long running queries, where it can be beneficial to know about a warning before the query completes. [PR 857](https://github.com/pgjdbc/pgjdbc/pull/857) @@ -28,7 +28,6 @@ version: 42.2.0 - Now the DatabaseMetaData.getFunctions() implementation complies with the JDBC docs. [PR 918](https://github.com/pgjdbc/pgjdbc/pull/918) - Execute autosave/rollback savepoint via simple queries always to prevent "statement S_xx not exists" when autosaving fixes [Issue #955](https://github.com/pgjdbc/pgjdbc/issues/955) - Received resultset tuples, but no field structure for them" when bind failure happens on 5th execution of a statement [Issue 811](https://github.com/pgjdbc/pgjdbc/issues/811) -- avoid NPE from getObject(..., Date.class) and getObject(..., Calendar.class) on null timestamps [PR 1072](https://github.com/pgjdbc/pgjdbc/pull/918) [Issue 1071](https://github.com/pgjdbc/pgjdbc/issues/1071) ### Removed - Drop support for the (insecure) crypt authentication method. [PR 1026](https://github.com/pgjdbc/pgjdbc/pull/1026) @@ -41,7 +40,7 @@ version: 42.2.0 **Commits by author** -AlexElin (8): +AlexElin (9): * docs: fix header in CONTRIBUTING [PR#902](https://github.com/pgjdbc/pgjdbc/pull/902) [38ff0fe](https://github.com/pgjdbc/pgjdbc/commit/38ff0fe4728addf9a34d6fb0069ce4963aaae7ee) * refactor: remove dead code from PGStream, implement Closeable [PR#901](https://github.com/pgjdbc/pgjdbc/pull/901) [acff949](https://github.com/pgjdbc/pgjdbc/commit/acff9495b8745bce30d93d61e77caf81d9748b4b) @@ -51,6 +50,11 @@ AlexElin (8): * style: add MissingDeprecated into checkstyle [PR#1019](https://github.com/pgjdbc/pgjdbc/pull/1019) [d74386d](https://github.com/pgjdbc/pgjdbc/commit/d74386def0d39f450f5dcfdb21ff6171ba0a89f3) * chore: update checkstyle [PR#1025](https://github.com/pgjdbc/pgjdbc/pull/1025) [69e3b8b](https://github.com/pgjdbc/pgjdbc/commit/69e3b8b2ef7fb80ece8df23b55855fa4208e8a00) * refactor: simplify methods in ConnectionFactoryImpl [PR#1028](https://github.com/pgjdbc/pgjdbc/pull/1028) [ed27c5b](https://github.com/pgjdbc/pgjdbc/commit/ed27c5b464563448079189b1759ecf05d4726ea0) +* refactor: replace some usages of initCause [PR#1037](https://github.com/pgjdbc/pgjdbc/pull/1037) [0c29823](https://github.com/pgjdbc/pgjdbc/commit/0c29823ad8eca86e3b8f27bcee5f116d41e367f9) + +Álvaro Hernández Tortosa (1): + +* Add SCRAM-SHA-256 support [PR#842](https://github.com/pgjdbc/pgjdbc/pull/842) [befea18](https://github.com/pgjdbc/pgjdbc/commit/befea18d153dda7814daef4e036d3f5daf8de1e5) Barnabas Bodnar (1): @@ -64,17 +68,31 @@ Brett Wooldridge (1): * Fixes #638 Implement support for get/setNetworkTimeout() [PR#849](https://github.com/pgjdbc/pgjdbc/pull/849) [8a30044](https://github.com/pgjdbc/pgjdbc/commit/8a30044d9e97c1038ee4401ae745d37a11f008db) -Dave Cramer (9): +Chen Huajun (1): + +* fix: improve multihost connection for preferSlave case (verify expired hosts before connecting to cached master) [PR#844](https://github.com/pgjdbc/pgjdbc/pull/844) [c6fec34](https://github.com/pgjdbc/pgjdbc/commit/c6fec34661b51cd9cbee157d0c334a3ab29859e8) + +Dave Cramer (11): * Update thread safety status of the driver to reflect reality; that being that the driver is not thread safe [PR#928](https://github.com/pgjdbc/pgjdbc/pull/928) [ad47aba](https://github.com/pgjdbc/pgjdbc/commit/ad47abafa1754f8d0f2126ef1d26aa9b037b49e5) * fix: use 00:00:00 and 24:00:00 for LocalTime.MIN/MAX [PR#992](https://github.com/pgjdbc/pgjdbc/pull/992) [f2d8ec5](https://github.com/pgjdbc/pgjdbc/commit/f2d8ec5740aa26c417d666a7afedaaf0fdf62d37) * fix: support Subject Alternative Names for SSL connections [PR#952](https://github.com/pgjdbc/pgjdbc/pull/952) [2dcb91e](https://github.com/pgjdbc/pgjdbc/commit/2dcb91ef1fd8f0fe08f107c9c30cdc57d4c44b05) * test: Appveyor configuration [PR#1000](https://github.com/pgjdbc/pgjdbc/pull/1000) [059628f](https://github.com/pgjdbc/pgjdbc/commit/059628fcdf2058cfd05cb80eac64799ca26ad0d2) * add test for identity, fix isAutoincrement in postgresql 10 fixes #130 [PR#1004](https://github.com/pgjdbc/pgjdbc/pull/1004) [2f6633b](https://github.com/pgjdbc/pgjdbc/commit/2f6633bd9e1e9d7f313ea4dfec37f9671fc07453) -* first pass at release notes and some fixes to previous notes [9255cc3](https://github.com/pgjdbc/pgjdbc/commit/9255cc303771bfd04556ac984a485850fe2bdd76) -* fix Changelog, and move to version 42.2.0 [6f78114](https://github.com/pgjdbc/pgjdbc/commit/6f78114f2747b72b1f5d4e401406536a69b67b16) -* get all changes in [1a03463](https://github.com/pgjdbc/pgjdbc/commit/1a034630772389f4fcf086a7b1a212c06f081230) -* update changelog, fix docs to suit [35779d1](https://github.com/pgjdbc/pgjdbc/commit/35779d17a02992a000d26e5005c7520f03d9f69d) +* elaborate on sslmode options [PR#1054](https://github.com/pgjdbc/pgjdbc/pull/1054) [aa7a420](https://github.com/pgjdbc/pgjdbc/commit/aa7a4202e41bc58c4958e06161c5fd4daa36a7f9) +* prefer the word secondary over slave [PR#1063](https://github.com/pgjdbc/pgjdbc/pull/1063) [2e8c2b6](https://github.com/pgjdbc/pgjdbc/commit/2e8c2b67e22ddaa38894be4b2578ccd4bf97a27d) +* Revert "refactor: replace some usages of initCause [PR#1037](https://github.com/pgjdbc/pgjdbc/pull/1037)" (#1064) [e6a1ecc](https://github.com/pgjdbc/pgjdbc/commit/e6a1eccb148c3c59e8cf122e98ad01afc5bb555a) +* prefer secondary over slave referring to standby or secondary servers [PR#1070](https://github.com/pgjdbc/pgjdbc/pull/1070) [32c53902](https://github.com/pgjdbc/pgjdbc/commit/32c539020db3c940bae9b2a42425b1f23e864c73) +* first pass at release notes and some fixes to previous notes [PR#1041](https://github.com/pgjdbc/pgjdbc/pull/1041) [a8260f5](https://github.com/pgjdbc/pgjdbc/commit/a8260f5d0e31d00c1b44d2b94f62d86a72e2b2d5) +* Update 2018-01-16-42.2.0-release.md [b36867f](https://github.com/pgjdbc/pgjdbc/commit/b36867f34719d2af559b60b6f63b2df036798231) + +Hugh Cole-Baker (1): + +* Make GSS JAAS login optional [PR#922](https://github.com/pgjdbc/pgjdbc/pull/922) [d7f0f27](https://github.com/pgjdbc/pgjdbc/commit/d7f0f271b73adbf0ae22146beea122e014d9f9f2) + +Jeff Klukas (1): + +* fix: advance lastReceiveLSN on keepalive messages [PR#1038](https://github.com/pgjdbc/pgjdbc/pull/1038) [1be8a9e](https://github.com/pgjdbc/pgjdbc/commit/1be8a9ebafbfbcff118385a61a350745addcaf3d) Joe Kutner (1): @@ -104,7 +122,7 @@ Magnus Hagander (1): * Fix documentation spelling of sslpasswordcallback [PR#1021](https://github.com/pgjdbc/pgjdbc/pull/1021) [8ba5841](https://github.com/pgjdbc/pgjdbc/commit/8ba58418ae10f80530f67f0c8628161011c5a228) -Michael (1): +MichaelZg (1): * fix: trim trailing zeros in timestamp strings returned in binary mode [PR#896](https://github.com/pgjdbc/pgjdbc/pull/896) [d28deff](https://github.com/pgjdbc/pgjdbc/commit/d28deff57684349707d2b2a357048f59b0861bb1) @@ -135,13 +153,30 @@ Thach Hoang (2): * Update ServerVersionTest to actually compare versions [PR#1015](https://github.com/pgjdbc/pgjdbc/pull/1015) [cccd6cd](https://github.com/pgjdbc/pgjdbc/commit/cccd6cde4672de30ac0bbac6621b63e81aae9474) * fix: always return Short[] for java.sql.Array.getArray() on smallint[] [PR#1017](https://github.com/pgjdbc/pgjdbc/pull/1017) [279fb43](https://github.com/pgjdbc/pgjdbc/commit/279fb435b392114c45266ecef901bfd59470842a) -Vladimir Sitnikov (5): +Vladimir Sitnikov (22): * fix: reintroduce Driver.getVersion for backward compatibility reasons [PR#905](https://github.com/pgjdbc/pgjdbc/pull/905) [50d5dd3](https://github.com/pgjdbc/pgjdbc/commit/50d5dd3e708a92602e04d6b4aa0822ad3f110a78) * style: make PGReplicationStream, LargeObject implement AutoCloseable for Java 7+ [PR#1016](https://github.com/pgjdbc/pgjdbc/pull/1016) [9f07c9a](https://github.com/pgjdbc/pgjdbc/commit/9f07c9ae2eb0c1ec18455e3a3d66460dd264c790) * fix: prevent statement hang in case close() called when query is in progress [PR#1022](https://github.com/pgjdbc/pgjdbc/pull/1022) [04c5dbb](https://github.com/pgjdbc/pgjdbc/commit/04c5dbb5058008a8ddad0194156af9819595c315) * fix: synchronize Statement#result field access to make #close() more thread-safe [4139248](https://github.com/pgjdbc/pgjdbc/commit/41392481d5f2c7f89d783a535ade2d3afb565654) * fix: avoid reflective access to TimeZone.defaultTimeZone in Java 9+ [PR#1002](https://github.com/pgjdbc/pgjdbc/pull/1002) [fd0eeee](https://github.com/pgjdbc/pgjdbc/commit/fd0eeee8f123b1355b523425a1e11fdd59b057a5) +* fix: throw TOO_MANY_RESULTS (0100E) instead of "PgResultSet: tuples must be non-null" [0d31d46](https://github.com/pgjdbc/pgjdbc/commit/0d31d46adff4e9772db843195e1638531bc703e0) +* fix: "Received resultset tuples, but no field structure for them" when bind failure happens on 5th execution of a statement [PR#811](https://github.com/pgjdbc/pgjdbc/pull/811) [082d009](https://github.com/pgjdbc/pgjdbc/commit/082d00941ad5f8abf44a0785a6f086c106b3c746) +* tests: correct assertion to use proper column [63918eb](https://github.com/pgjdbc/pgjdbc/commit/63918eb9b1211e0115c8b55401e22c7a3f37e534) +* fix: add type parameter so code is Java 6/7 compatible [1361c52](https://github.com/pgjdbc/pgjdbc/commit/1361c5208d6afc5d54e4df1053c48cdb31df9038) +* chore: avoid non-blocking IO for stdout to workaround "stdout: write error" in Travis [12bb084](https://github.com/pgjdbc/pgjdbc/commit/12bb084035a13c4fb690df93837b37e85354ebc4) +* test: run Travis tests with non-default time zone [a3982b4](https://github.com/pgjdbc/pgjdbc/commit/a3982b474dd92cd32c8fb1b7dafbd28c853c4177) +* fix: execute autosave/rollback savepoint via simple queries always to prevent "statement S_xx not exists" when autosaving [PR#955](https://github.com/pgjdbc/pgjdbc/pull/955) [684a699](https://github.com/pgjdbc/pgjdbc/commit/684a69920e08017c74ab4194d1a77067f544a28b) +* fix: use 'time with time zone' and 'timestamp with time zone' values as is and avoid computation with user-provided/default Calendars [e8c43f3](https://github.com/pgjdbc/pgjdbc/commit/e8c43f36ab2a6843f37d27e7417a5214f7142084) +* test: refactor SetObject310Test to use proper assertion messages and use less statements (make it faster) [be06946](https://github.com/pgjdbc/pgjdbc/commit/be06946f8b908536f4d659aaf6fc660bed339f67) +* refactor: factor out receiveParameterStatus so all the ParameterStatus messages are handled in the same way [a94cfea](https://github.com/pgjdbc/pgjdbc/commit/a94cfeace5d66b4fe8d8fa3b16986baebaec2a11) +* fix: add Provide-Capability OSGi manifest [PR#1029](https://github.com/pgjdbc/pgjdbc/pull/1029) [236805b](https://github.com/pgjdbc/pgjdbc/commit/236805bcaf0dd1d9df3542c5865a15b24375a01c) +* chore: update version to 42.2.0-SNAPSHOT to reflect the next release version [e27ee74](https://github.com/pgjdbc/pgjdbc/commit/e27ee740535a4034084d450cddefda2fbcb1b2af) +* packaging: add missing maven-clean-plugin dependency [a2ed9b5](https://github.com/pgjdbc/pgjdbc/commit/a2ed9b50e304a3437f92b945217c19197226d53f) +* chore: introduce release via Travis [acb9bdd](https://github.com/pgjdbc/pgjdbc/commit/acb9bddf36a8af6d1dd09857a6a05014c3e8849a) +* chore: skip CI builds for tags; skip Fedora and extendedCacheEverything jobs when building pull requests [3ba3b63](https://github.com/pgjdbc/pgjdbc/commit/3ba3b6334761909183334a3be3af0aa8dc4798da) +* fix: avoid NPE from getObject(..., Date.class) and getObject(..., Calendar.class) on null timestamps [PR#1071](https://github.com/pgjdbc/pgjdbc/pull/1071) [eb33c4c](https://github.com/pgjdbc/pgjdbc/commit/eb33c4c8e27d6df6ccd9c0a81eb119edeb069d55) +* test: add "as" to test queries so they work with PostgreSQL 8.3 [71b3c11](https://github.com/pgjdbc/pgjdbc/commit/71b3c118f6a9e125c06e58faa50bf54b6a8f3400) Zemian Deng (3): @@ -149,6 +184,12 @@ Zemian Deng (3): * fix: correct javadoc on PGResultSetMetaData.getFormat [PR#917](https://github.com/pgjdbc/pgjdbc/pull/917) [cd77693](https://github.com/pgjdbc/pgjdbc/commit/cd77693ca22924479a39b8d925f276879023672a) * fix: Correct DatabaseMetaData.getFunctions() implementation [PR#918](https://github.com/pgjdbc/pgjdbc/pull/918) [8884202](https://github.com/pgjdbc/pgjdbc/commit/8884202b9e7785a1eaf67ddcd97f2ba689d0cf19) +bpd0018 (3): + +* docs - change load.md to reflect current practice [PR#1058](https://github.com/pgjdbc/pgjdbc/pull/1058) [90535d9](https://github.com/pgjdbc/pgjdbc/commit/90535d9289141c398b2e62f2ee7571617c5aecc3) +* docs: fix the URL regex [PR#1057](https://github.com/pgjdbc/pgjdbc/pull/1057) [6c5490f](https://github.com/pgjdbc/pgjdbc/commit/6c5490f90da434f37abd0be0f7bbdc38169ec33f) +* docs: fix no parameter connect string example [PR#1056](https://github.com/pgjdbc/pgjdbc/pull/1056) [bb8a315](https://github.com/pgjdbc/pgjdbc/commit/bb8a31508f3caef7532b87b50c19e092af2ec5f0) + djydewang (1): * style: disallowing user to use incomplete fully qualified Check names in config file [PR#961](https://github.com/pgjdbc/pgjdbc/pull/961) [3286c8c](https://github.com/pgjdbc/pgjdbc/commit/3286c8caa16efe59307b2713784c348e603ee67d) @@ -165,40 +206,43 @@ rnveach (1): * style: remove deprecated maxLineLength from LeftCurlyCheck [PR#904](https://github.com/pgjdbc/pgjdbc/pull/904) [5f083d1](https://github.com/pgjdbc/pgjdbc/commit/5f083d118eea30e180500864d70f292b411c19af) +steinarb (1): +* fix: add Provide-Capability org.osgi.service.jdbc.DataSourceFactory to OSGi manifest [Issue 1029](https://github.com/pgjdbc/pgjdbc/issues/1029) + zapov (1): * fix: avoid integer overflow when sending large arguments [PR#946](https://github.com/pgjdbc/pgjdbc/pull/946) [266ed61](https://github.com/pgjdbc/pgjdbc/commit/266ed61b30e89c2840b7967a8af7ac8ab86407ff) -Álvaro Hernández Tortosa (1): - -* Add SCRAM-SHA-256 support [PR#842](https://github.com/pgjdbc/pgjdbc/pull/842) [befea18](https://github.com/pgjdbc/pgjdbc/commit/befea18d153dda7814daef4e036d3f5daf8de1e5) - ### Contributors to this release We thank the following people for their contributions to this release. [AlexElin](https://github.com/AlexElin) -Barnabas Bodnar +[Álvaro Hernández Tortosa](https://github.com/ahachete) +[Barnabas Bodnar](https://github.com/bbodnar) [Brett Okken](https://github.com/bokken) [Brett Wooldridge](https://github.com/brettwooldridge) +[Chen Huajun](https://github.com/ChenHuajun) [Dave Cramer](davec@postgresintl.com) +[Hugh Cole-Baker](https://github.com/sigmaris) +[Jeff Klukas](https://github.com/jklukas) [Joe Kutner](https://github.com/jkutner) [Jorge Solorzano](https://github.com/jorsol) [Magnus](https://github.com/magJ) [Magnus Hagander](https://github.com/mhagander) -Michael +[MichaelZg](https://github.com/michaelzg) [Michael Glaesemann](https://github.com/grzm) [Pavel Raiskup](https://github.com/praiskup) [Philippe Marschall](https://github.com/marschall) -Piyush Sharma -Sehrope Sarkuni -Thach Hoang +[Piyush Sharma](https://github.com/ps-sp) +[Sehrope Sarkuni](https://github.com/sehrope) +[Thach Hoang](https://github.com/thachhoang) [Vladimir Sitnikov](https://github.com/vlsi) -Zemian Deng -djydewang -eperez -mjanczykowski -rnveach +[Zemian Deng](https://github.com/zemian) +[bpd0018](https://github.com/bpd0018) +[djydewang](https://github.com/djydewang) +[eperez](https://github.com/eperez) +[mjanczykowski](https://github.com/mjanczykowski) +[rnveach](https://github.com/rnveach) [zapov](https://github.com/zapov) -[Álvaro Hernández Tortosa](https://github.com/ahachete) diff --git a/release_notes_filter.pl b/release_notes_filter.pl index a1999ad58f..5fdd74789d 100644 --- a/release_notes_filter.pl +++ b/release_notes_filter.pl @@ -8,47 +8,61 @@ 'AlexElin' => 'https://github.com/AlexElin', 'Álvaro Hernández Tortosa' => 'https://github.com/ahachete', 'aryabukhin' => 'https://github.com/aryabukhin', + 'Barnabas Bodnar' => 'https://github.com/bbodnar', + 'bd-infor' => 'https://github.com/bd-infor', + 'bpd0018' => 'https://github.com/bpd0018', 'Brett Okken' => 'https://github.com/bokken', 'Brett Wooldridge' => 'https://github.com/brettwooldridge', - 'bd-infor' => 'https://github.com/bd-infor', + 'Chen Huajun' => 'https://github.com/ChenHuajun', 'Christian Ullrich' => 'https://github.com/chrullrich', 'Christopher Deckers' => 'https://github.com/Chrriis', 'Daniel Gustafsson' => 'https://github.com/danielgustafsson', 'Daniel Migowski' =>'https://github.com/dmigowski', 'Dave Cramer' => 'davec@postgresintl.com', + 'djydewang' => 'https://github.com/djydewang', + 'eperez' => 'https://github.com/eperez', 'Eric McCormack' => 'https://github.com/ericmack', 'Florin Asăvoaie' => 'https://github.com/FlorinAsavoaie', 'George Kankava' => 'https://github.com/georgekankava', 'goeland86' => 'https://github.com/goeland86', + 'Hugh Cole-Baker' => 'https://github.com/sigmaris', 'Jacques Fuentes' => 'https://github.com/jpfuentes2', 'James' => 'https://github.com/jamesthomp', + 'Jeff Klukas' => 'https://github.com/jklukas', 'Jeremy Whiting' => 'https://github.com/whitingjr', 'Joe Kutner' => 'https://github.com/jkutner', 'Jordan Lewis' => 'https://github.com/jordanlewis', 'Jorge Solorzano' => 'https://github.com/jorsol', 'Laurenz Albe' => 'https://github.com/laurenz', - 'Magnus' => 'https://github.com/magJ', 'Magnus Hagander' => 'https://github.com/mhagander', + 'Magnus' => 'https://github.com/magJ', 'Marc Petzold' => 'https://github.com/dosimeta', 'Marios Trivyzas' => 'https://github.com/matriv', 'Mathias Fußenegger' => 'https://github.com/mfussenegger', 'Michael Glaesemann' => 'https://github.com/grzm', + 'MichaelZg' => 'https://github.com/michaelzg', 'Minglei Tu' => 'https://github.com/tminglei', + 'mjanczykowski' => 'https://github.com/mjanczykowski', 'Pavel Raiskup' => 'https://github.com/praiskup', 'Petro Semeniuk' => 'https://github.com/PetroSemeniuk', 'Philippe Marschall' => 'https://github.com/marschall', + 'Piyush Sharma' => 'https://github.com/ps-sp', 'Rikard Pavelic' => 'https://github.com/zapov', + 'rnveach' => 'https://github.com/rnveach', 'Robert Zenz' => 'https://github.com/RobertZenz', 'Robert \'Bobby\' Zenz' => 'https://github.com/RobertZenz', 'Roman Ivanov' => 'https://github.com/romani', 'Sebastian Utz' => 'https://github.com/seut', + 'Sehrope Sarkuni' => 'https://github.com/sehrope', 'slmsbrhgn' => 'https://github.com/slmsbrhgn', 'Steve Ungerer' => 'https://github.com/scubasau', 'Tanya Gordeeva' => 'https://github.com/tmgordeeva', + 'Thach Hoang' => 'https://github.com/thachhoang', 'Trygve Laugstøl' => 'https://github.com/trygvis', 'Vladimir Gordiychuk' => 'https://github.com/Gordiychuk', 'Vladimir Sitnikov' => 'https://github.com/vlsi', 'zapov' => 'https://github.com/zapov', + 'Zemian Deng' => 'https://github.com/zemian', );