gems net-imap 0.4.0
v0.4.0

latest releases: 0.5.10, 0.5.9, 0.4.22...
24 months ago

What's Changed

Most notably, support has been added for the SASL-IR, ENABLE, and UTF-8=ACCEPT extensions, and for many SASL mechanisms: EXTERNAL, ANONYMOUS, OAUTHBEARER, SCRAM-SHA-1, and SCRAM-SHA-256.

๐Ÿ’ฅ Breaking changes

  • ๐Ÿ’ฅ โฌ†๏ธ Drop v2.6 support; Require v2.7.3; Use "..." arg by @nevans in #89
    The test suite passes under ruby 2.7, although it does print some warnings for experimental pattern matching.
  • ๐Ÿ’ฅ Return an empty array (rather than nil) when the server doesn't send any responses, by @nevans in #192
    This can affect list, xlist, getquota, lsub, expunge, uid_expunge, fetch, uid_fetch, store, and uid_store.
  • ๐Ÿ’ฅ The #extension attribute on BODYSTRUCTURE structs no longer starts with location. The location is now parsed directly and available from the BodyStructure#location attribute. by @nevans in #113

โœจ Added

Improved IMAP4rev1 protocol and extension support

  • โœจ Add missing "location" BODYSTRUCTURE extension data by @nevans in #113
  • โœจ Cache server capabilities and add #capable?(name) by @nevans in #156
  • โœจ Add support for ENABLE (RFC 5161) by @arnt in #98
  • โœจ Parse UTF-8 encoded strings, for UTF8=ACCEPT and IMAP4rev2 by @nevans in #111
    • Minor bits for UTF8=ACCEPT by @arnt in #114
  • โœจ๐Ÿ”’ Add SASL-IR support by @nevans in #90
    • ๐Ÿ› Fix empty SASL-IR to send "=" by @nevans in #180

Improved SASL support

  • ๐Ÿ”’ Add SASL OAUTHBEARER mechanism by @nevans in #171
  • ๐Ÿ”’ Add SASL ANONYMOUS mechanism by @nevans in #169
  • ๐Ÿ”’ Add SASL EXTERNAL mechanism by @nevans in #170
  • โœจ Make SASL.authenticator case insensitive by @nevans in #167
    • ๐Ÿ› Fix authenticate using Symbol mechanism name by @nevans in #186
  • โœจ Add attr_readers to SASL mechanisms by @nevans in #176
  • โœจ Allow keyword args on all SASL authenticators by @nevans in #177
  • ๐Ÿ”’ Verify SASL authentication has completed by @nevans in #179
  • ๐Ÿ”’ Add SASL SCRAM-SHA-* mechanisms by @nevans in #172
  • ๐Ÿ”’ SASL PLAIN: Raise ArgumentError for conflicts by @nevans in #181
  • โœจ Minor updates to SASL::Authenticators API by @nevans in #184

Improved Net::IMAP client API

  • โœจ Add attr_readers for host and port by @nevans in #92
  • ๐Ÿงต New thread-safe API for #responses and add #clear_responses by @nevans in #93
  • โœจ Add greeting code data to #responses by @nevans in #94
  • โœจ Add #capable?(name), #auth_capable?(name), #auth_mechanisms, #capabilities, etc by @nevans in #156
  • ๐Ÿ”’ Add #tls_verified? by @nevans in #91
  • ๐Ÿ”’ Add ssl_ctx and ssl_ctx_params attr readers by @nevans in #174
  • โœจ Add #logout! to combine logout and disconnect by @nevans in #178

StringPrep profiles

  • โœจ Add generic stringprep algorithm and the "trace" profile by @nevans in #101
  • โœจ Add Nameprep stringprep profile by @nevans in #83

๐Ÿ—‘๏ธ Deprecated

  • ๐Ÿ—‘๏ธ Deprecated #client_thread by @nevans in #93
  • ๐Ÿ—‘๏ธ๐Ÿงต Soft-deprecation of current #responses API by @nevans in #93
    The current API is not thread-safe. It is documented as deprecated, but no warning message is logged yet.
  • ๐Ÿ—‘๏ธ Deprecated BodyTypeAttachment and BodyTypeExtension structs @nevans in #113
  • ๐Ÿ—‘๏ธ Deprecate backward compatible parameters to new and starttls by @nevans in #175
    Net::IMAP.new uses keyword parameters for its options now.
    Sending a port or an options hash as the second argument is documented as obsolete, but doesn't print warnings yet.
    Any other positional parameters are deprecated and will print warnings.

๐Ÿ› Fixed

  • ๐Ÿ› Fix NAMESPACE parsing (and other โ™ป๏ธ refactoring) by @nevans in #112
  • ๐Ÿ› Fix BODYSTRUCTURE parser bugs by @nevans in #113
    • More strict about where NIL is not allowed, e.g: number, envelope, and body. Ignoring these uncommon bugs made it difficult to workaround much more common server bugs elsewhere.
    • BodyTypeAttachment and BodyTypeExtension won't be returned any more.
    • Better workaround for multipart parts with... zero parts.
    • ๐Ÿ› Fix typo in uncommon BODYSTRUCTURE parsing code by @nevans in #185
  • ๐Ÿงต Synchronize @responses update in thread_internal by @nevans in #116
  • ๐Ÿ› Add missing lookahead_case_insensitive_string by @nevans in #144
  • Decode UTF-7 more strictly by @nobu in #152
  • Fix for Digest MD5 bad challenges by @nobu in #160
  • ๐Ÿฅ… Work around missing server responses by @nevans in #192

โ™ป๏ธ Changed

  • ๐Ÿ”Ž Improve parse error debugging by @nevans in #105
  • ๐Ÿšš Move the StringPrep module out of SASL by @nevans in #100
  • โœ… ๐Ÿ“ˆ Move most parser tests to yaml, add more tests, and add parser benchmarks by @nevans in #103
  • ๐Ÿงช Add Regexp.linear_time? tests; โšกโœ… Update BEG_REGEXP to pass by @nevans in #145
  • โšกโœ… Update more regexps to run in linear time by @nevans in #147
  • ๐Ÿงช Add experimental new FakeServer for tests by @nevans in #157
  • โฑ๏ธ Add Timeout to several existing SSL tests by @nevans in #163
  • โ™ป๏ธ Use Net::IMAP::FakeServer::TestHelper by @nevans in #164
  • ๐Ÿšš Move and rename SASL authenticators by @nevans in #165
  • โ™ป๏ธ Simplify lazy-loaded SASL::{Name}Authenticator registration by @nevans in #168

๐Ÿ“š Documentation

  • ๐Ÿ“š Add "rake ghpages" for publishing rdoc by @nevans in #102
  • ๐Ÿ“š Auto-deploy GitHub Pages from an action by @nevans in #135
  • ๐Ÿ“š More rdoc updates, all related to capabilities by @nevans in #159
  • SASL doc updates by @nevans in #166
  • ๐Ÿ“š Update SASL docs and add attr_readers by @nevans in #176
  • ๐Ÿ“š Update examples with modern SASL mechanisms by @nevans in #182

Miscellaneous

New Contributors

Full Changelog: v0.3.7...v0.4.0

Don't miss a new net-imap release

NewReleases is sending notifications on new releases.