Releases: ruby/net-imap
Releases · ruby/net-imap
v0.4.1
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 byNet::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
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 affectlist,xlist,getquota,lsub,expunge,uid_expunge,fetch,uid_fetch,store, anduid_store. - 💥 The
#extensionattribute on BODYSTRUCTURE structs no longer starts withlocation. The location is now parsed directly and available from theBodyStructure#locationattribute. 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=ACCEPTandIMAP4rev2by @nevans in #111 - ✨🔒 Add
SASL-IRsupport by @nevans in #90
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
- ✨ 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
hostandportby @nevans in #92 - 🧵 New thread-safe API for
#responsesand add#clear_responsesby @nevans in #93 - ✨ Add greeting code data to
#responsesby @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_ctxandssl_ctx_paramsattr 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_threadby @nevans in #93 - 🗑️🧵 Soft-deprecation of current
#responsesAPI by @nevans in #93
The current API is not thread-safe. It is documented as deprecated, but no warning message is logged yet. - 🗑️ Deprecated
BodyTypeAttachmentandBodyTypeExtensionstructs @nevans in #113 - 🗑️ Deprecate backward compatible parameters to
newandstarttlsby @nevans in #175
Net::IMAP.newuses 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
@responsesupdate 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
- Adds Ruby 3.2 to the CI matrix. by @petergoldstein in #99
- Bump ruby/setup-ruby from 1.143.0 to 1.144.0 by @dependabot in #138
- ✅ Add RFC3454 data, to support offline testing by @nevans in #137
- ⬆️ Bump actions/deploy-pages from 1 to 2 by @dependabot in #140
- ⬆️ Bump ruby/setup-ruby from 1.144.0 to 1.144.1 by @dependabot in #139
- ⬆️ Bump ruby/setup-ruby from 1.144.1 to 1.144.2 by @dependabot in #141
- Bump ruby/setup-ruby from 1.144.2 to 1.145.0 by @dependabot in #142
- Bump ruby/setup-ruby from 1.145.0 to 1.146.0 by @dependabot in #143
- Bump ruby/setup-ruby from 1.146.0 to 1.148.0 by @dependabot in #148
- Bump ruby/setup-ruby from 1.148.0 to 1.149.0 by @dependabot in #149
- Use test-unit-ruby-core from vendored code by @hsbt in #151
- Bump ruby/setup-ruby from 1.149.0 to 1.150.0 by @dependabot in #150
- Bump ruby/setup-ruby from 1.150.0 to 1.151.0 by @dependabot in #153
- ⬆️ Bump ruby/setup-ruby from 1.151.0 to 1.152.0 by @dependabot in #155
- Bump actions/upload-pages-artifact from 1 to 2 by @dependabot in #158
- Bump actions/checkout from 3 to 4 by @dependabot in #173
New Contributors
- @petergoldstein made their first contribution in #99
- @arnt made their first contribution in #114
Full Changelog: v0.3.7...v0.4.0
v0.3.7
v0.3.6
- 🐛 Fixes file permissions regression in v0.3.5 release, reported by @aaronjensen in #154
v0.3.5
Full Changelog: v0.3.4...v0.3.5
- 📚 Fix #response documentation error, by @nevans in 87ba74e
- ✅ Add RFC3454 data, to support offline testing, by @nevans in #137
- Adds Ruby 3.2 to the CI matrix, by @petergoldstein in #99
- Use reusing workflow, by @hsbt in #151
- Decode UTF-7 more strictly, by @nobu in #152
- ⬇️ Continue testing 0.3.x branch against ruby 2.6, by @nevans in 115d190
- ✅ Fix decode utf-7 test for ruby 2.6, by @nevans in 7a60c8f
- 🐛 Fix XOAUTH2 authenticator for ruby 2.6, by @nevans in bd4faa0
v0.3.4
v0.3.3
v0.3.2
What's Changed
- Support
UIDPLUSextension by @hoffi in #65 - Fixes "bundle exec rake" clash with test/unit by @nevans in #67
- Fix some UIDPLUS issues by @nevans in #69
- Fixes date-time format, and adds decode_datetime by @nevans in #66
- Add SASLprep. Code generated & tested with RFC3454 by @nevans in #64
- Add the UNSELECT command by @nevans in #72
- 🐛 Fix mailbox attrs by @nevans in #73
- RFCs and references by @nevans in #71
- Nodocs and remove warning by @nevans in #70
- ResponseParser docs by @nevans in #76
- Response Data docs by @nevans in #75
New Contributors
Full Changelog: v0.3.1...v0.3.2
v0.3.1
v0.3.0
What's Changed
- Added dependabot.yml for actions by @hsbt in #59
- Bump actions/checkout from 2 to 3 by @dependabot in #60
- Adding RFC licenses by @nevans in #57
- Warn when using deprecated SASL mechanisms by @nevans in #62
New Contributors
- @dependabot made their first contribution in #60
Full Changelog: v0.2.3...v0.3.0