buildstream should inmediatelly fail if ostree < v2017.8 is installed

Summary

Builds fail with a strange error if the ostree version is not new enough

Steps to reproduce

Try to build anything with an older ostree (even if it doesn't use the plugin at all)

What is the current bug behavior?



    ~/gnome-build-meta$ bst build --track-all sdk/gtk+-3.bst                                                
    [--:--:--][][] START   Build                                                                                                  
    [--:--:--][][] START   Loading elements                                                                                        
    [00:00:03][][] SUCCESS Loading elements                                                                                        
    [--:--:--][][] START   Resolving elements                                                                                      
    [00:00:01][][] SUCCESS Resolving elements                                                                                      
    [--:--:--][][] START   Initializing remote caches                                                                              
    [00:00:00][][] SUCCESS Initializing remote caches                                                                              
    [--:--:--][][] START   Resolving cached state                                                                                  
    [--:--:--][][] BUG     'Repo' object has no attribute 'reload_config'                                                          
                                                                                                                                   
        Traceback (most recent call last):                                                                                        
          File "/home/niels/.local/bin/bst", line 11, in <module>                                                                  
            sys.exit(cli())                                                                                                        
          File "/home/niels/.local/lib/python3.5/site-packages/click/core.py", line 764, in __call__                              
            return self.main(*args, **kwargs)                                                                                      
          File "/home/niels/.local/lib/python3.5/site-packages/buildstream/_frontend/cli.py", line 162, in override_main          
            standalone_mode=standalone_mode, **extra)                                                                              
          File "/home/niels/.local/lib/python3.5/site-packages/click/core.py", line 717, in main                                  
            rv = self.invoke(ctx)                                                                                                  
          File "/home/niels/.local/lib/python3.5/site-packages/click/core.py", line 1137, in invoke                                
            return _process_result(sub_ctx.command.invoke(sub_ctx))                                                                
          File "/home/niels/.local/lib/python3.5/site-packages/click/core.py", line 956, in invoke                                
            return ctx.invoke(self.callback, **ctx.params)                                                                        
          File "/home/niels/.local/lib/python3.5/site-packages/click/core.py", line 555, in invoke                                
            return callback(*args, **kwargs)                                                                                      
          File "/home/niels/.local/lib/python3.5/site-packages/click/decorators.py", line 27, in new_func                          
            return f(get_current_context().obj, *args, **kwargs)                                                                  
          File "/home/niels/.local/lib/python3.5/site-packages/buildstream/_frontend/cli.py", line 330, in build                  
            build_all=all_)                                                                                                        
          File "/home/niels/.local/lib/python3.5/site-packages/buildstream/_stream.py", line 184, in build                        
            dynamic_plan=True)
          File "/home/niels/.local/lib/python3.5/site-packages/buildstream/_stream.py", line 931, in _load
            self._pipeline.resolve_elements(elements)
          File "/home/niels/.local/lib/python3.5/site-packages/buildstream/_pipeline.py", line 139, in resolve_elements
            element._update_state()
          File "/home/niels/.local/lib/python3.5/site-packages/buildstream/element.py", line 1041, in _update_state                
            self.__update_source_state()                                                                                          
          File "/home/niels/.local/lib/python3.5/site-packages/buildstream/element.py", line 1909, in __update_source_state        
            source._update_state()
          File "/home/niels/.local/lib/python3.5/site-packages/buildstream/source.py", line 577, in _update_state                  
            self.__consistency = self.get_consistency()                                                                            
          File "/home/niels/.local/lib/python3.5/site-packages/buildstream/plugins/sources/ostree.py", line 169, in get_consistency
            self.ensure()                                                                                                          
          File "/home/niels/.local/lib/python3.5/site-packages/buildstream/plugins/sources/ostree.py", line 181, in ensure        
            self.repo = _ostree.ensure(self.mirror, True)                                                                          
          File "/home/niels/.local/lib/python3.5/site-packages/buildstream/_ostree.py", line 66, in ensure                        
            repo.reload_config()                                                                                                  
        AttributeError: 'Repo' object has no attribute 'reload_config'

What is the expected correct behavior?

$ ~/gnome-build-meta$ bst build --track-all sdk/gtk+-3.bst

Minimum required version for ostree plugin is v2017.8, please upgrade

Other relevant information

  • BuildStream version affected: 1.2.3