neo4jrb / activegraph

An active model wrapper for the Neo4j Graph Database for Ruby.
http://neo4jrb.io
MIT License
1.4k stars 276 forks source link

Psych gem compatibility issues #1684

Closed chytreg closed 1 year ago

chytreg commented 1 year ago

In my current project I'm using https://github.com/ruby/psych gem After the upgrade from version 3.x to 4 or 5 I'm seeing this issue when running rake neo4j:schema:load"

ArgumentError: wrong number of arguments (given 2, expected 1)
/Users/chytreg/.asdf/installs/ruby/3.2.0/lib/ruby/gems/3.2.0/gems/psych-5.0.2/lib/psych.rb:322:in `safe_load'
/Users/chytreg/.asdf/installs/ruby/3.2.0/lib/ruby/gems/3.2.0/gems/activegraph-11.2.0/lib/active_graph/tasks/migration.rake:86:in `block (3 levels) in <top (required)>'
/Users/chytreg/.asdf/installs/ruby/3.2.0/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:279:in `block in execute'
/Users/chytreg/.asdf/installs/ruby/3.2.0/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:279:in `each'
/Users/chytreg/.asdf/installs/ruby/3.2.0/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:279:in `execute'
/Users/chytreg/.asdf/installs/ruby/3.2.0/lib/ruby/gems/3.2.0/gems/sentry-ruby-5.8.0/lib/sentry/rake.rb:26:in `execute'
/Users/chytreg/.asdf/installs/ruby/3.2.0/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/Users/chytreg/.asdf/installs/ruby/3.2.0/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `synchronize'
/Users/chytreg/.asdf/installs/ruby/3.2.0/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/chytreg/.asdf/installs/ruby/3.2.0/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:188:in `invoke'

The psych gem from version 4 introduced a braking change https://github.com/ruby/psych/releases/tag/v4.0.0

# https://github.com/neo4jrb/activegraph/blob/master/lib/active_graph/tasks/migration.rake#L86
schema_data = YAML.safe_load(File.read(SCHEMA_YAML_PATH), [Symbol])
# my quick fix which works
schema_data = YAML.safe_load(File.read(SCHEMA_YAML_PATH), permitted_classes: [Symbol])

I could even open a PR, but I see that activegraph don't even specify psych as dependency, maybe it should, then we could have a clean one line fix

Runtime information:

activegraph gem version 11.2.0 psych gem version >= 4.0.0