Releases: ruby/net-imap
Releases · ruby/net-imap
v0.5.0
What's Changed
Breaking Changes
- 💥 Drop ruby 2.7 and 3.0 support, and require ruby 3.1 by @nevans in #276
- 💥⚡ Simplify
header-fld-nameparser (backward incompatible) by @nevans in #216
For example,HEADER.FIELDS (Content-Type)andHEADER.FIELDS ("Content-Type")are semantically identical, and a server may choose to return the quoted version.- Before this change, the FetchData attr header name would be quoted if the server sent the field name quoted.
- After this change, the header field names will always be unquoted by the parser, so the result will always available via
fetch_data.header_fields("Content-Type")orfetch_data.attr_upcase["HEADER.FIELDS (CONTENT-TYPE)"].
- 💥 Replace MessageSet with SequenceSet by @nevans in #282
Most of the changes are bugfixes or allow something new to work that didn't work before. See the PR for more details.
This affects#search,#uid_search,#sort,#uid_sort,#fetch,#uid_fetch,#store,#uid_store,#copy,#uid_copy,#move,#uid_move, and#uid_expunge. - 💥 SequenceSet input validation for Set, Array, and enumerables by @nevans in #319
- Array inputs can still be deeply nested. This is unchanged.
- Set inputs can only contain integers and
"*"or:*, to be consistent withSequenceSet#to_set. - Other
Enumerableswill only be converted if they implement#to_sequence_set.
- 🔥 Remove deprecated
#client_threadattr_reader by @nevans in #321
#client_threadwas deprecated byv0.4.0. - 🔥 Drop deprecated BodyType structs by @nevans in #323
These structs were deprecated byv0.4.0.
Added
- ✨ Add
#extract_responsesmethod by @nevans in #330 Also backported tov0.4.17. - ✨ New config option to return frozen dup from
#responsesby @nevans in #334 Also backported tov0.4.17. - 🥅 Improve SequenceSet frozen errors by @nevans in #331 Also backported to
v0.4.17. - 📚 SequenceSet API is considered stable now by @nevans in #318
- 🔒 Enforce
LOGINDISABLEDrequirement by @nevans in #307
To workaround buggy servers,config.enforce_logindisabledcan be set to:when_capabilities_cachedorfalse. - 🔒 SASL DIGEST-MD5: realm, host, service_name, etc by @nevans in #284
Please note that theDIGEST-MD5SASL mechanism is insecure and deprecated.
Deprecations
- 🔊 Warn about deprecated
#responsesusage by @nevans in #97
To silence these warnings:- pass a block to
#responses(supported sincev0.4.0), - pass a response type to
#responsesfor a frozen copied array (sincev0.4.17), - set
config.responses_without_blockto:silence_deprecation_warning(sincev0.4.13), - set
config.responses_without_blockto:frozen_dupfor a frozen copy (sincev0.4.17), - use
#clear_responsesinstead (sincev0.4.0), - use
#extract_responsesinstead (sincev0.4.17).
- pass a block to
- 🗑️ Deprecate
MessageSetby @nevans in #282
MessageSetwas only intended for internal use, and all internal usage has been replaced.
Fixed
- 🐛 Fix #send_data to send DateTime as time by @taku0 in #313
Also backported tov0.4.15. - 🐛 Fix #header_fld_name to handle quoted strings correctly by @taku0 in #315
Also backported tov0.4.16. - 🐛 Fix SequenceSet[input] when input is a SequenceSet by @nevans in #326
Also backported tov0.4.17. - 🐛 Fix Set inputs for SequenceSet by @nevans in #332
This bug was introduced by #319, which had not been previously released.
Other Changes
- 🔧 Update default config for v0.5 by @nevans in #305
- ♻️ Use Integer.try_convert (new in ruby 3.1+) by @nevans in #316
- 🗑️ Add
category: :deprecatedto calls towarnby @nevans in #322 - ♻️ Extract SASL::Authenticators#normalize_name by @nevans in #309
- 🔒 📚 Improvements and docs for SASL::ClientAdapter by @nevans in #320
- ♻️ Use SASL::ClientAdapter by @nevans in #194
Documentation
- 📚 Update Config rdoc for v0.5 by @nevans in #306
- 📚 Update SASL documentation by @nevans in #308
- 📚 SequenceSet API is considered stable now by @nevans in #318
- 🔒 📚 Improvements and docs for SASL::ClientAdapter by @nevans in #320
Miscellaneous
- ✅ Add a Mutex to FakeServer (for tests only) by @nevans in #317
Also backported tov0.4.17. - ⬆️ Bump step-security/harden-runner from 2.8.1 to 2.9.0 by @dependabot in #311
- ⬆️ Bump step-security/harden-runner from 2.9.0 to 2.9.1 by @dependabot in #312
- Bump step-security/harden-runner from 2.9.1 to 2.10.1 by @dependabot in #325
- 🔨📚 Fix rdoc => ghpages workflow by @nevans in #335
- ✅ Fix GH action for rubygems Trusted Publishing by @nevans in #340
Also backported tov0.4.17. - ✅ Setup simplecov by @nevans in #328
New Contributors
Full Changelog: v0.4.14...v0.5.0
(Note that v0.4.x releases since v0.4.14 have used the v0.4-stable branch.)
v0.4.17
What's Changed
Added features
- ✨ Add
#extract_responsesmethod by @nevans in #337 (backports #330) - ✨ New config option to return frozen dup from
#responsesby @nevans in #339 (backports #334)
This will become the default inv0.6.0.
Bug fixes
Other Changes
Miscellaneous
- ✅ Add a Mutex to FakeServer (for tests only) by @nevans in #336 (backports #317)
- ✅ Fix GH action for Rubygems Trusted Publishing by @nevans in #341 (backports #340)
Full Changelog: v0.4.16...v0.4.17
v0.4.16
v0.4.15
v0.4.14
What's Changed
Added
- ✨ Add Config methods:
#to_h,#update, and#withby @nevans in #300 - 🔧 Add versioned defaults by @nevans in #302
- 🔧 Add
Config#load_defaultsby @nevans in #301
Fixed
- 🐛 Fix Config#clone to clone internal data struct by @nevans in #303
- 🔇 Fix ruby 2.7 warnings by @nevans in #304
Full Changelog: v0.4.13...v0.4.14
v0.4.13
What's Changed
✨ Added features
- 🔧 Add Config class for
debug,open_timeout, andidle_response_timeoutby @nevans in #291Net::IMAP.configfor global configuration. This enables global defaults for previously client-local configuration:open_timeoutidle_response_timeout
- config keyword parameters for
Net::IMAP.new Net::IMAP#configfor client configuration. This enables client-local overrides of previously global configuration:debug
- ♻️ Minor Config class tidy up by @nevans in #295
- 🔧 Add config option for
sasl_irby @nevans in #294 - 🔊 Add config option for
responses_without_blockby @nevans in #293
📖 Documentation
- 📖 Improve #idle and #idle_done rdoc by @nevans in #290
- 📚 Update rdoc for Config and related updates by @nevans in #297
- 📚 Improve rdoc for Net::IMAP.new ssl: params by @nevans in #298
- 📚 Improve Config class rdoc by @nevans in #296
🛠️ Other changes
- 📦 Don't keep .github, .gitignore, .mailmap in gem by @nevans in #299
- ⬆️ Bump step-security/harden-runner from 2.8.0 to 2.8.1 by @dependabot in #292
Full Changelog: v0.4.12...v0.4.13
v0.4.12
What's Changed
- 📚 Fix many rdoc spelling mistakes by @nevans in #279
- 📦 Update workflow with configure_trusted_publisher by @nevans in #280
- 🔍 Simplify handling of ResponseParser test failures by @nevans in #281
- ⬆️ Bump step-security/harden-runner from 2.7.1 to 2.8.0 by @dependabot in #289
- Clarify the license of net-imap by @shugo in #275
Full Changelog: v0.4.11...v0.4.12
v0.4.11
What's Changed
Server workarounds
- Consider extra empty space in BODYSTRUCTURE by @gaynetdinov in #271
Miscellaneous
- 🐛 Fix parser benchmarks generation by @nevans in #266
- ✅ Add basic test for SEARCH / UID SEARCH command by @nevans in #267
- 📧 Update gem email address and git mailmap by @nevans in #264
- ✅ Update Github test workflow name by @nevans in #268
- ⬆️ Bump actions/configure-pages from 4 to 5 by @dependabot in #270
- 🔧🔒 Configure RubyGems Trusted Publishing by @nevans in #265
New Contributors
- @gaynetdinov made their first contribution in #271
Full Changelog: v0.4.10...v0.4.11
v0.4.10
What's Changed
Fixes
- 🐛 Do not automatically freeze SearchResult by @nevans in #263
This fixes a backwards incompatible change inv0.4.8that affected themailgem.
See #262, reported by @stanley90.
Documentation
- 📚 Workaround rdoc method visibility issue by @nevans in #257
- 📚 Workaround rdoc issue with
:yield:and visibility by @nevans in #258
Miscellaneous
- ⬆️ Bump actions/upload-pages-artifact from 2 to 3 by @dependabot in #256
- ⬆️ Bump actions/deploy-pages from 3 to 4 by @dependabot in #255
- Renew test certificates by @sorah in #259
- Add base64 dev dependency by @hsbt in #261
- Import sample code from ruby/ruby by @hsbt in #260
New Contributors
Full Changelog: v0.4.9...v0.4.10