Skip to content

Releases: ruby/net-imap

v0.4.1

09 Oct 21:13

Choose a tag to compare

What's Changed

  • 📚 Fix a few documentation mistakes by @nevans in #193
  • 🔒⚗️ Add experimental SASL::ClientAdapter by @nevans in #183
    This code is not yet used by Net::IMAP#authenticate (see #194). It is released in experimental form in order to simplify using it from other projects, to facilitate collaborating and iterating on a broadly useful API.

Full Changelog: v0.4.0...v0.4.1

v0.4.0

04 Oct 13:56

Choose a tag to compare

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

v0.3.7

26 Jul 16:18
v0.3.7

Choose a tag to compare

What's Changed

  • 🔒️ Backport: Fix for Digest MD5 bad challenges by @nobu in #160
    • PR for backport is #161

Full Changelog: v0.3.6...v0.3.7

v0.3.6

12 Jun 19:31

Choose a tag to compare

v0.3.5

12 Jun 17:30
v0.3.5

Choose a tag to compare

Full Changelog: v0.3.4...v0.3.5

v0.3.4

18 Jan 04:53
602b1e7

Choose a tag to compare

What's Changed

Full Changelog: v0.3.3...v0.3.4

v0.3.3

21 Dec 05:18
217097b

Choose a tag to compare

What's Changed

  • Revert "Fixes "bundle exec rake", clash with test/unit" by @znz in #88

New Contributors

  • @znz made their first contribution in #88

Full Changelog: v0.3.2...v0.3.3

v0.3.2

09 Dec 20:27
a257548

Choose a tag to compare

What's Changed

New Contributors

  • @hoffi made their first contribution in #65

Full Changelog: v0.3.1...v0.3.2

v0.3.1

17 Nov 11:33
174e35c

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.3.0...v0.3.1

v0.3.0

17 Nov 11:33
64b75b6

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.2.3...v0.3.0