summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* buildstream/plugins/elements/script.py: Mark script as BST_VIRTUAL_DIRECTORYvalentindavid/script_virtual_directoryValentin David2019-01-091-0/+3
| | | | | | | ScriptElement does not use Sandbox.get_directory. It works using it with remote execution. Fixes #850
* Merge branch 'valentindavid/remote_execution_configuration' into 'master'Valentin David2019-01-095-13/+115
|\ | | | | | | | | | | | | Remote execution configuration: HTTPS and user configuration Closes #780 and #631 See merge request BuildStream/buildstream!1030
| * Add support for https channel to remote execution and actions serversvalentindavid/remote_execution_configurationValentin David2019-01-092-11/+35
| | | | | | | | Fixes #780.
| * Add support for user remote execution configurationValentin David2019-01-095-4/+72
| | | | | | | | Fixes #631.
| * Use relative path to project directory for remote execution certificates/keysValentin David2019-01-091-0/+10
|/
* Merge branch 'tristan/sandbox-programming-error' into 'master'Tristan Van Berkom2019-01-081-4/+4
|\ | | | | | | | | sandbox/sandbox.py: Use assertions for programming errors instead of BstErrors. See merge request BuildStream/buildstream!1046
| * sandbox/sandbox.py: Use assertions for programming errors instead of BstErrors.tristan/sandbox-programming-errorTristan Van Berkom2019-01-081-4/+4
|/ | | | | When code is faulty, in a plugin or in the core, we should get a stack trace and a BUG message.
* Merge branch 'phil/remove-source-bundle-reference' into 'master'Jürg Billeter2019-01-081-1/+1
|\ | | | | | | | | element.py: remove documentation reference to source bundle command See merge request BuildStream/buildstream!1041
| * element.py: remove reference to source bundle commandphil/remove-source-bundle-referencePhil Dawson2019-01-081-1/+1
|/ | | | This command has been replacved by the bst source checkout command
* Merge branch 'tristan/fix-command-status-messages' into 'master'Tristan Van Berkom2019-01-081-1/+1
|\ | | | | | | | | sandbox/sandbox.py: Fix regression of command logging See merge request BuildStream/buildstream!1044
| * sandbox/sandbox.py: Fix regression of command loggingTristan Van Berkom2019-01-071-1/+1
|/ | | | | | | | | | Since we added batch commands, the batch commands print the text of the commands directly in the message text, but this is wrong. The detail string is the appropriate place for text of unknown lengths (the user can actually configure how many max lines of commands they want to see in their log), the message text itself should be controlled and brief enough to avoid text wrapping.
* Merge branch 'tristan/one-cache-size-job' into 'master'Tristan Van Berkom2019-01-0713-82/+133
|\ | | | | | | | | | | | | Only queue one cache size job Closes #753 See merge request BuildStream/buildstream!1040
| * _scheduler/jobs/job.py: Removed 'skipped' propertyTristan Van Berkom2019-01-072-20/+2
| | | | | | | | This is redundant now that we report it through the JobStatus.
| * Scheduler: Introduced JobStatus instead of simple success booleanTristan Van Berkom2019-01-0713-38/+68
| | | | | | | | | | | | | | | | | | | | This changes the deepest callback from when a Job completes to propagate a JobStatus value instead of a simple boolean, and updates all of the effected code paths which used to receive a boolean to now handle the JobStatus values. This further improves the situation for issue #753, as now we avoid queueing cache size jobs for pull jobs which are skipped.
| * _scheduler/scheduler.py: Only run one cache size job at a timeTristan Van Berkom2019-01-071-8/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When queuing the special cache management related cleanup and cache size jobs, we now treat these jobs as special and do the following: * Avoid queueing a cleanup/cache_size job if one is already queued We just drop redundantly queued jobs here. * Ensure that jobs of this type only run one at a time This could have been done with the Resources mechanics, however as these special jobs have the same properties and are basically owned by the Scheduler, it seemed more straight forward to handle the behaviors of these special jobs together. This fixes issue #753
| * _scheduler/scheduler.py: Make _schedule_jobs() privateTristan Van Berkom2019-01-071-16/+18
|/ | | | | | | | This is not used anywhere outside of the Scheduler, currently only the Scheduler itself is allowed to queue a job at this level. If the highlevel business logic for automatic queueing of auxiliary jobs moves to another location, we can make this public again.
* Merge branch 'tristan/keyboard-interrupt-stack-trace' into 'master'Tristan Van Berkom2019-01-072-10/+6
|\ | | | | | | | | Fix stack traces discovered with ^C forceful termination. See merge request BuildStream/buildstream!1043
| * Fix stack traces discovered with ^C forceful termination.tristan/keyboard-interrupt-stack-traceTristan Van Berkom2019-01-072-10/+6
|/ | | | | | | | | | | | | | | | * utils.py:_kill_process_tree(): Ignore NoSuchProcess errors These are caused because we issue SIGTERM, and if the process has not exited after a timeout, we kill it. * _scheduler/jobs/job.py: Stop handling NoSuchProcess errors here redundantly, they are already ignored. It seems that we were ignoring it after sleeping when terminating tasks from the scheduler... but we were not ignoring it when performing the same pattern in the `Plugin.call()` -> `utils._call()` path, so we were still getting these exceptions at termination time from host tool processes launched by source plugins.
* Merge branch 'juerg/shell-buildtree' into 'master'Tristan Van Berkom2019-01-061-1/+1
|\ | | | | | | | | _frontend/app.py: Use buildtree for interactive shell on build failure See merge request BuildStream/buildstream!1039
| * _frontend/app.py: Use buildtree for interactive shell on build failureJürg Billeter2019-01-061-1/+1
|/ | | | Fixes: e29aea36 ("Basic options for shell --build to use buildtrees")
* Merge branch 'chandan/no-sdist' into 'master'Chandan Singh2019-01-041-44/+5
|\ | | | | | | | | .gitlab-ci.yml: Remove prepare stage See merge request BuildStream/buildstream!1037
| * .gitlab-ci.yml: Remove prepare stageChandan Singh2019-01-041-44/+5
|/ | | | | | | | | | As we now run tests using `tox`, we don't need to worry about manually packing and unpacking BuildStream. So, we can remove the preapre stage entirely. Update `coverage` and nightly jobs to appropriately cope with this change. Both these jobs now install all runtime dependencies from requirements files.
* Merge branch 'chandan/update-requirements-one-liner' into 'master'Tristan Van Berkom2019-01-0412-21/+60
|\ | | | | | | | | Add Makefile to update requirements files See merge request BuildStream/buildstream!1035
| * CONTRIBUTING.rst: Add instructions to update requirements fileschandan/update-requirements-one-linerChandan Singh2019-01-042-5/+23
| | | | | | | | | | | | | | | | Split the "The MANIFEST.in and setup.py" section in two: "Managing data files" and "Updating BuildStream's Python dependencies". Briefly explain the layout of `requirements` directory and add instructions to use the Makefile added in the last commit.
| * Add Makefile to update requirements filesChandan Singh2019-01-041-0/+21
| |
| * Rename "tools" directory to "requirements"Chandan Singh2019-01-0410-17/+17
|/ | | | | This seems like a better name for the directory, as it more closely describes the purpose of its contents.
* Merge branch 'juerg/source-guess-target' into 'master'Jürg Billeter2019-01-041-0/+10
|\ | | | | | | | | _frontend/cli.py: Reinstate support for guessing targets See merge request BuildStream/buildstream!1036
| * _frontend/cli.py: Reinstate support for guessing targetsjuerg/source-guess-targetJürg Billeter2019-01-041-0/+10
|/ | | | | | Moving fetch and track to the source command group accidentally dropped the support for guessing targets for these commands when invoked from a workspace directory. This brings it back.
* Merge branch 'coldtom/collections' into 'master'Tristan Van Berkom2019-01-032-14/+14
|\ | | | | | | | | | | | | Use collections.abc for Mapping, Iterable Closes #831 See merge request BuildStream/buildstream!1020
| * Use collections.abc for Mapping, IterableThomas Coldrick2019-01-032-14/+14
|/ | | | | | | In _yaml.py and _frontend/complete.py we were getting pylint warnings for using collections.Mapping and collections.Iterable, which are abstract classes now provided from collections.abc. This patch just uses the classes from the right place.
* Merge branch 'tristan/toxic-linting' into 'master'Tristan Van Berkom2019-01-038-21/+43
|\ | | | | | | | | Run the linter separately from the tests See merge request BuildStream/buildstream!1033
| * tools/dev-requirements.{in,txt}: Removed requirements on pylint/codestyle ↵Tristan Van Berkom2019-01-032-6/+2
| | | | | | | | | | | | | | pytest plugins We no longer run the linters through pytest, so we don't need these plugins anymore.
| * tools/requirements.{in,txt}: Fix warning about duplicate jinjaTristan Van Berkom2019-01-032-2/+2
| | | | | | | | | | Apparently you need to spell Jinja2 with a capital J, otherwise we find it listed twice in the resulting requirements.txt files.
| * CONTRIBUTING.rst: Adding instructions to run the linter separatelytristan/toxic-lintingTristan Van Berkom2019-01-031-9/+12
| |
| * .gitlab-ci.yml: Update the CI to run the linter separately through toxTristan Van Berkom2019-01-031-0/+12
| | | | | | | | | | This should save us some cycles in CI, and also allow the developer to more conveniently lint separately from testing.
| * tox.ini: Added new 'lint' environment to lint separatelyTristan Van Berkom2019-01-031-0/+9
| |
| * setup.cfg: Don't lint by default through setup.py test invocationsTristan Van Berkom2019-01-031-1/+1
| |
| * setup.cfg: Specify the pycodestyle configurations separately from pytest ↵Tristan Van Berkom2019-01-031-3/+5
|/ | | | configuration
* Merge branch 'chandan/fix-bad-filename-mini-disaster' into 'master'Chandan Singh2019-01-033-5/+24
|\ | | | | | | | | | | | | tests/frontend/buildcheckout.py: Fix bad filename issue for Windows Closes #842 See merge request BuildStream/buildstream!1032
| * tests/frontend/buildcheckout.py: Fix bad filename issue for WindowsChandan Singh2019-01-033-5/+24
|/ | | | | | | | | | | | | | | | | | | | | In BuildStream/buildstream!1028, we added a test specifically to test that BuildStream correctly raises an warning when the name of an element contains characters that are invalid on Windows. Unfortunately, we didn't see it coming that it would make it impossible to checkout this branch on Windows. Fix it by generating this file, only if we are not running on Windows. * tests/testutils/site.py: Add `IS_WINDOWS` check * tests/frontend/buildcheckout.py: Generate file with invalid filename on the fly * Remove tests/frontend/project/elements/invalid-chars. Fixes #842. Note that this may still cause issues on WSL when running tests on a shared filesystem, but that seems to be a generic issue on WSL with `os.rename`.
* Merge branch 'chandan/toxify' into 'master'Tristan Van Berkom2019-01-0312-77/+211
|\ | | | | | | | | Use tox as a frontend for running tests See merge request BuildStream/buildstream!1027
| * CONTRIBUTING.rst: Add instructions to recreate tox environmentchandan/toxifyChandan Singh2019-01-031-0/+6
| | | | | | | | | | | | | | When we update our dependencies, developers will eventually need to recreate their `tox` environments to get correct results. This happens because `tox` isn't particularly good at recognizing changes in the requirements files.
| * Move sphinx build functionality to toxChandan Singh2019-01-033-31/+33
| | | | | | | | | | | | | | | | | | Currently the CI and the docs both have to duplicate the same inforation about how to gather dependencies etc, and have to use hacky ways to run them. Add a new `docs` environment to our tox setup so that building docs is as simple as running `tox -e docs`.
| * Move all requirements files into "tools" directoryChandan Singh2019-01-039-11/+11
| | | | | | | | | | | | These new `.in` and `.txt` are making the repository look very cluttered. Move them to a separate `tools` directory to make it look a bit cleaner.
| * CONTRIBUTING.rst: Add steps for installing non-python build dependenciesChandan Singh2019-01-031-5/+32
| | | | | | | | | | | | | | | | | | | | | | Since we don't allow use of site packages by default in our `tox` configuration, people will need to install non-python build dependencies of some of our dependencies that do not provide pre-built wheels. We have two such packages at the moment: * psuitl: requires python C headers, compiler * pygobject: requires python C headers, pkg-config, compiler, cairo headers, and gobject libraries
| * CONTRIBUTING.rst: Updated to reflect running tests using tox.Tristan Van Berkom2019-01-031-12/+40
| |
| * .gitlab-ci.yml: Run tests using toxChandan Singh2019-01-031-13/+10
| | | | | | | | | | Instead of invoking tests throung `setup.py`, use `tox` as a frontend in the CI pipelines.
| * Add tox.ini to enable running tests using toxChandan Singh2019-01-023-0/+15
| | | | | | | | | | | | | | | | Add `tox.ini` file that will enable us to use [tox](https://tox.readthedocs.io/) as a frontend for running tests. Since we share the config via `setup.cfg` and requirements via requirements files, commands like `python3 setup.py test` will continue to work.
| * Add requirements files for install, test and plugin dependenciesChandan Singh2019-01-028-29/+88
|/ | | | | | | | | | | | | | Add `.in` and `.txt` requirements files for BuildStream's pure python dependencies. For each pair, the `.in` file is supposed to capture the loose version requirements, and the corresponding `.txt` file is supposed to have frozen requirements. We have 3 such sets: * `requirements`: BuildStream's runtime dependencies * `dev-requirements`: Dependencies for running tests * `plugin-requirements`: Dependencies for core plugins Note that the frozen requirements files will only be used for testing purposes, and `setup.py` will continue to read loose requirements.
* Merge branch 'jjardon/pycodestyle' into 'master'Tristan Maat2019-01-027-27/+17
|\ | | | | | | | | Use pycodestyle instead pep8 python module See merge request BuildStream/buildstream!638