summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* scheduler.py: Optimize scheduling by not calling it unnecessarilybschubert/optimize-schedulingBenjamin Schubert2019-12-061-9/+17
| | | | | | | | | | | | This delays the call to the re-scheduling of jobs until the current event loop as terminated. This is in order to reduce the number of time we call this method per loop, which shoudl reduce the pressure on the loop and allow faster event handling Since the call is now delayed, also ensure we only call it once per loop iteration.
* Merge branch 'chandan/fix-manifest' into 'master'Chandan Singh2019-12-051-10/+6
|\ | | | | | | | | Minor packaging-related fixups See merge request BuildStream/buildstream!1754
| * MANIFEST.in: Minor fixups and improvementsChandan Singh2019-12-051-10/+6
|/ | | | | | | | | | | | | | | This patch contains the following changes: * Remove include directive for MAINTAINERS file, that does not exist anymore. Instead, add the COMMITTERS.rst file, which is the logical replacement for the MAINTAINERS file. * Recursively include all requirements files instead of listing them one by one. This also fixes and issue where the cov-requirements files were not included in the source distribution. * Simplify `recursive-include DIR *` to `graft DIR`. These two forms are functionally equivalent, but the latter is a bit easier to understand.
* Merge branch 'chandan/interactive-tests' into 'master'Chandan Singh2019-12-056-0/+167
|\ | | | | | | | | Add tests for interactive BuildStream operations See merge request BuildStream/buildstream!1706
| * Add tests for failed build in interactive modeChandan Singh2019-12-052-0/+115
| |
| * Add tests for interactive `bst init`Chandan Singh2019-12-052-0/+49
| | | | | | | | | | Add tests for interactive `bst init` command using [pexpect](https://pexpect.readthedocs.io).
| * requirements: Add pexpect for running interactive testsChandan Singh2019-12-052-0/+3
|/
* Merge branch 'juerg/cas-directory-reset' into 'master'Jürg Billeter2019-12-053-10/+8
|\ | | | | | | | | _sandboxreapi.py: Reset CasBasedDirectory instead of recreating it See merge request BuildStream/buildstream!1749
| * sandbox.py: Remove unused _set_virtual_directory() methodJürg Billeter2019-12-051-6/+0
| |
| * _sandboxreapi.py: Use CasBasedDirectory._reset()Jürg Billeter2019-12-051-3/+2
| | | | | | | | | | | | Calling _reset() instead of completely replacing the object fixes element plugins that use a virtual directory object across Sandbox.run() calls such as the compose plugin with integration commands.
| * _casbaseddirectory.py: Add _reset() methodJürg Billeter2019-12-051-1/+6
|/ | | | This reinitializes a CASBasedDirectory object from a directory digest.
* Merge branch 'juerg/runcli-unused-parameter' into 'master'Jürg Billeter2019-12-051-34/+5
|\ | | | | | | | | testing/runcli.py: Remove unused configure parameter from run() methods See merge request BuildStream/buildstream!1748
| * testing/runcli.py: Remove unused configure parameter from run() methodsJürg Billeter2019-12-051-34/+5
|/
* Merge branch 'bschubert/ci-improvements' into 'master'Jürg Billeter2019-12-041-20/+24
|\ | | | | | | | | Multiple CI improvements See merge request BuildStream/buildstream!1747
| * .gitlab-ci.yml: Don't overwrite sast job directly, just inject variableBenjamin Schubert2019-12-041-3/+4
| | | | | | | | | | We can remove the sast job overwriting and instead 'just' add the variable it needs to the global variables.
| * .gitlab-ci.yml: Extract docker images version in a variableBenjamin Schubert2019-12-041-16/+19
| | | | | | | | | | Our image versions tend to drift over time. Let's use a variable to ensure they are always all at the same version.
| * .gitlab-ci.yml: List all test envs explicitely for toxBenjamin Schubert2019-12-041-1/+1
|/ | | | | Contrary to what we thought, those don't get expanded, and we ended up having the external tests run only for py35, which is incorrect.
* Merge branch 'juerg/casd-separate-user' into 'master'Jürg Billeter2019-12-038-13/+87
|\ | | | | | | | | Support buildbox-casd running as separate user See merge request BuildStream/buildstream!1737
| * tests: source_determinism.py: Do not use too restrictive test umasksjuerg/casd-separate-userJürg Billeter2019-12-032-4/+14
| | | | | | | | | | | | | | | | To protect the local cache of buildbox-casd from corruption without the use of FUSE, buildbox-casd has to run as a different user. Use less restrictive umasks in the source determinism tests to allow buildbox-casd to function when it is running as a separate user.
| * tests/integration/filter.py: Do not use checkout --hardlinksJürg Billeter2019-12-031-1/+1
| | | | | | | | This is not necessary and doesn't work with CASD_SEPARATE_USER.
| * tests/frontend/pull.py: Do not use checkout --hardlinksJürg Billeter2019-12-031-2/+2
| | | | | | | | This is not necessary and doesn't work with CASD_SEPARATE_USER.
| * tests/frontend/buildcheckout.py: Cannot hardlink with CASD_SEPARATE_USERJürg Billeter2019-12-031-1/+7
| | | | | | | | | | Linux does not allow hardlinks to read-only files of other users by default since Linux 3.6 (see /proc/sys/fs/protected_hardlinks).
| * testing/_utils/site.py: Add CASD_SEPARATE_USER variableJürg Billeter2019-12-031-0/+5
| | | | | | | | | | This is set to True if buildbox-casd is installed with the set-uid bit and thus, indicates whether buildbox-casd is running as a separate user.
| * utils.py: safe_link(): Copy if hardlink creation is not permittedJürg Billeter2019-12-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | By default, Linux doesn't allow creating hardlinks to read-only files of other users since Linux 3.6 (see /proc/sys/fs/protected_hardlinks). This fixes staging when buildbox-casd is running as a separate user and the traditional bubblewrap sandboxing backend is used. This combination is not recommended, however, it's triggered in CI by docker images that run buildbox-casd as a separate user and a few test cases that override BST_FORCE_SANDBOX.
| * casdprocessmanager.py: Set up socket path via a symlinkTristan Maat2019-12-031-4/+57
|/ | | | | | | | | | | This is necessary to allow using buildbox-run with userchroot in the near future, since currently only the owner of the BuildStream process can access the CASD socket, but the buildbox-casd binary will need to be setuid' to another user. This gets around this limitation by allowing the group to access a symlink, which in turn should point to a directory owned by the CASD user.
* Merge branch 'tlater/artifactserver-casd' into 'master'Tristan Maat2019-12-0311-443/+364
|\ | | | | | | | | | | | | Refactor casserver.py: Stop relying on the buildstream-internal `CASCache` implementation Closes #1167 See merge request BuildStream/buildstream!1645
| * _*cache.py: Standardize cache basedirsTristan Maat2019-12-033-20/+21
| |
| * Remove newly unused API surfaces in CASCacheTristan Maat2019-12-037-179/+58
| | | | | | | | | | | | This also involves a number of changes to tests and other parts of the codebase since they were hacking about wit API that shouldn't have existed.
| * casserver.py: Proxy CAS requests to buildbox-casdTristan Maat2019-12-033-245/+219
| |
| * casserver.py: Add loggingTristan Maat2019-12-031-5/+72
|/
* Merge branch 'tlater/fix-update-committer-security' into 'master'Tristan Maat2019-12-021-10/+12
|\ | | | | | | | | update_commiters.py: Fix security vulnerabilities See merge request BuildStream/buildstream!1743
| * update_commiters.py: Fix security vulnerabilitiesTristan Maat2019-12-021-10/+12
|/ | | | | Not really an issue, this was only to be run on our repository, but it keeps the linter silent and makes for better sample code.
* Merge branch 'bschubert/update-requirements' into 'master'Benjamin Schubert2019-12-0223-70/+71
|\ | | | | | | | | Update BuildStream requirements See merge request BuildStream/buildstream!1742
| * Update all python dependenciesBenjamin Schubert2019-12-027-35/+36
| | | | | | | | | | | | | | | | This updates all dependencies on the project, which is mainly needed by python3.8 but can be done independentely. This also disables multiple false positive lint errors and disable a new check that we don't need.
| * tests: Use pytest.raise() instead of checking for return codeBenjamin Schubert2019-12-023-8/+8
| | | | | | | | | | | | This gives a potentially more explicit understanding of what went wrong, and pytest can give better information about that exception than just us asserting the return code.
| * lint: remove all unecessary elif/else after break/continueBenjamin Schubert2019-12-028-21/+21
| | | | | | | | | | Newer pylint versions detect and complain about unnecessary elif/else after a continue/break/return clause. Let's remove them
| * lint: Remove unnecessary list comprehensionsBenjamin Schubert2019-12-026-6/+6
|/ | | | | Newer version of pylint detect when a comprehension would not be needed. Let's remove all the ones that are indeed extraneous
* Merge branch 'chandan/hacking/drop-line-length' into 'master'Chandan Singh2019-11-271-15/+0
|\ | | | | | | | | doc/coding_guidelines: Drop section about line lengths See merge request BuildStream/buildstream!1735
| * doc/coding_guidelines: Drop section about line lengthsChandan Singh2019-11-271-15/+0
|/ | | | | | | Since we format our code using Black, contributors don't have to think about line lengths themselves. In fact, Black is going to rewrite the files anyway so it's not even possible to make a judgement call in most cases.
* Merge branch 'chandan/glossary' into 'master'Chandan Singh2019-11-275-0/+141
|\ | | | | | | | | doc: Add glossary of common terms See merge request BuildStream/buildstream!1716
| * doc: Add glossary of common termsChandan Singh2019-11-275-0/+141
|/ | | | | Start a new glossary document, aimed at helping newcomers relevant links to more detailed documents.
* Merge branch 'juerg/sandbox-reapi' into 'master'Jürg Billeter2019-11-272-2/+13
|\ | | | | | | | | SandboxREAPI fixes See merge request BuildStream/buildstream!1736
| * _sandboxreapi.py: Ensure /dev, /proc and /tmp exist in sandboxJürg Billeter2019-11-271-0/+4
| |
| * _sandboxreapi.py: Check that command existsJürg Billeter2019-11-271-0/+5
| |
| * _sandboxreapi.py: Fix Command.working_directoryJürg Billeter2019-11-271-1/+1
| | | | | | | | | | The working directory must be specified relative to the input root, i.e., the leading slash must be dropped.
| * sandbox.py: Assert that the working directory is an absolute pathJürg Billeter2019-11-271-1/+3
|/ | | | Sandbox implementations rely on this.
* Merge branch 'chandan/refactor-default-target' into 'master'Jürg Billeter2019-11-2725-255/+197
|\ | | | | | | | | tests/frontend: Refactor tests for default targets See merge request BuildStream/buildstream!1700
| * tests/frontend: Refactor tests for default targetsChandan Singh2019-11-2725-255/+197
|/ | | | | | | | | | | | | | | `tests/frontend/buildcheckout.py` is already very crowded with all sorts of tests. Since this test is not really about testing `bst build` but rather about testing whether BuildStream can detect the default targets correctly, move it to a separate test module. At the same time, also improve the actual tests. Currently the test compares the number of sub-directories in BuildStream log directory with the number of elements. Change it such that we directly query BuildStream about what's been built rather than trying to guess. While doing so, sanitize its project directory to make it clearer what's being tested.
* Merge branch 'traveltissues/mr3' into 'master'Jürg Billeter2019-11-277-19/+338
|\ | | | | | | | | | | | | Support RE workspaces (non-incremental) Closes #933 See merge request BuildStream/buildstream!1682
| * tests: non-incremental RE builds for workspacesDarius Makovsky2019-11-272-0/+313
| | | | | | | | | | | | 1. Check that an open workspace can be built via remote-execution. 2. Changing file content should result in a full rebuild 3. Modifying a file mtime should result in a full rebuild