CI doesn't test sdist packaging includes necessary data files

Summary

If we don't include all of BuildStream's necessary datafiles in source distributions created with setup.py sdist, (for example the yaml files associated with element plugins), these source distributions will be unusable.

As demonstrated by #1008 (closed), our CI won't currently catch this. Since the current directory is always added to sys.path in Python, in our current CI setup BuildStream is able to find these files correctly during the tests, even though they are not included in the installed source distribution.

A possible solution suggested by @cs-shadow is moving our source code inside a src directory. This layout has several advantages as mentioned here.

Steps to reproduce

Make a change to BuildStream which alters the datafiles included in a pip installation

What is the current bug behavior?

CI will not catch errors with what data files are included in an sdist package of BuildStream

What is the expected correct behavior?

CI will fail if necessary data files are not included in an sdist package of BuildStream.

Other relevant information

  • BuildStream version affected: /milestone %BuildStream_v1.x