| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
Prepare NEWS for 1.91.3 development snapshot release
See merge request BuildStream/buildstream!1784
|
|/ |
|
|\
| |
| |
| |
| |
| |
| | |
_platform: Don't use psutil.Process.cpu_affinity on unsupported platforms
Closes #1244
See merge request BuildStream/buildstream!1786
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
`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.
|
|\
| |
| |
| |
| | |
Drop chroot sandboxing backend
See merge request BuildStream/buildstream!1777
|
| | |
|
| |
| |
| |
| |
| | |
The chroot sandboxing backend didn't work across platforms and has been
replaced by the buildbox-run sandboxing backend.
|
| | |
|
|/
|
|
| |
The chroot sandboxing backend will be dropped.
|
|\
| |
| |
| |
| | |
requirements: Add dependency on ruamel.yaml.clib
See merge request BuildStream/buildstream!1783
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| |
| |
| | |
Add test environment for Python 3.8
Closes #1173
See merge request BuildStream/buildstream!1647
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| | |
|
| |
| |
| |
| |
| | |
In Python 3.8, `ThreadedChildWatcher` is the default watcher that causes
issues with our scheduler. Enforce use of `SafeChildWatcher`.
|
|/
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| |
| |
| | |
Fix running tests without `--develop` flag
Closes #1121
See merge request BuildStream/buildstream!1782
|
| |
| |
| |
| |
| |
| | |
This is to prevent us from breaking `*-nocover` environments, and in
general, ensure that we can run tests correctly without `--develop`
flag.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
Remove unused functions 2
See merge request BuildStream/buildstream!1781
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
_platform/platform.py: Add alias for IBM AIX 7 powerpc
See merge request BuildStream/buildstream!1779
|
|/
|
|
|
|
|
|
|
|
|
| |
* `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.
|
|\
| |
| |
| |
| | |
_platform/platform.py: Add alias for sun4v
See merge request BuildStream/buildstream!1778
|
|/
|
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| |
| |
| | |
Drop support for `setup.py test`
See merge request BuildStream/buildstream!1758
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| |
| |
| | |
job.py: Do not call Process.close()
Closes #1243
See merge request BuildStream/buildstream!1776
|
|/
|
|
|
|
|
|
|
|
|
| |
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")
|
|\
| |
| |
| |
| | |
setup.cfg: Set pytest default timeout
See merge request BuildStream/buildstream!1775
|
|/
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
buildstream/_platform/platform.py: Add powerpc64 and powerpc64le
See merge request BuildStream/buildstream!1698
|
|/ |
|
|\
| |
| |
| |
| |
| |
| | |
Add CI job to test buildbox-run-userchroot
Closes #1237
See merge request BuildStream/buildstream!1751
|
| | |
|
| |
| |
| |
| | |
This adds userchroot and buildbox-run-userchroot.
|
| | |
|
| |
| |
| |
| | |
buildbox-run-userchroot requires a shell.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| | |
The root directory is not allowed to be writable by userchroot.
+ sh -e -c touch /foo
touch: /foo: Permission denied
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| | |
The tests are flaky due to non-deterministic timestamps in the output of
`ls -l`. See https://gitlab.com/BuildStream/buildstream/issues/1218
|