Skip to content

Releases: ruby/net-imap

v0.5.1

08 Nov 23:10
v0.5.1
Compare
Choose a tag to compare

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

  • ♻️ Reduce duplication in normalizing search args by @nevans in #348

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

08 Nov 23:11
v0.4.18
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.4.17...v0.4.18

v0.5.0

16 Oct 23:03
v0.5.0
Compare
Choose a tag to compare

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) and HEADER.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") or fetch_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 with SequenceSet#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 by v0.4.0.
  • 🔥 Drop deprecated BodyType structs by @nevans in #323
    These structs were deprecated by v0.4.0.

Added

  • ✨ Add #extract_responses method by @nevans in #330 Also backported to v0.4.17.
  • ✨ New config option to return frozen dup from #responses by @nevans in #334 Also backported to v0.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 or false.
  • 🔒 SASL DIGEST-MD5: realm, host, service_name, etc by @nevans in #284
    Please note that the DIGEST-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 since v0.4.0),
    • pass a response type to #responses for a frozen copied array (since v0.4.17),
    • set config.responses_without_block to :silence_deprecation_warning (since v0.4.13),
    • set config.responses_without_block to :frozen_dup for a frozen copy (since v0.4.17),
    • use #clear_responses instead (since v0.4.0),
    • use #extract_responses instead (since v0.4.17).
  • 🗑️ 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 to v0.4.15.
  • 🐛 Fix #header_fld_name to handle quoted strings correctly by @taku0 in #315
    Also backported to v0.4.16.
  • 🐛 Fix SequenceSet[input] when input is a SequenceSet by @nevans in #326
    Also backported to v0.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 to warn 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 to v0.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 to v0.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

13 Oct 19:36
v0.4.17
8484205
Compare
Choose a tag to compare

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 in v0.6.0.

Bug fixes

  • 🐛 Fix SequenceSet[input] when input is a SequenceSet by @nevans in #327 (backports #326)

Other Changes

  • 🥅 Improve SequenceSet frozen errors by @nevans in #338 (backports #331)

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

04 Sep 16:05
v0.4.16
Compare
Choose a tag to compare

What's Changed

Fixed

  • 🐛 Fix #header_fld_name to handle quoted strings correctly by @taku0 in #315

Full Changelog: v0.4.15...v0.4.16

v0.4.15

28 Aug 01:52
v0.4.15
Compare
Choose a tag to compare

What's Changed

Fixed

  • 🐛 Fix #send_data to send DateTime as time by @taku0 in #313

New Contributors

Full Changelog: v0.4.14...v0.4.15

v0.4.14

22 Jun 16:12
v0.4.14
Compare
Choose a tag to compare

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

16 Jun 14:31
v0.4.13
Compare
Choose a tag to compare

What's Changed

✨ Added features

  • 🔧 Add Config class for debug, open_timeout, and idle_response_timeout by @nevans in #291
    • Net::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

01 Jun 07:32
6c59d03
Compare
Choose a tag to compare

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

08 May 15:28
v0.4.11
Compare
Choose a tag to compare

What's Changed

Server workarounds

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

Full Changelog: v0.4.10...v0.4.11