Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Fresh install of Ruby 3.2.1 and Ceedling 0.31.1 on Windows 10 fails with weird error.

1,558 views
Skip to first unread message

Michael Richter

unread,
Mar 29, 2023, 4:13:51 AM3/29/23
to ThrowTheSwitch Forums
I installed msys64, and in msys64 installed ruby. I updated to the latest version of gem, then installed ceedling.  Once I corrected a PATH issue, I did and got this:

$ ceedling
/c/Users/Michael T. Richter/scoop/persist/ruby/gems/gems/ceedling-0.31.1/bin/ceedling:12:in `<top (required)>': undefined method `exists?' for File:Class (NoMethodError)

  project_found = File.exists?(main_filepath)
                      ^^^^^^^^
Did you mean?  exist?
        from /usr/bin/ceedling:25:in `load'
        from /usr/bin/ceedling:25:in `<main>'

I'm kinda stuck here because my Ruby years are literally two decades behind me and I'm not going to go back to them if I can at all help it.

What's gone wrong?  (For starters, why is it looking in scoop when I installed msys64 independently?)

Michael Richter

unread,
Mar 29, 2023, 4:50:38 AM3/29/23
to ThrowTheSwitch Forums
OK, after solving the weirdness of scoop, I now have Ruby 3.2.0 and Ceedling 0.31.1 all in their proper place in MSYS.

And it's dire.

First problem to contend with was that there was a cheery deprecation warning on each invocation of ceedling.  I dug around until I made the two-line fix in the Thor gem that got rid of that.  After that, I got that File.exists? (and later Dir.exists?) error constantly.  Fixing those (in a surprisingly large number of spaces) led to a final problem I have no idea how to even begin to fix:

 $ ./ceedling
/usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:432:in `visit_Psych_Nodes_Alias': Alias parsing was not enabled. To enable it, pass `aliases: true` to `Psych::load` or `Psych::safe_load`. (Psych::AliasesNotEnabled)
        from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:30:in `visit'
        from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:6:in `accept'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:35:in `accept'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:340:in `block in register_empty'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:340:in `each'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:340:in `register_empty'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:148:in `visit_Psych_Nodes_Sequence'
        from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:30:in `visit'
        from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:6:in `accept'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:35:in `accept'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:347:in `block in revive_hash'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `each'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `each_slice'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `revive_hash'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:169:in `visit_Psych_Nodes_Mapping'
        from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:30:in `visit'
        from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:6:in `accept'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:35:in `accept'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:347:in `block in revive_hash'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `each'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `each_slice'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `revive_hash'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:169:in `visit_Psych_Nodes_Mapping'
        from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:30:in `visit'
        from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:6:in `accept'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:35:in `accept'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:320:in `visit_Psych_Nodes_Document'
        from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:30:in `visit'
        from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:6:in `accept'
        from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:35:in `accept'
        from /usr/lib/ruby/3.2.0/psych.rb:334:in `safe_load'
        from /usr/lib/ruby/3.2.0/psych.rb:369:in `load'
        from /usr/lib/ruby/3.2.0/psych.rb:671:in `block in load_file'
        from /usr/lib/ruby/3.2.0/psych.rb:670:in `open'
        from /usr/lib/ruby/3.2.0/psych.rb:670:in `load_file'
        from vendor/ceedling/bin/ceedling:278:in `<main>'


This is just out of my realm entirely.  I have no idea where to even begin to look for this solution.  But ... it leads me to wonder how this escaped into the gem ecosystem if it fails so badly, so obviously, and in so many ways?  We have deprecated function warnings, we have File.exists?/Dir.exists? errors, and now this.  All before I actually use ceedling in, you know, the example project with ceedling example.  (The error there is generated by using ./ceedling in the generated example project.)  Is there a known good pairing of Ruby and Ceedling versions so I can actually evaluate it?

Michael Richter

unread,
Apr 2, 2023, 9:51:30 PM4/2/23
to ThrowTheSwitch Forums
Ping.

To reiterate the question: is there a known-good pairing of Ruby version and Ceedling version that doesn't lead me into the rabbit warren I hit?

Paul Jacobson

unread,
Apr 3, 2023, 7:58:17 AM4/3/23
to ThrowTheSwitch Forums
I spent a bit of time updating the Sublime Text ceedling plugin late last year.
I found that you need to stick with the major and minor version used to develop the. Ceedling release.
For 0.31.1 that would be 3.0.x.

Ruby 3.1.0 and later caused issues.

Mark Vander Voord

unread,
Apr 3, 2023, 8:02:18 AM4/3/23
to throwth...@googlegroups.com
It's also worth noting that the pre-release candidate fixes the breaking Ruby changes. See 0.32.x in the release folder of Ceedling.

Mark

Allen Curtis

unread,
Aug 2, 2023, 5:55:36 PM8/2/23
to ThrowTheSwitch Forums
The gem documentation or the gem.spec file specifies the appropriate Ruby version.

Al Gray

unread,
Sep 4, 2023, 5:31:10 AM9/4/23
to ThrowTheSwitch Forums
greetings, any guidance on when 0.32 will be released?  3.2 is the default version currently being installed for windows users (who generally have no background in ruby).  If the breaking changes are already resolved, could it be possible to release a new minor version under 0.31 just resolving them? How much work would that involve?

Steven Broshar

unread,
May 9, 2024, 2:08:52 PM5/9/24
to ThrowTheSwitch Forums
Would be more valuable if told us how to get that. What is the "release folder of Ceedling"?

kafkaaaa

unread,
May 9, 2024, 9:03:49 PM5/9/24
to ThrowTheSwitch Forums
Maybe...

https://github.com/ThrowTheSwitch/Ceedling/releases
2024년 5월 10일 금요일 오전 3시 8분 52초 UTC+9에 Steven Broshar님이 작성:

Mark Vander Voord

unread,
May 10, 2024, 8:35:00 AM5/10/24
to throwth...@googlegroups.com
You can find the docs for the release candidate here: https://github.com/ThrowTheSwitch/Ceedling/tree/test/ceedling_0_32_rc/docs

You can find the releases (candidates and official) here: https://github.com/ThrowTheSwitch/Ceedling/releases



Mike Karlesky

unread,
May 10, 2024, 8:47:10 AM5/10/24
to throwth...@googlegroups.com

There's a good chance the latest and much improved version of Ceedling will be released this month.

To try out the pre-release version:
  1. Go to https://github.com/ThrowTheSwitch/Ceedling/releases
  2. Choose the most recent pre-release build
  3. Expand the assets for that release
  4. Download the .gem file
  5. gem install --local <path>/ceedling<build>.gem


--
You received this message because you are subscribed to the Google Groups "ThrowTheSwitch Forums" group.
To unsubscribe from this group and stop receiving emails from it, send an email to throwtheswitc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/throwtheswitch/83732c56-f15a-491b-9d1a-36e37931290cn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages