ruamel.yaml automatically updates to 0.15.52 and breaks BuildStream
Summary
We don't pin a version of ruamel in our setup.py
and the newly-released 0.15.52 version breaks BuildStream.
Steps to reproduce
On a currently installed BuildStream instance, run pip3 install --user -e .
as per the current install instructions, then invoke bst
(Just bst
on the command line on its own is enough).
What is the current bug behavior?
Line present in pip upgrade log:
Collecting ruamel.yaml (from BuildStream==1.3.0+38.g8c9fd9e4)
Using cached https://files.pythonhosted.org/packages/07/0f/c57e0f402f8f0b780d0cf3b5814489c30a531b7fdf21f9180a90320bc347/ruamel.yaml-0.15.52-cp36-cp36m-manylinux1_x86_64.whl
Running bst
will produce:
Error loading user configuration: YAML file has content of type 'CommentedMap' instead of expected type 'dict': /home/jimmacarthur/bs/buildstream/buildstream/data/userconfig.yaml
What is the expected correct behavior?
bst
should work as it previously did.
Possible fixes
Pin ruamel version number in setup.py
, like this:
- 'ruamel.yaml',
+ 'ruamel.yaml <= 0.15',
Other relevant information
Pinning is the current advice given by ruamel for production systems:
Starting with version 0.15.0 the way YAML files are loaded and dumped is changing. See the API doc for details. Currently existing functionality will throw a warning before being changed/removed. For production systems you should pin the version being used with ``ruamel.yaml<=0.15``.
- BuildStream version affected: /milestone %BuildStream_v1.3