Releases: ruby/net-imap
v0.6.2
What's Changed
Fixed
- 🐛 Fix
SequenceSet#delete?(num..num)to return set by @nevans in #583 - 🐛 Fix
#responses()freezing internal arrays by @nevans in #587, reported by @yurikoval in #581
Full Changelog: v0.6.1...v0.6.2
v0.6.1
What's Changed
Fixed
Miscellaneous
- ⬆️ Bump step-security/harden-runner from 2.13.3 to 2.14.0 by @dependabot[bot] in #579
Full Changelog: v0.6.0...v0.6.1
v0.5.13
What's Changed
Fixed
- 🐛 Fix
SequenceSet#delete?(num..num)to return set (backport to 0.5) by @nevans in #585 - 🐛 Fix
SequenceSet#max(n)whencardinality < n <= size(backport to 0.5) by @nevans in #586 - 🐛 Fix
config.responses_without_block = :frozen_dup(backport to 0.5) by @nevans in #588, reported by @yurikoval in #581
Documentation
Other Changes
- ♻️ Refactor
Config.versioned_defaultsto reduce merge conflicts (backport to 0.5) by @nevans in #584
Miscellaneous
Full Changelog: v0.5.12...v0.5.13
v0.6.0
What's Changed
Breaking Changes
- 🔧 Update default config for
v0.6by @nevans in #539responses_without_blockchanged from:warnto:frozen_dupparser_use_deprecated_uidplus_datachanged from:up_to_max_sizetofalse(and is deprecated)parser_max_deprecated_uidplus_data_sizechanged from100to0(and is deprecated)
- 🔥 Use psych (>= 5.2.5) for encoding Data objects by @nevans in #543
This changes the YAML tag forDatasubclasses fromruby/object:Net::IMAP::DataSubclasstoruby/data:Net::IMAP::DataSubclass. YAML dumped by earliernet-imapversions may not load correctly. Psych >= 5.2.5 is required to dump these objects correctly. - 💥 Require ruby >= 3.2 (drop support for 3.1) by @nevans in #538
- 💥✨ Change
SequenceSet#sizeto count*and repeated numbers by @nevans in #564
SequenceSetis used to represent both sorted sets and ordered lists (which may contain duplicates). Members are non-zero UInt32 numbers, but"*"has special meaning as "the number corresponding to the last mailbox entry". So there are four different ways to count the members of aSequenceSet.
Previously,#sizewas an alias for#count. Now it differs in both relevant aspects.*is a unique member*is treated like 2³² - 1distinct set members #cardinality#countordered list, including duplicates #size#count_with_duplicates - 🔥 Remove deprecated UIDPlusData class by @nevans in #540
UIDPlusDatawas deprecated by v0.5.6.AppendUIDDataorCopyUIDDatawill always be returned instead. - 🔥 Delete deprecated
MessageSetby @nevans in #573
MessageSetwas deprecated by v0.5.0. UseSequenceSetinstead. - 💥 Do not include
OpenSSLandOpenSSL::SSLmodules intoNet::IMAPby @nevans in #533
This only affects the ability to use OpenSSL constants from theNet::IMAPnamespace. - 💥 Don't set
verify_callbacktoVerifyCallbackProcby @nevans in #534
This functionality was never documented and is redundant with theverify_callbackoption.
Deprecated
- Deprecated config options for UIDPlusData in #540
Theparser_use_deprecated_uidplus_dataandparser_max_deprecated_uidplus_data_sizeconfig options will be removed in v0.7.0. They are kept for backward compatibility, but they do not affect response parser results. Whenparser_use_deprecated_uidplus_datais changed from the default value (false), deprecation warnings are printed when parsingAPPENDUIDorCOPYUIDresponse codes.
Added
- 🔒 Add
when_capabilities_cachedoption forConfig#sasl_irby @nevans in #561 Net::IMAP::ConfigimprovementsNet::IMAP::SequenceSetimprovements- ✨ Add
SequenceSet#intersect!for in-place setANDby @nevans in #549 - ✨ Add
SequenceSet#xor!for in-place setXORby @nevans in #550 - ♻️ Coalesce entries in
SequenceSet#appendby @nevans in #553 - ✨ Add
SequenceSet#normalized?by @nevans in #558 - ✨ Add
SequenceSet#cardinalitymethod by @nevans in #563 - 💥✨ Change
SequenceSet#sizeto count*and repeated numbers by @nevans in #564
- ✨ Add
Net::IMAP::NumValidatorimprovements
Documentation
- 📚 Improve rdoc example for
#uid_fetchwithpartialby @nevans in #532 - 📚 Document SearchResult/ESearchResult compatibility by @nevans in #559
- 📚 Minor rdoc formatting fixes by @nevans in #560
Other Changes
- 🔥 Drop
Datapolyfill by @nevans in #541
This was only used for ruby 3.1, which is no longer supported. So this is not considered a breaking change. - ♻️ Refactor Config.versioned_defaults to reduce merge conflcts by @nevans in #544
- Improved
Net::IMAP::SequenceSetperformance- ⚡️ Don't memoize
SequenceSet#stringon normalized sets by @nevans in #554 - ⚡ Faster
SequenceSet#normalizewhen frozen by @nevans in #556 - ⚡️ Faster
SequenceSet#full?by @nevans in #565 - ⚡️ Slightly faster
SequenceSet#xorby @nevans in #567 - ⚡ Avoid allocating arrays for SequenceSet bsearch (♻️ extract abstract strategy methods) by @nevans in #569
- ♻️ Rename
SequenceSetinternals by @nevans in #562 - ♻️ Reorganize
SequenceSetinternals by @nevans in #568
- ⚡️ Don't memoize
Miscellaneous
- ✅ Stop using deprecated UIDPlusData in tests by @nevans in #542
- ⬆️ Bump step-security/harden-runner from 2.13.1 to 2.13.2 by @dependabot[bot] in #548
- 🐛 Fix workflow to deploy RDoc to GitHub pages by @nevans in #551
- ⬆️ Bump actions/checkout from 5 to 6 by @dependabot[bot] in #555
- 📦 Update
release.ymlforgithub_actionslabel by @nevans in #557 - ⬆️ Bump step-security/harden-runner from 2.13.2 to 2.13.3 by @dependabot[bot] in #566
- 🔖 Release 0.6 by @nevans in #574
- Workarounds for "Publishing gem fails with digest gem activation failure" issue #576
Full Changelog: v0.5.12...v0.6.0
v0.5.12
What's Changed
TruffleRuby is not (yet) "officially supported" but it seems to work (with a few small caveats). Several tests are still marked as pending, but the rest all pass. #528 protects us from merging PRs that break TruffleRuby and (in some cases) JRuby.
Fixed
Miscellaneous
- ✅ Test overriding inherited ::Data methods by @nevans in #531
- ✅ Add TruffleRuby to CI by @nevans in #528
Full Changelog: v0.5.11...v0.5.12
v0.5.11
What's Changed
Added
- ✨ Add
ESearchResult#to_sequence_setby @nevans in #511 - ✨ Add
ESearchResult#eachby @nevans in #513 - ✨ Add
VanishedData#each, delegated to#uids.each_numberby @nevans in #522 - support new
Ractor.shareable_procby @ko1 in #525
Fixed
Other Changes
- ✨ Allow
obj.to_sequence_set => nilin try_convert by @nevans in #512 - ♻️ Allow
VanishedData#uidsto beSequenceSet.emptyby @nevans in #517 - 🥅 Raise
ArgumentErrorfor#fetchwithpartialby @nevans in #521
Documentation
- 📚 Fix rdoc call-seq for uid_expunge by @nevans in #516
- 📚 Add QRESYNC to
#enable(docs only) by @nevans in #518
Miscellaneous
- ✅ Organize test files by @nevans in #515
- ✅ Fix flaky tests with
FakeServer#Connection#closemutex by @nevans in #520 - Bump step-security/harden-runner from 2.13.0 to 2.13.1 by @dependabot[bot] in #524
New Contributors
Full Changelog: v0.5.10...v0.5.11
v0.5.10
What's Changed
Added
- 🔎 Update
SequenceSet#inspectformat toNet::IMAP::SequenceSet(#{string})by @nevans in #501 - ⚡🔎 Abridge
SequenceSet#inspectoutput for more than 512 entries by @nevans in #502
Fixed
Documentation
- 📚🐛 Fix mistake in
SequenceSet#string=rdoc by @nevans in #497 - 📚🐛 Fix SequenceSet creation rdoc example output by @nevans in #499
Other Changes
- 🥅 Improve ArgumentError in
SequenceSet#string=by @nevans in #498 - ♻️ Refactor
SequenceSet#dup,#clone, and#replaceby @nevans in #505
Miscellaneous
- ⬆️ Bump step-security/harden-runner from 2.12.1 to 2.12.2 by @dependabot[bot] in #496
- ⬆️ Bump step-security/harden-runner from 2.12.2 to 2.13.0 by @dependabot[bot] in #500
- 📉 Add SequenceSet benchmarks by @nevans in #485
- 📉 Fix benchmark data for SequenceSet#normalize by @nevans in #503
- ⚡ Add vernier profiler for SequenceSet tests and benchmarks by @nevans in #504
- ⬆️ Bump actions/upload-pages-artifact from 3 to 4 by @dependabot[bot] in #507
- ⬆️ Bump actions/checkout from 4 to 5 by @dependabot[bot] in #506
Full Changelog: v0.5.9...v0.5.10
v0.5.9
What's Changed
Added
Fixed
- 🐛 Fix
SequenceSet#include?handling of invalid inputs by @nevans in #479 - 🐛 Always remove idle response handler after done by @nevans in #481
- 🧵 Improve synchronization of
connection_statetransitions by @nevans in #494
Documentation
- 📚🐛 Fix SequenceSet documentation errors by @nevans in #480
- 📚🐛 Fix doc & error msg for SequenceSet coersion by @nevans in #483
- 📚 RDoc updates for SequenceSet by @nevans in #489
Other Changes
- ♻️ Short-circuit frozen SequenceSet modifications by @nevans in #473
- ♻️ Move SequenceSet autoload by @nevans in #491
- ♻️ Avoid unnecessary allocation in
SequenceSet[]by @nevans in #492 - 🧵 Close socket in
#disconnectbefore waiting for lock & thread join by @nevans in #493
Miscellaneous
- ♻️ Generate same stringprep tables with ruby 3.4 by @nevans in #469
- ✅ CI: Mark ruby head on windows as "experimental" by @nevans in #472
- ✅ Update Regexp.linear_time? tests for non-CRuby by @nevans in #477
- ✅ Add timeouts to CI workflow by @nevans in #478
- ✅ Update ResponseReader, UIDFetchData, DeprecatedClientOptions tests by @nevans in #476
- ⏪ Revert #472 (✅ CI: Mark ruby head on windows as "experimental") by @nevans in #482
- ➕ Add benchmark to Gemfile to silence warnings by @nevans in #486
- ⬆️ Bump step-security/harden-runner from 2.12.0 to 2.12.1 by @dependabot in #488
Full Changelog: v0.5.8...v0.5.9
v0.4.22
Important
The regression fixed by this release (#471) appears to only affect Ruby 3.0.0 through 3.0.2, and only on some platforms. It appears to be fixed by ruby 3.0.3, released 2021-11-24. Ruby 3.0.7 was released on 2024-04-23. Ruby 3.0 has reached its EOL.
If you are affected by this issue, upgrading Ruby is much more important than upgrading net-imap!
What's Changed
Fixed
- ⏪ Revert Ractor sharability for config types (v0.4 only) by @nevans in #474
Fixes a regression in v0.4.20, reported by by @glaszig and @mumkymikey in #471
Full Changelog: v0.4.21...v0.4.22
v0.5.8
What's Changed
Added
- ✨ Add
SequenceSet#min(count)and#max(count)by @nevans in #460 - ✨ Add
SequenceSet#aboveandSequenceSet#belowby @nevans in #462
Fixed
- 🐛 Check for Ractor (for JRuby, TruffleRuby) by @nevans in #453, reported by @rammpeter in #452
- 🐛 Fix
SequenceSet#slicewith range(start...0)by @nevans in #456 - 🐛 Fix inconsistently frozen
SequenceSet#[]result by @nevans in #458 - 🐛 Fix
SequenceSet#xorcrash when set is frozen by @nevans in #457 - 🐛 Fix
SequenceSet#slicewhen length > result size by @nevans in #459
Documentation
Miscellaneous
- ⬆️ Bump step-security/harden-runner from 2.11.1 to 2.12.0 by @dependabot in #455
- ✅ Test
SequenceSet#xorand fuzz test all set operations by @nevans in #464
Full Changelog: v0.5.7...v0.5.8