Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

CHANGELOG.adoc 9.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. = Changelog
  2. == Next version (in development)
  3. * No changes yet
  4. == v1.1.1 (2019-03-14)
  5. * Fix occasional buffer overflow issue on TLS connections.
  6. == v1.1.0 (2019-03-13)
  7. * Away support:
  8. ** Added sendAway() method
  9. ** Added UserAway event and fanned-out ChannelAway
  10. ** Away message is now updated in the UserState
  11. * Added IrcClient.localUser property, returning the local User
  12. * Deprecated ServerState.localNickname in favour of localUser.
  13. * (Internal) improved the way byte buffers are used to
  14. reduce array copying and clean up code
  15. * (Internal) Converted README, LICENCE and CHANGELOG to Asciidoc.
  16. == v1.0.1 (2019-03-10)
  17. * Fixed issue with very long packets not fitting in buffers
  18. after TLS decryption.
  19. * Improved error message when IrcClient.connect() is called
  20. while already connected
  21. * Made IrcClient.disconnect() block until the disconnect has
  22. been processed. This will be a very short period of time,
  23. and allows callers to immediately call connect() again
  24. afterwards if they wish
  25. * Fixed various issues with disconnecting TLS connections
  26. not behaving correctly
  27. == v1.0.0 (2019-03-09)
  28. * Replaced Ktor dependency with custom socket handling, which fixes
  29. fatal issue when connecting to servers over TLS that request a
  30. client certificate.
  31. * Added NicknameChangeRequired event for the case when a nickname is
  32. not allowed during connection and *MUST* be changed
  33. * BREAKING: Added 'PreferIPv6' behaviour config, defaulting to true.
  34. With this configuration KtIrc will try to use IPv6 if the server
  35. publishes AAAA records.
  36. * BREAKING: Default port is now 6697, TLS is enabled by default
  37. == v0.11.0 (2019-03-06)
  38. * Added SourcedEvent interface for events that have a user source attached
  39. * Added ChannelJoinFailed event
  40. * Added ChannelMembershipAdjustment interface for events that concern
  41. users joining/leaving channels
  42. * Added missing user parameter to ModeChangedEvent
  43. == v0.10.3 (2019-02-26)
  44. * Fix issue parsing CTCPs when the content contained multi-byte chars
  45. * Fixed multiple issues when receiving malformed input from the server:
  46. * Invalid server-time tags are now ignored and the current time used
  47. * PRIVMSGs, NOTICEs and TOPICs with no target/message are now ignored
  48. * CAPs with invalid or missing arguments are now ignored
  49. * Better handling for duplicate JOIN messages
  50. * Ignored messages are now logged more consistently
  51. == v0.10.2 (2019-02-25)
  52. * Fix handling of multiple long lines sometimes dropping part of the line
  53. * Support lines with 8191 bytes of tags, as allowed by the message-tags spec
  54. * Fix a few more instances of occasional ConcurrentModificationExceptions
  55. == v0.10.1 (2019-02-24)
  56. * Added NickChangeFailed event for when nicknames are in use, banned, etc
  57. * Added sendPart method
  58. * Fix occasional ConcurrentModificationException when adding state
  59. * (Internal) Moved message processors into their own package
  60. * (Internal) Added ExperimentalIrcClient interface for features not yet ready for release
  61. == v0.10.0 (2019-02-21)
  62. * Batch start and end events are no longer included in BatchReceived events
  63. * Batches now expose complete metadata from their start event
  64. * Added support for labelled-replies capability and label message tags
  65. * Added support for message-tags capability after it moved from draft
  66. * Added new methods for sending raw lines to the IRC server
  67. ** send(tagMap(...), command, arguments) replaces send(line)
  68. ** send(command, arguments) is available if no tags are to be sent
  69. ** the line is built automatically (with spaces/' :' added appropriately)
  70. ** send(line) is deprecated and will be removed after v1.0.0
  71. * Add 'alwaysEchoMessages' behaviour that makes it easier to deal with servers
  72. that don't support the echo message capability
  73. * Added TargetedEvent, a subclass of IrcEvent, for all events that are
  74. targeted to a user or channel
  75. * (Internal) Added annotation to track removal of deprecated methods
  76. * (Internal) Migrate unit tests to use Mockk instead of Mockito
  77. == v0.9.0 (2019-02-15)
  78. * Improve DSL for creating an IrcClient to allow parameters to be passed to server and profile
  79. e.g. IrcClient { server("irc.example.com", 6667) }
  80. * Add behaviour options
  81. ** requestModesOnJoin - automatically sends a MODE request when joining a channel
  82. * Events now have a `metadata` property instead of a `time` (and time is available in metadata)
  83. ** IrcEvent.time is now deprecated but will remain until after v1.0.0.
  84. ** Metadata now contains the message ID, if any.
  85. ** ActionReceived.messageId and MessageReceived.messageId are now deprecated, to be removed after v1.0.0.
  86. ** Metadata now contains the event's batch ID, if any.
  87. * Added support for batches
  88. ** All events in a batch are buffered until the batch is finished
  89. ** The events are then published together in a single `BatchReceived` event
  90. * Added support for CHGHOST messages
  91. * (Internal) Improve performance when the MessageHandler is finding a processor for a message
  92. * (Internal) Introduced event mutators
  93. ** Event mutators are now responsible for handling changing events in response to state
  94. e.g. ChannelFanOutMutator creates Channel* events for global quits/nick changes/etc
  95. ** Event handlers now just handle events, and don't return anything
  96. == v0.8.0 (2019-02-12)
  97. * Added support for SCRAM-SHA-1 and SCRAM-SHA-256 SASL mechanisms
  98. * Added MotdLineReceived event
  99. * Added topic events and state
  100. * Add utility method IrcClient.isChannel(String) to identify if a target is a channel or not
  101. * (Internal) Move event handlers into their own package
  102. == v0.7.0 (2019-02-07)
  103. * Fixed experimental API warnings when using IrcClient
  104. * BREAKING: IrcClients are now constructed using a DSL
  105. ** Users of the library no longer need to care about the implementing class
  106. ** Facilitates adding more options in the future without breaking existing implementations
  107. * SASL improvements
  108. ** The enabled mechanisms can now be configured (in the SASL DSL)
  109. ** Added support for EXTERNAL mechanism, disabled by default
  110. ** Now attempts to renegotiate if the server doesn't recognise the SASL mechanism that was tried
  111. * Added UserNickChanged and corresponding ChannelNickChanged events
  112. * Added ServerConnectionError, raised when connecting to the server fails
  113. * (Internal) Minor version updates for Gradle, Kotlin and JUnit
  114. == v0.6.0 (2019-02-06)
  115. * Changed USER command to not send the server name, per modern standards
  116. * Added support for SASL authentication (with PLAIN mechanism)
  117. * Removed some unused test code
  118. * Fixed handling of user mode changes on channels (op/deop/etc)
  119. * Message extensions:
  120. ** Added support for IRCv3 message tags v3.3
  121. ** Exposed message IDs in MessageReceived and ActionReceived events
  122. ** When sending a message you can now indicate what it is in reply to
  123. ** Added sendTagMessage() to send message tags without any content
  124. ** The reply() utility automatically marks messages as a reply
  125. ** Added react() utility to send a reaction client tag
  126. * State is now reset when the client is disconnected, so you can immediately reconnect
  127. * (Internal) improved how coroutines and channels are used in LineBufferedSocket
  128. == v0.5.0 (2019-02-05)
  129. * Server state:
  130. ** Added ServerConnecting and ServerDisconnected events
  131. ** Server status now starts as Disconnected rather than Connecting
  132. ** Improved error message when features are of an unexpected type
  133. * Channel modes:
  134. ** CHANMODES feature is now stored as an array, not a single comma-separated string
  135. ** Added ChanModeType enum, and method in ServerState to get the type of a mode
  136. ** Added ModeChanged event, for user and channel mode changes and discovery
  137. ** Added modes and modesDiscovered to ChannelState
  138. * Other new events:
  139. ** Added MotdFinished event
  140. ** Added UserAccountChanged event
  141. ** Added ChannelUserKicked event
  142. ** Added NoticeReceived event
  143. ** Added CtcpReplyReceived event
  144. * Improved some documentation
  145. == v0.4.0 (2019-02-04)
  146. * Added CtcpReceived and ActionReceived events
  147. * Added sendCtcp and sendAction message builders
  148. * Fix issue with messages being sent out of order, which sometimes caused problems connecting to passworded servers
  149. * Added 'network' server feature
  150. * Added serverName field to ServerState
  151. == v0.3.1 (2019-02-04)
  152. * Added more documentation to public methods/classes
  153. * Fixed exception when sending multiple lines at once (e.g. when connecting!)
  154. == v0.3.0 (2019-02-03)
  155. * Simplified how messages are constructed.
  156. ** Instead of: client.send(joinMessage("#channel"))
  157. ** Now use: client.sendJoin("#channel")
  158. * Added reply utility to easily send replies to message events
  159. * Server state improvements:
  160. ** Added status field to ServerState
  161. ** ServerConnected event is emitted as soon as the socket is connected
  162. ** ServerReady event is emitted after logging in, negotiating, etc
  163. * Added extra debugging to show what type of events are being dispatched
  164. * Added ChannelQuit event, raised for each channel a user is in when they quit
  165. * (Internal) Event handlers can now return more events to emit
  166. == v0.2.1 (2019-02-03)
  167. * Added documentation and reduced visibility of some internal methods/classes
  168. * (Internal) Enabled Travis, Codacy and Coveralls
  169. == v0.2.0 (2019-02-02)
  170. * Added support for connecting over TLS
  171. * BREAKING: Simplified how event handlers are registered
  172. * BREAKING: Improved use of coroutines so users don't have to worry about them
  173. * (Internal) Upgraded to Gradle 5.1.1
  174. == v0.1.0 (2019-02-01)
  175. * Initial release