Hello community, here is the log from the commit of package buildstream for openSUSE:Factory checked in at 2019-07-21 11:33:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/buildstream (Old) and /work/SRC/openSUSE:Factory/.buildstream.new.4126 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "buildstream" Sun Jul 21 11:33:29 2019 rev:12 rq:716271 version:1.2.8 Changes: -------- --- /work/SRC/openSUSE:Factory/buildstream/buildstream.changes 2019-05-28 09:42:30.145860126 +0200 +++ /work/SRC/openSUSE:Factory/.buildstream.new.4126/buildstream.changes 2019-07-21 11:33:33.912785196 +0200 @@ -1,0 +2,8 @@ +Tue Jul 16 17:36:25 UTC 2019 - Bjørn Lie <[email protected]> + +- Update to version 1.2.8: + + Fixed issues with workspaced junctions which need fetches. + + Bail out with informative error if stdout/stderr are + O_NONBLOCK. + +------------------------------------------------------------------- Old: ---- BuildStream-1.2.7.tar.xz New: ---- BuildStream-1.2.8.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ buildstream.spec ++++++ --- /var/tmp/diff_new_pack.mvMUZ7/_old 2019-07-21 11:33:34.812785044 +0200 +++ /var/tmp/diff_new_pack.mvMUZ7/_new 2019-07-21 11:33:34.812785044 +0200 @@ -18,7 +18,7 @@ %define real_name BuildStream Name: buildstream -Version: 1.2.7 +Version: 1.2.8 Release: 0 Summary: A framework for modelling build pipelines in YAML License: LGPL-2.1-or-later ++++++ BuildStream-1.2.7.tar.xz -> BuildStream-1.2.8.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/BuildStream-1.2.7/BuildStream.egg-info/PKG-INFO new/BuildStream-1.2.8/BuildStream.egg-info/PKG-INFO --- old/BuildStream-1.2.7/BuildStream.egg-info/PKG-INFO 2019-05-20 09:29:45.000000000 +0200 +++ new/BuildStream-1.2.8/BuildStream.egg-info/PKG-INFO 2019-07-16 09:27:00.000000000 +0200 @@ -1,11 +1,14 @@ -Metadata-Version: 1.2 +Metadata-Version: 2.1 Name: BuildStream -Version: 1.2.7 +Version: 1.2.8 Summary: A framework for modelling build pipelines in YAML Home-page: https://gitlab.com/BuildStream/buildstream Author: BuildStream Developers Author-email: [email protected] License: LGPL +Project-URL: Documentation, https://buildstream.gitlab.io/buildstream/ +Project-URL: Tracker, https://gitlab.com/BuildStream/buildstream/issues +Project-URL: Mailing List, https://mail.gnome.org/mailman/listinfo/buildstream-list Description: About ----- .. image:: https://gitlab.com/BuildStream/buildstream/badges/master/pipeline.svg @@ -103,3 +106,4 @@ Classifier: Programming Language :: Python :: 3.7 Classifier: Topic :: Software Development :: Build Tools Requires-Python: ~=3.5 +Description-Content-Type: text/x-rst; charset=UTF-8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/BuildStream-1.2.7/BuildStream.egg-info/requires.txt new/BuildStream-1.2.8/BuildStream.egg-info/requires.txt --- old/BuildStream-1.2.7/BuildStream.egg-info/requires.txt 2019-05-20 09:29:45.000000000 +0200 +++ new/BuildStream-1.2.8/BuildStream.egg-info/requires.txt 2019-07-16 09:27:00.000000000 +0200 @@ -1,8 +1,8 @@ Click -grpcio >= 1.10 -jinja2 >= 2.10 +grpcio>=1.10 +jinja2>=2.10 pluginbase -protobuf >= 3.5 +protobuf>=3.5 psutil -ruamel.yaml < 0.15.52 +ruamel.yaml<0.15.52 setuptools diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/BuildStream-1.2.7/NEWS new/BuildStream-1.2.8/NEWS --- old/BuildStream-1.2.7/NEWS 2019-05-20 09:22:02.000000000 +0200 +++ new/BuildStream-1.2.8/NEWS 2019-07-16 09:21:23.000000000 +0200 @@ -1,4 +1,12 @@ ================= +buildstream 1.2.8 +================= + + o Fixed issues with workspaced junctions which need fetches (#1030) + + o Bail out with informative error if stdout/stderr are O_NONBLOCK (#929) + +================= buildstream 1.2.7 ================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/BuildStream-1.2.7/PKG-INFO new/BuildStream-1.2.8/PKG-INFO --- old/BuildStream-1.2.7/PKG-INFO 2019-05-20 09:29:46.000000000 +0200 +++ new/BuildStream-1.2.8/PKG-INFO 2019-07-16 09:27:00.000000000 +0200 @@ -1,11 +1,14 @@ -Metadata-Version: 1.2 +Metadata-Version: 2.1 Name: BuildStream -Version: 1.2.7 +Version: 1.2.8 Summary: A framework for modelling build pipelines in YAML Home-page: https://gitlab.com/BuildStream/buildstream Author: BuildStream Developers Author-email: [email protected] License: LGPL +Project-URL: Documentation, https://buildstream.gitlab.io/buildstream/ +Project-URL: Tracker, https://gitlab.com/BuildStream/buildstream/issues +Project-URL: Mailing List, https://mail.gnome.org/mailman/listinfo/buildstream-list Description: About ----- .. image:: https://gitlab.com/BuildStream/buildstream/badges/master/pipeline.svg @@ -103,3 +106,4 @@ Classifier: Programming Language :: Python :: 3.7 Classifier: Topic :: Software Development :: Build Tools Requires-Python: ~=3.5 +Description-Content-Type: text/x-rst; charset=UTF-8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/BuildStream-1.2.7/buildstream/_frontend/cli.py new/BuildStream-1.2.8/buildstream/_frontend/cli.py --- old/BuildStream-1.2.7/buildstream/_frontend/cli.py 2019-05-09 10:28:44.000000000 +0200 +++ new/BuildStream-1.2.8/buildstream/_frontend/cli.py 2019-07-16 09:17:47.000000000 +0200 @@ -1,5 +1,6 @@ import os import sys +import fcntl import click from .. import _yaml @@ -158,6 +159,17 @@ # Regular client return for test cases return + # Check output file descriptor at earliest opportunity, to + # provide a reasonable error message instead of a stack trace + # in the case that it is blocking + for stream in (sys.stdout, sys.stderr): + fileno = stream.fileno() + flags = fcntl.fcntl(fileno, fcntl.F_GETFL) + if flags & os.O_NONBLOCK: + click.echo("{} is currently set to O_NONBLOCK, try opening a new shell" + .format(stream.name), err=True) + sys.exit(-1) + original_main(self, args=args, prog_name=prog_name, complete_var=None, standalone_mode=standalone_mode, **extra) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/BuildStream-1.2.7/buildstream/_loader/loader.py new/BuildStream-1.2.8/buildstream/_loader/loader.py --- old/BuildStream-1.2.7/buildstream/_loader/loader.py 2019-05-09 10:28:44.000000000 +0200 +++ new/BuildStream-1.2.8/buildstream/_loader/loader.py 2019-07-16 09:17:47.000000000 +0200 @@ -534,29 +534,31 @@ element = Element._new_from_meta(meta_element, self._context.artifactcache) element._preflight() + element._update_state() - for source in element.sources(): - # Handle the case where a subproject needs to be fetched - # - if source.get_consistency() == Consistency.RESOLVED: - if fetch_subprojects: + # Handle the case where a subproject needs to be fetched + # + if element._get_consistency() == Consistency.RESOLVED: + if fetch_subprojects: + for source in element.sources(): if ticker: ticker(filename, 'Fetching subproject from {} source'.format(source.get_kind())) - source._fetch() - else: - detail = "Try fetching the project with `bst fetch {}`".format(filename) - raise LoadError(LoadErrorReason.SUBPROJECT_FETCH_NEEDED, - "Subproject fetch needed for junction: {}".format(filename), - detail=detail) - - # Handle the case where a subproject has no ref - # - elif source.get_consistency() == Consistency.INCONSISTENT: - detail = "Try tracking the junction element with `bst track {}`".format(filename) - raise LoadError(LoadErrorReason.SUBPROJECT_INCONSISTENT, - "Subproject has no ref for junction: {}".format(filename), + if source._get_consistency() != Consistency.CACHED: + source._fetch() + else: + detail = "Try fetching the project with `bst fetch {}`".format(filename) + raise LoadError(LoadErrorReason.SUBPROJECT_FETCH_NEEDED, + "Subproject fetch needed for junction: {}".format(filename), detail=detail) + # Handle the case where a subproject has no ref + # + elif element._get_consistency() == Consistency.INCONSISTENT: + detail = "Try tracking the junction element with `bst track {}`".format(filename) + raise LoadError(LoadErrorReason.SUBPROJECT_INCONSISTENT, + "Subproject has no ref for junction: {}".format(filename), + detail=detail) + # Stage sources os.makedirs(self._context.builddir, exist_ok=True) basedir = tempfile.mkdtemp(prefix="{}-".format(element.normal_name), dir=self._context.builddir) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/BuildStream-1.2.7/buildstream/_version.py new/BuildStream-1.2.8/buildstream/_version.py --- old/BuildStream-1.2.7/buildstream/_version.py 2019-05-20 09:29:46.000000000 +0200 +++ new/BuildStream-1.2.8/buildstream/_version.py 2019-07-16 09:27:00.000000000 +0200 @@ -8,11 +8,11 @@ version_json = ''' { - "date": "2019-05-20T16:22:54+0900", + "date": "2019-07-16T16:21:36+0900", "dirty": false, "error": null, - "full-revisionid": "08d1694545d1d62295c7beba1fea65a21b93a723", - "version": "1.2.7" + "full-revisionid": "aa45741d4f2f5b0c47684ba25518f9749c78b53e", + "version": "1.2.8" } ''' # END VERSION_JSON diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/BuildStream-1.2.7/tests/artifactcache/expiry.py new/BuildStream-1.2.8/tests/artifactcache/expiry.py --- old/BuildStream-1.2.7/tests/artifactcache/expiry.py 2019-05-09 10:28:44.000000000 +0200 +++ new/BuildStream-1.2.8/tests/artifactcache/expiry.py 2019-07-16 07:20:48.000000000 +0200 @@ -78,6 +78,7 @@ res.assert_task_error(ErrorDomain.ARTIFACT, 'cache-too-full') [email protected] @pytest.mark.datafiles(DATA_DIR) def test_expiry_order(cli, datafiles, tmpdir): project = os.path.join(datafiles.dirname, datafiles.basename) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/BuildStream-1.2.7/tests/frontend/show.py new/BuildStream-1.2.8/tests/frontend/show.py --- old/BuildStream-1.2.7/tests/frontend/show.py 2019-05-09 10:28:44.000000000 +0200 +++ new/BuildStream-1.2.8/tests/frontend/show.py 2019-07-16 09:17:47.000000000 +0200 @@ -114,7 +114,8 @@ @pytest.mark.datafiles(DATA_DIR) @pytest.mark.parametrize("ref_storage", [('inline'), ('project.refs')]) @pytest.mark.parametrize("element_name", ['junction-dep.bst', 'junction.bst:import-etc.bst']) -def test_unfetched_junction(cli, tmpdir, datafiles, ref_storage, element_name): [email protected]("workspaced", [True, False], ids=["workspace", "no-workspace"]) +def test_unfetched_junction(cli, tmpdir, datafiles, ref_storage, element_name, workspaced): project = os.path.join(datafiles.dirname, datafiles.basename) subproject_path = os.path.join(project, 'files', 'sub-project') junction_path = os.path.join(project, 'elements', 'junction.bst') @@ -156,17 +157,29 @@ } _yaml.dump(project_refs, os.path.join(project, 'junction.refs')) + # Open a workspace if we're testing workspaced behavior + if workspaced: + result = cli.run(project=project, silent=True, args=[ + 'workspace', 'open', '--no-checkout', 'junction.bst', subproject_path + ]) + result.assert_success() + # Assert the correct error when trying to show the pipeline result = cli.run(project=project, silent=True, args=[ 'show', element_name]) - result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.SUBPROJECT_FETCH_NEEDED) + # If a workspace is open, no fetch is needed + if workspaced: + result.assert_success() + else: + result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.SUBPROJECT_FETCH_NEEDED) @pytest.mark.datafiles(DATA_DIR) @pytest.mark.parametrize("ref_storage", [('inline'), ('project.refs')]) @pytest.mark.parametrize("element_name", ['junction-dep.bst', 'junction.bst:import-etc.bst']) -def test_inconsistent_junction(cli, tmpdir, datafiles, ref_storage, element_name): [email protected]("workspaced", [True, False], ids=["workspace", "no-workspace"]) +def test_inconsistent_junction(cli, tmpdir, datafiles, ref_storage, element_name, workspaced): project = os.path.join(datafiles.dirname, datafiles.basename) subproject_path = os.path.join(project, 'files', 'sub-project') junction_path = os.path.join(project, 'elements', 'junction.bst') @@ -192,16 +205,28 @@ } _yaml.dump(element, element_path) + # Open a workspace if we're testing workspaced behavior + if workspaced: + result = cli.run(project=project, silent=True, args=[ + 'workspace', 'open', '--no-checkout', 'junction.bst', subproject_path + ]) + result.assert_success() + # Assert the correct error when trying to show the pipeline result = cli.run(project=project, silent=True, args=[ 'show', element_name]) - result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.SUBPROJECT_INCONSISTENT) + # If a workspace is open, no ref is needed + if workspaced: + result.assert_success() + else: + result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.SUBPROJECT_INCONSISTENT) @pytest.mark.datafiles(DATA_DIR) @pytest.mark.parametrize("element_name", ['junction-dep.bst', 'junction.bst:import-etc.bst']) -def test_fetched_junction(cli, tmpdir, datafiles, element_name): [email protected]("workspaced", [True, False], ids=["workspace", "no-workspace"]) +def test_fetched_junction(cli, tmpdir, datafiles, element_name, workspaced): project = os.path.join(datafiles.dirname, datafiles.basename) subproject_path = os.path.join(project, 'files', 'sub-project') junction_path = os.path.join(project, 'elements', 'junction.bst') @@ -225,9 +250,15 @@ result = cli.run(project=project, silent=True, args=[ 'fetch', 'junction.bst']) - result.assert_success() + # Open a workspace if we're testing workspaced behavior + if workspaced: + result = cli.run(project=project, silent=True, args=[ + 'workspace', 'open', '--no-checkout', 'junction.bst', subproject_path + ]) + result.assert_success() + # Assert the correct error when trying to show the pipeline result = cli.run(project=project, silent=True, args=[ 'show', '--format', '%{name}-%{state}', element_name])
