-
Notifications
You must be signed in to change notification settings - Fork 34
Comparing changes
Open a pull request
base repository: ruby/net-imap
base: v0.5.12
head repository: ruby/net-imap
compare: v0.5.13
- 14 commits
- 8 files changed
- 1 contributor
Commits on Oct 15, 2025
-
Configuration menu - View commit details
-
Copy full SHA for f7d617b - Browse repository at this point
Copy the full SHA f7d617bView commit details
Commits on Dec 17, 2025
-
🚚 Extract Config::AttrVersionDefaults module
This will be used to simplify the code in lib/net/imap/config.rb. In this first step, only a couple pieces are extracted: * `AttrVersionDefaults` stores the `Config.version_defaults` hash. The hash's `#default_proc` is defined there, too. * `AttrVersionDefaults.compile` only freezes that hash.
Configuration menu - View commit details
-
Copy full SHA for b6b4898 - Browse repository at this point
Copy the full SHA b6b4898View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1846b4d - Browse repository at this point
Copy the full SHA 1846b4dView commit details -
♻️ Compile version_defaults hashes into configs
This refactoring decouples the assignment of versioned default values and the creation of `version_defaults` config objects. At first, `version_defaults` stores hashes for each version's updated defaults. At the end, the hashes are transformed into config objects by `Config::AttrVersionDefaults.compile!`.
Configuration menu - View commit details
-
Copy full SHA for f035a48 - Browse repository at this point
Copy the full SHA f035a48View commit details -
♻️ Allow Config[version] to work up to v1.0
This also causes Config[0.7r] through Config[1.0r] to be aliases (rather than clones) of each other.
Configuration menu - View commit details
-
Copy full SHA for 3dd53a7 - Browse repository at this point
Copy the full SHA 3dd53a7View commit details -
🚚 Compile Config[:defaults] in AttrVersionDefaults
This avoids usage of the private `Config#defaults_hash` method, relying instead on the public `#load_defaults` API.
Configuration menu - View commit details
-
Copy full SHA for c079172 - Browse repository at this point
Copy the full SHA c079172View commit details -
♻️ Define config defaults with the attr definitions
At the cost of one big conflict now, this should significantly reduce future merge conflicts in the config file. It's also easier to match documentation with default values when they're right next to each other. This also assigns all of the original (`Config[0]`) defaults explicitly, and not only where they differ from Config.default.
Configuration menu - View commit details
-
Copy full SHA for d48e658 - Browse repository at this point
Copy the full SHA d48e658View commit details -
♻️ Compile Config.default using AttrVersionDefaults
Similar to the versioned defaults, this could be a source of conflicts when merging, rebasing, or cherry-picking feature and backport branches. Now that all of the attributes specify their defaults, the current version's default config can be compiled from that. The sanity-check at the end of `config.rb` has been removed. It was there to protect against bad merges. Now that `Config.default` is also compiled from the version defaults added to each attr_accessor, the tests in `test/net/imap/test_config.rb` are good enough.
Configuration menu - View commit details
-
Copy full SHA for d496299 - Browse repository at this point
Copy the full SHA d496299View commit details -
🔀 Merge pull request #584 from ruby/backport-0.5/config/defaults
♻️ Refactor Config.versioned_defaults to reduce merge conflicts (backport to 0.5)
Configuration menu - View commit details
-
Copy full SHA for 9b3208a - Browse repository at this point
Copy the full SHA 9b3208aView commit details -
🐛 Fix SequenceSet#delete?(num..num) to return set
According to the rdoc, using a range with `#delete?` should return a sequence set (or nil), but the check came after importing the input, and was based on whether the imported run contained multiple values. So deleting a single number range (e.g: `1..1` or `"1:1"`) would return a number not a set.
Configuration menu - View commit details
-
Copy full SHA for 9cf6cfe - Browse repository at this point
Copy the full SHA 9cf6cfeView commit details -
🐛 Fix SequenceSet#max(n), cardinality < n <= size
This backports #580 to `v0.5-stable`. When `SequenceSet#max(n)` is called with `n > cardinality`, it _should_ return a duplicate of the whole set. But, `#max(n)` is implemented using `#slice(-n..)`, and (copying the behavior of `Array`), when a slicing starts from an out-of-range index, it returns `nil`. It was using `-[count, size].min` to keep the index from going out-of-range. Prior to 0.6.0, `#size` is the same as `#count`, so it gives incorrect results when the set contains an endless range. `SequenceSet#cardinality` has not been backported to 0.5, so this makes that calculation inline. This change should also give a small performance boost, because it bypasses the complexity of `#slice(range)` and just calls `#dup` (or returns `self` when the set is frozen).
Configuration menu - View commit details
-
Copy full SHA for ffb007a - Browse repository at this point
Copy the full SHA ffb007aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 931c094 - Browse repository at this point
Copy the full SHA 931c094View commit details -
🐛 Fix
#responses()freezing internal arraysNow that `:frozen_dup` is the default behavior for `#responses` when it's called without any arguments, a critical bug has become apparent: it was not freezing the internal responses arrays directly, rather than copies of them. Freezing these arrays will, of course, lead to further issues. Ideally, code should be updated to use one of the other forms of `#responses`, since this form is less efficient and also (intentionally) incompatibile with old code that expects it to return mutable arrays. But this is still a major bug. Fixes #581, reported by @yurikoval.
Configuration menu - View commit details
-
Copy full SHA for 389223d - Browse repository at this point
Copy the full SHA 389223dView commit details -
📦 Drop digest from Gemfile (workaround for #576)
`digest` 3.2.1 was released since the last `net-imap` release. And apparently `bundle exec rake release` activates `digest` _before_ loading the Gemfile. But, since `digest` is a default gem anyway, not including it in the Gemfile should be okay, I think. See the errors here: * 1st attempt: https://github.com/ruby/net-imap/actions/runs/20212203897/job/58019727242 * Merged #575 * 2nd attempt: https://github.com/ruby/net-imap/actions/runs/20219369554/job/58038064382
Configuration menu - View commit details
-
Copy full SHA for 27b33c1 - Browse repository at this point
Copy the full SHA 27b33c1View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.5.12...v0.5.13