summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* setup.py: Remove check for bubblewrapchandan/no-warn-bwrapChandan Singh2020-01-071-51/+0
| | | | | | | | | | | | | | Bubblewrap is not a hard requirement for BuildStream now that it supports other sandboxing mechanisms, i.e. buildbox-run and remote execution. Aside from that, this check is already a bit misplaced in `setup.py`. Bubblewrap is a runtime requirement, so warning about it at build time isn't quite right. It makes sense when BuildStream is being installed from source, but not when it is installed from any binary distribution. Note that the corresponding sandbox implementation already does this check at runtime.
* Merge branch 'chandan/tag-1.91.3' into 'master'1.91.3Chandan Singh2020-01-021-0/+18
|\ | | | | | | | | Prepare NEWS for 1.91.3 development snapshot release See merge request BuildStream/buildstream!1784
| * Prepare NEWS for 1.91.3 development snapshot releasechandan/tag-1.91.3Chandan Singh2020-01-021-0/+18
|/
* Merge branch 'chandan/fix-cpu-count' into 'master'Chandan Singh2020-01-022-9/+9
|\ | | | | | | | | | | | | _platform: Don't use psutil.Process.cpu_affinity on unsupported platforms Closes #1244 See merge request BuildStream/buildstream!1786
| * _platform: Don't use psutil.Process.cpu_affinity on unsupported platformschandan/fix-cpu-countChandan Singh2019-12-312-9/+9
|/ | | | | | | | | | | | | `psutil.Process.cpu_affinity` is not available on many non-Linux platforms, like AIX and Solaris. We already have such a case with Darwin where we need to resort to using `os.cpu_count()`. Rather than adding more subclasses and overrides, add that logic as a fallback in the main `Process` class. `os.cpu_count()` should generally always be available, so hopefully we will only need to override this in future too much or at all. Fixes #1244.
* Merge branch 'juerg/drop-chroot-sandbox' into 'master'Chandan Singh2019-12-319-407/+0
|\ | | | | | | | | Drop chroot sandboxing backend See merge request BuildStream/buildstream!1777
| * tests: Drop chroot xfail/skipifJürg Billeter2019-12-316-12/+0
| |
| * sandbox: Drop chroot sandboxing backendJürg Billeter2019-12-311-354/+0
| | | | | | | | | | The chroot sandboxing backend didn't work across platforms and has been replaced by the buildbox-run sandboxing backend.
| * _platform: Drop support for chroot sandboxJürg Billeter2019-12-311-21/+0
| |
| * .gitlab-ci.yml: Drop unix CI jobJürg Billeter2019-12-311-20/+0
|/ | | | The chroot sandboxing backend will be dropped.
* Merge branch 'chandan/dependon-yaml.clib' into 'master'Chandan Singh2019-12-301-0/+1
|\ | | | | | | | | requirements: Add dependency on ruamel.yaml.clib See merge request BuildStream/buildstream!1783
| * requirements: Add dependency on ruamel.yaml.clibchandan/dependon-yaml.clibChandan Singh2019-12-301-0/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | On Python3.8, when `ruamel.yaml.clib` is not installed, BuildStream ends up throwing a stack trace on any and all operations. This manifests itself in the following form: $ bst show hello.bst Error loading user configuration: /venv/lib/python3.8/site-packages/buildstream/data/userconfig.yaml: Severely malformed YAML: 'NoneType' object is not callable This is also the root cause of downstream issues like https://gitlab.com/BuildStream/bst-plugins-container/issues/19. The fix is simple - to add a hard dependency on `ruamel.yaml.clib`, since we explicitly import `yaml.Cparser` - https://gitlab.com/BuildStream/buildstream/blob/master/src/buildstream/_yaml.pyx#L298 - that doesn't come from the main `ruamel.yaml` package. This works fine on Python < 3.8 because `ruamel.yaml` itself has a hard dependency on `ruamel.yaml.clib` for those versions. The Python 3.8 CI pipeline also works because our requirements were frozen using a Python 3.7 interpreter and hence already have this requirement.
* Merge branch 'chandan/python3.8' into 'master'Chandan Singh2019-12-253-21/+42
|\ | | | | | | | | | | | | Add test environment for Python 3.8 Closes #1173 See merge request BuildStream/buildstream!1647
| * .gitlab-ci.yml: Add test environment for Python 3.8chandan/python3.8Chandan Singh2019-12-241-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | * Bump the testsuite image versions in order to get the latest Python 3.8 image, as we need at least Python 3.8.1. Python 3.8.0 suffers from an issue that causes recursion errors when using `shutil.copytree`. See upstream issue (https://bugs.python.org/issue38688) for more details on that. * Add partial support for running tests on Python 3.8. Coverage still doesn't play well with our tests on 3.8. https://gitlab.com/BuildStream/buildstream/issues/1173 is tracking that.
| * tox.ini: Add python3.8 to default environment listChandan Singh2019-12-241-17/+17
| |
| * _scheduler/scheduler.py: Enforce SafeChildWatcherChandan Singh2019-12-241-0/+6
| | | | | | | | | | In Python 3.8, `ThreadedChildWatcher` is the default watcher that causes issues with our scheduler. Enforce use of `SafeChildWatcher`.
| * .gitlab-ci.yml: Fix command for randomized external testsChandan Singh2019-12-241-1/+1
|/ | | | | | The command for running external tests only had the `-external` qualifier for one of the tests, so it ended up duplicating the first command for the first two environments.
* Merge branch 'chandan/fix-nocover-tests' into 'master'Chandan Singh2019-12-242-1/+9
|\ | | | | | | | | | | | | Fix running tests without `--develop` flag Closes #1121 See merge request BuildStream/buildstream!1782
| * .gitlab-ci.yml: Add CI job to run tests without `--develop` flagChandan Singh2019-12-241-0/+8
| | | | | | | | | | | | This is to prevent us from breaking `*-nocover` environments, and in general, ensure that we can run tests correctly without `--develop` flag.
| * setup.cfg: Don't collect tests from src directoryChandan Singh2019-12-241-1/+1
|/ | | | | | | | | | | | | Generally we don't have any tests in the `src` directory so we don't need to collect anything from that directory. The only exception to this are the `sourcetests`, but they add their own collection hook so they are not affected by this. This fixes an issue where pytest gets confused upon finding two different `conftest.py` modules - one in the `src` directory and one in the virtual environment. Fixes #1121.
* Merge branch 'traveltissues/remove-unused' into 'master'Darius Makovsky2019-12-244-64/+0
|\ | | | | | | | | Remove unused functions 2 See merge request BuildStream/buildstream!1781
| * _state: remove unused add_maximum_progresstraveltissues/remove-unusedDarius Makovsky2019-12-241-3/+0
| |
| * _sourcecache: remove unused _update_mtimeDarius Makovsky2019-12-241-6/+0
| |
| * _sourcecache: remove unused _reachable_directoriesDarius Makovsky2019-12-241-9/+0
| |
| * _sourcecache: remove unused _remove_sourceDarius Makovsky2019-12-241-3/+0
| |
| * _sourcecache: remove unused list_sourcesDarius Makovsky2019-12-241-10/+0
| |
| * sandbox: remove unused _issue_warningDarius Makovsky2019-12-241-10/+0
| |
| * sandbox: remove unused _callbackDarius Makovsky2019-12-241-20/+0
| |
| * _casbaseddirectory: remove unused _copy_link_from_filesystemDarius Makovsky2019-12-241-3/+0
|/
* Merge branch 'chandan/ibm-7-platform' into 'master'Chandan Singh2019-12-232-5/+13
|\ | | | | | | | | _platform/platform.py: Add alias for IBM AIX 7 powerpc See merge request BuildStream/buildstream!1779
| * _platform/platform.py: Add alias for IBM AIX 7 powerpcChandan Singh2019-12-232-5/+13
|/ | | | | | | | | | | * `uname -m` is unusable in case of IBM AIX 7 as it reports the serial number of the machine. As a workaround, special case it and use the reported processor identifier. * tests/format/optionos.py: Don't use AIX for unsupported architecture `AIX` is special-cased in BuildStream, so use a different system for testing unsupported architectures.
* Merge branch 'chandan/platform-sunos' into 'master'Chandan Singh2019-12-231-0/+1
|\ | | | | | | | | _platform/platform.py: Add alias for sun4v See merge request BuildStream/buildstream!1778
| * _platform/platform.py: Add alias for sun4vChandan Singh2019-12-231-0/+1
|/ | | | | | | | | | | Some Solaris 11 servers report `uname -m` as `sun4v`. It uses the same SPARC v9 processor architecture so add an alias for it as we already support `sparc-v9`. `uname -a` output for reference: $ uname -a SunOS sundev1 5.11 11.3 sun4v sparc sun4v Solaris
* Merge branch 'chandan/remote-setuppy-test' into 'master'Chandan Singh2019-12-233-56/+15
|\ | | | | | | | | Drop support for `setup.py test` See merge request BuildStream/buildstream!1758
| * Drop support for `setup.py test`Chandan Singh2019-12-233-56/+15
|/ | | | | | | | | | | | | | Drop support for running tests via `setup.py test`, that is considered deprecated. `tox` is our primary frontend for running tests, so this change ensures that we don't have to support multiple ways of running tests. For testing against a specific installation environment, `tox` is not quite practical. But in these cases, one can run `pytest` directly. So, there is no need for this additional indirection. This was discussed in the following mailing list thread: https://mail.gnome.org/archives/buildstream-list/2019-December/msg00006.html.
* Merge branch 'juerg/job-process-close' into 'master'Jürg Billeter2019-12-191-1/+0
|\ | | | | | | | | | | | | job.py: Do not call Process.close() Closes #1243 See merge request BuildStream/buildstream!1776
| * job.py: Do not call Process.close()Jürg Billeter2019-12-191-1/+0
|/ | | | | | | | | | | As we handle subprocess termination by pid with an asyncio child watcher, the multiprocessing.Process object does not get notified when the process terminates. And as the child watcher reaps the process, the pid is no longer valid and the Process object is unable to check whether the process is dead. This results in Process.close() raising a ValueError. Fixes: 9c23ce5c ("job.py: Replace message queue with pipe")
* Merge branch 'juerg/pytest-timeout' into 'master'Jürg Billeter2019-12-191-1/+1
|\ | | | | | | | | setup.cfg: Set pytest default timeout See merge request BuildStream/buildstream!1775
| * setup.cfg: Set pytest default timeoutjuerg/pytest-timeoutJürg Billeter2019-12-191-1/+1
|/ | | | | | | This sets a default timeout of 15 minutes for tests to avoid hanging indefinitely. As the slowest test in CI normally takes less than 5 minutes, the timeout should be long enough to not trigger even on slower systems if everything operates normally.
* Merge branch 'jjardon/powerpc64le' into 'master'Jürg Billeter2019-12-171-0/+2
|\ | | | | | | | | buildstream/_platform/platform.py: Add powerpc64 and powerpc64le See merge request BuildStream/buildstream!1698
| * _platform/platform.py: Add powerpc64 and powerpc64leJavier Jardón2019-12-171-0/+2
|/
* Merge branch 'juerg/buildbox-run-userchroot' into 'master'Jürg Billeter2019-12-1711-17/+108
|\ | | | | | | | | | | | | Add CI job to test buildbox-run-userchroot Closes #1237 See merge request BuildStream/buildstream!1751
| * .gitlab-ci.yml: Add job to test buildbox-run-userchrootjuerg/buildbox-run-userchrootJürg Billeter2019-12-171-0/+35
| |
| * .gitlab-ci.yml: Update docker imageJürg Billeter2019-12-171-1/+1
| | | | | | | | This adds userchroot and buildbox-run-userchroot.
| * .gitlab-ci.yml: Add tests-buildbox-run to coverageJürg Billeter2019-12-171-0/+1
| |
| * tests/integration/shell.py: xfail for buildbox-run-userchrootJürg Billeter2019-12-171-1/+5
| | | | | | | | buildbox-run-userchroot requires a shell.
| * tests/integration/script.py: xfail for buildbox-run-userchrootJürg Billeter2019-12-171-2/+15
| | | | | | | | | | | | | | | | The root directory is not allowed to be writable by userchroot. + sh -c -e echo 'I can write to root' > /test sh: can't create /test: Permission denied
| * tests/integration/filter.py: xfail for buildbox-run-userchrootJürg Billeter2019-12-171-1/+5
| | | | | | | | | | | | | | The root directory is not allowed to be writable by userchroot. + sh -e -c touch /foo touch: /foo: Permission denied
| * tests/integration/compose.py: xfail for buildbox-run-userchrootJürg Billeter2019-12-171-1/+5
| | | | | | | | | | | | | | | | The root directory is not allowed to be writable by userchroot. + sh -e -c mkdir -p /tests mkdir: can't create directory '/tests': Permission denied Command 'mkdir -p /tests' failed with exitcode 1
| * tests: source_determinism.py: Skip flaky test with buildbox-runJürg Billeter2019-12-172-0/+8
| | | | | | | | | | The tests are flaky due to non-deterministic timestamps in the output of `ls -l`. See https://gitlab.com/BuildStream/buildstream/issues/1218