v0.4.0 1 year, 8 months ago

soju v0.4.0

Highlights for this release:

- Add support for the new soju.im/read extension
- Add support for proxying sasl and draft/account-registration after
  connection registration
- Improved BouncerServ commands: make network argument optional, add
  "sasl status"
- Fallback to alternative nick if unavailable (and use MONITOR to roll
  back to the preferred nick as soon as possible)
- Add exponential backoff when re-connecting to upstream servers

Full commit history below.

Chris Howey (1):
      bump required go version to 1.15

Simon Ser (76):
      Add missing account-notify to permanentUpstreamCaps
      Abort SASL if in-progress while completing registration
      Use RPL_LOGGEDIN/OUT to mirror upstream status
      Send RPL_LOGGEDIN with bouncer account in multi-upstream mode
      Add support for post-connection-registration upstream SASL auth
      Remove sasl cap after registration if network doesn't support it
      Return more descriptive auth failure errors
      downstream: improve unmarshalEntityNetwork error message
      doc/soju.1: add `network create` example
      Add support for draft/account-registration proxying
      Add "sasl status" command
      Validate address in user.checkNetwork
      Add context to connectToUpstream
      Fix upstream gauge metric
      Add soju_upstream_connect_errors_total metric
      Add exponential backoff when re-connecting to upstream
      Don't retry connecting on permanent failure
      Mark ACCOUNT_REQUIRED error as permanent connection failure
      Cancel pending commands on downstream disconnect
      Add context to upstreamConn.handleMessage
      Add context to network.storeClientDeliveryReceipts
      Use golang.org/x/time/rate
      Avoid forwarding MONITOR requests if upstream doesn't support it
      Fallback to alt nick
      Read nickname from RPL_WELCOME
      Stop incrementing hopcount in RPL_WHOREPLY
      Remove Logger.Print
      Add Logger.Debugf
      Downgrade conn log messages to debug
      Improve msgStore.Append log message wording
      Add username to downstreamConn log messages
      Disallow ',' in nicknames
      Use more descriptive errors when aborting pending commands
      Improve error message when downstream doesn't authenticate
      Use dc.nick instead of "*" for RPL_* messages
      service: send summary when executing "server notice"
      server: cleanup user in defer
      Add context to {conn,upstreamConn}.SendMessage
      Don't forward duplicate JOIN commands
      Block RPL_{CREATIONTIME,TOPICWHOTIME} for detached channels
      Add support for downstream multi-line AUTHENTICATE commands
      Handle upstream multi-line SASL
      Add context to upstreamConn.handleCapAck
      Don't send RPL_NOTOPIC on JOIN
      Retry on temporary net.Listener failure
      Fix incorrect listen addr in error message
      Drop user.forEachNetwork
      Ensure consistent network ordering
      Fix capitalization of handleServiceSASLStatus
      service: switch to -network flag for certfp and sasl commands
      service: make name arg optional for network commands
      Forbid empty and flag-looking network names
      db_postgres: use enum for sasl_mechanism
      makefile: switch to BSD/GNU make
      Add context to upstreamConn.runUntilRegistered
      Add context to upstreamConn.register
      Refactor generateWHOXReply
      Fix flags variable name in RPL_WHOREPLY handler
      doc: move read spec to ext/
      Ignore READ commands for service
      Introduce formatServerTime
      irc: add isHighlight tests
      irc: simplify isHighlight
      msgstore_fs: fix direct message targets
      downstream: panic when registering twice
      downstream: be less strict when picking up client name
      downstream: fail on client or network name mismatch
      Upgrade dependencies
      downstream: fix network name msimatch check being too strict
      downstream: re-format illegalNickChars doc comment
      downstream: disallow '.' in nicknames
      doc/ext: add README
      contrib/clients: warn about catgirl
      contrib/clients: add goguma
      db: allow registering multiple metrics collectors
      db_postgres: report network metrics with hostname label

Theodor Thornhill (1):
      contrib/clients: Add information about emacs irc clients

delthas (2):
      Fix echo-message for TAGMSG
      Add support for the wip soju.im/read capability and READ command