Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breaking changes in YAML loading (Psych) #60

Closed
liveh2o opened this issue Apr 27, 2022 · 1 comment · Fixed by #61
Closed

Breaking changes in YAML loading (Psych) #60

liveh2o opened this issue Apr 27, 2022 · 1 comment · Fixed by #61

Comments

@liveh2o
Copy link
Contributor

liveh2o commented Apr 27, 2022

Psych (aka YAML) 4.x included a ruby/psych#533 to how YAML.load works. In Psych 4.0, load calls safe_load under the hood, and is therefore "safe" by default, but that breaks configurations that support (among other things) aliases, which are disabled when using "safe" loading.

YAML.unsafe_load (and YAML.unsafe_load_file) is now the ruby/psych#533 (comment) to load trusted documents (i.e., config files).

To ensure maximum compatibility with old versions of Psych for ActivePublisher, we also need to set a minimum version of Psych to ensure unsafe_load (and unsafe_load_file) is defined. The methods were introduced in v3.3.2.

liveh2o added a commit that referenced this issue Apr 27, 2022
Psych (aka YAML) 4.x included a breaking change to how `YAML.load` works
In Psych 4.0, `load` calls `safe_load` under the hood, and is therefore
"safe" by default, but that breaks configurations that support (among
other things) aliases, which are disabled when using "safe" loading.

`unsafe_load` is now the canonical way to load trusted documents (i.e.,
config files): ruby/psych#533 (comment)

To ensure maximum compatibility with old versions of Psych, we also need
to set a minimum version of Psych to ensure `unsafe_load` is defined.
The methods were introduced in v3.3.2:
ruby/psych@cb50aa8

Resolves #60
@liveh2o
Copy link
Contributor Author

liveh2o commented Apr 27, 2022

CI for 9.1 is failing because of an issue with bundler: rubygems/rubygems#5323. Considering that JRuby 9.1 is EOL, I think we might want to simply remove this from the CI?

liveh2o added a commit that referenced this issue Apr 27, 2022
Psych (aka YAML) 4.x included a breaking change to how `YAML.load` works
In Psych 4.0, `load` calls `safe_load` under the hood, and is therefore
"safe" by default, but that breaks configurations that support (among
other things) aliases, which are disabled when using "safe" loading.

`unsafe_load` is now the canonical way to load trusted documents (i.e.,
config files): ruby/psych#533 (comment)

To ensure maximum compatibility with old versions of Psych, we also need
to set a minimum version of Psych to ensure `unsafe_load` is defined.
The methods were introduced in v3.3.2:
ruby/psych@cb50aa8

Resolves #60
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant