Releases: ruby/net-imap
Releases · ruby/net-imap
v0.5.1
What's Changed
Added
- ✨ Add
SequenceSet#deconstruct
by @nevans in #343 - ✨ Coerce
Set
,:*
,#to_sequence_set
search args into sequence-set by @nevans in #351 - ✨ Enable parenthesized lists in search criteria by @nevans in #345
Fixed
- 🐛 Ensure
set
is loaded in ruby 3.1 by @nevans in #342 - 🐛 Fix
SequenceSet.try_convert
by @nevans in #349
Documentation
Other Changes
Miscellaneous
- Make simplecov-json as optional dependency by @hsbt in #344
- Removed needless workaround by @hsbt in #346
Full Changelog: v0.5.0...v0.5.1
v0.4.18
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-name
parser (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
Enumerables
will only be converted if they implement#to_sequence_set
.
- 🔥 Remove deprecated
#client_thread
attr_reader by @nevans in #321
#client_thread
was deprecated byv0.4.0
. - 🔥 Drop deprecated BodyType structs by @nevans in #323
These structs were deprecated byv0.4.0
.
Added
- ✨ Add
#extract_responses
method by @nevans in #330 Also backported tov0.4.17
. - ✨ New config option to return frozen dup from
#responses
by @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
LOGINDISABLED
requirement by @nevans in #307
To workaround buggy servers,config.enforce_logindisabled
can be set to:when_capabilities_cached
orfalse
. - 🔒 SASL DIGEST-MD5: realm, host, service_name, etc by @nevans in #284
Please note that theDIGEST-MD5
SASL mechanism is insecure and deprecated.
Deprecations
- 🔊 Warn about deprecated
#responses
usage by @nevans in #97
To silence these warnings:- pass a block to
#responses
(supported sincev0.4.0
), - pass a response type to
#responses
for a frozen copied array (sincev0.4.17
), - set
config.responses_without_block
to:silence_deprecation_warning
(sincev0.4.13
), - set
config.responses_without_block
to:frozen_dup
for a frozen copy (sincev0.4.17
), - use
#clear_responses
instead (sincev0.4.0
), - use
#extract_responses
instead (sincev0.4.17
).
- pass a block to
- 🗑️ Deprecate
MessageSet
by @nevans in #282
MessageSet
was 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: :deprecated
to calls towarn
by @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_responses
method by @nevans in #337 (backports #330) - ✨ New config option to return frozen dup from
#responses
by @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#with
by @nevans in #300 - 🔧 Add versioned defaults by @nevans in #302
- 🔧 Add
Config#load_defaults
by @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_timeout
by @nevans in #291Net::IMAP.config
for global configuration. This enables global defaults for previously client-local configuration:open_timeout
idle_response_timeout
- config keyword parameters for
Net::IMAP.new
Net::IMAP#config
for 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_ir
by @nevans in #294 - 🔊 Add config option for
responses_without_block
by @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