ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
From: "nagachika (Tomoyuki Chikanaga) via ruby-core" <ruby-core@ml.ruby-lang.org>
To: ruby-core@ml.ruby-lang.org
Cc: "nagachika (Tomoyuki Chikanaga)" <noreply@ruby-lang.org>
Subject: [ruby-core:120069] [Ruby master Bug#20871] Including methods in Enumerable doesn't make them available in Array
Date: Sat, 30 Nov 2024 06:11:53 +0000 (UTC)	[thread overview]
Message-ID: <redmine.journal-110812.20241130061153.54954@ruby-lang.org> (raw)
In-Reply-To: <redmine.issue-20871.20241105200917.54954@ruby-lang.org>

Issue #20871 has been updated by nagachika (Tomoyuki Chikanaga).

Backport changed from 3.1: REQUIRED, 3.2: REQUIRED, 3.3: REQUIRED to 3.1: REQUIRED, 3.2: DONE, 3.3: REQUIRED

ruby_3_2 commit:bb065f08441aab8f97b45bd3f1600202547c9532 merged revision(s) commit:3b7892b6e4d1a1a5d6019987f9b46ed443dd104f.

----------------------------------------
Bug #20871: Including methods in Enumerable doesn't make them available in Array
https://bugs.ruby-lang.org/issues/20871#change-110812

* Author: sanderd17 (Sander Deryckere)
* Status: Closed
* ruby -v: 3.3.6
* Backport: 3.1: REQUIRED, 3.2: DONE, 3.3: REQUIRED
----------------------------------------
Today, our CI pipeline started failing after the automatic update from v3.3.5 to v3.3.6.

After researching, it turned out that our core extensions to the `Array` class weren't loaded anymore.

The core-extensions code looks like this:

```ruby

module CoreExt
  module Enumerable
    def average
      sum(&:to_f) / count if any?
    end

    # def ...
  end
end

Enumerable.include CoreExt::Enumerable
```

After some debugging, it turned out that the `average` method was included in the `instance_methods` of `Enumerable`, but not in the `instance_methods` of `Array`.

Explicitly adding `Array.include CoreExt::Enumerable` fixes CI for our case.


The very strange thing is that it only happens on a release branch we are still maintaining. It doesn't happen on our main development branch (which also updated to v3.3.6 today). I have been unable to find the difference between both branches so far (they diverged a couple of months ago, but the base system is still regularly updated on both, and pretty similar).

After some digging around, I assume this commit is related to our issue: https://github.com/ruby/ruby/commit/edeb0319f7a95dfe3f9b895bcf32371dd8514726



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

  parent reply	other threads:[~2024-11-30  6:12 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-05 20:09 [ruby-core:119751] " sanderd17 (Sander Deryckere) via ruby-core
2024-11-05 20:25 ` [ruby-core:119752] " sanderd17 (Sander Deryckere) via ruby-core
2024-11-18  5:02 ` [ruby-core:119954] " jeremyevans0 (Jeremy Evans) via ruby-core
2024-11-18  7:24 ` [ruby-core:119955] " rolf (Rolf T) via ruby-core
2024-11-18  9:12 ` [ruby-core:119956] " rolf (Rolf T) via ruby-core
2024-11-19  8:43 ` [ruby-core:119964] " tdeo (Thierry Deo) via ruby-core
2024-11-19 14:37 ` [ruby-core:119968] " sanderd17 (Sander Deryckere) via ruby-core
2024-11-19 15:36 ` [ruby-core:119969] " jeremyevans0 (Jeremy Evans) via ruby-core
2024-11-19 20:35 ` [ruby-core:119970] " jeremyevans0 (Jeremy Evans) via ruby-core
2024-11-20  1:12 ` [ruby-core:119971] " jeremyevans0 (Jeremy Evans) via ruby-core
2024-11-20 18:23 ` [ruby-core:119976] " sanderd17 (Sander Deryckere) via ruby-core
2024-11-30  6:11 ` nagachika (Tomoyuki Chikanaga) via ruby-core [this message]
2025-01-15  1:49 ` [ruby-core:120682] " k0kubun (Takashi Kokubun) via ruby-core

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=redmine.journal-110812.20241130061153.54954@ruby-lang.org \
    --to=ruby-core@ml.ruby-lang.org \
    --cc=noreply@ruby-lang.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).