Skip to content

v0.5.0

Compare
Choose a tag to compare
@nevans nevans released this 16 Oct 23:03
· 30 commits to master since this release
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) 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.)