summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update instructions for using BuildStream with Dockersam/use-via-dockerSam Thursfield2017-10-061-73/+19
| | | | | | | | | | | | | | | Changes: * use official image builds rather than suggesting users build and test their own * remove the `-u $UID` and /etc/passwd mount options; these didn't work on my system and I've not seen them needed * add SYS_ADMIN capability, /dev/fuse mount and remove seccomp. This reduces security but BuildStream does its own sandboxing in any case. In future we will add a wrapper script which should simplify the instuctions further.
* Remove DockerfileSam Thursfield2017-10-052-44/+0
| | | | | | The Docker image is now built from a separate repo at: <https://gitlab.com/BuildStream/buildstream-docker-images>
* .gitlab-ci.yml: Add comment after IRC discussionSam Thursfield2017-10-021-0/+2
|
* doc/source/index.rst: Fix documentation to link the correct Sandbox moduleTristan Van Berkom2017-10-021-1/+1
|
* sandbox.py: Fixup placement of main Sandbox docstringTristan Van Berkom2017-10-021-4/+4
|
* context.py: Make _get_overrides() take a project name, not a project.Tristan Van Berkom2017-10-022-4/+4
| | | | | | | This is merely a protection against crossing the project/context wires together. The Project will gain knowledge of the context soon, so it's better that the context itself remain without any knowledge of the context.
* Use _yaml.node_items() across the board, instead of casing _yaml.PROVENANCE_KEYTristan Van Berkom2017-10-014-34/+15
| | | | | Consequently improved _yaml.node_sanitize() to omit a crazy lambda which had no effect at all on the outcome of the function.
* _yaml.py: Fixing inconsistently named API _yaml.validate_node()Tristan Van Berkom2017-10-017-17/+31
| | | | | | | | | | All of the _yaml APIs which deal with a node (dictionary loaded from YAML) are named _yaml.node_foo(), _yaml.node_bar(), _yaml.node_baz() etc, except for this one glaring exception. Also added a missing internal API documenting comment for _yaml.node_validate() Also updated all callers to _yaml.validate_node() to now call _yaml.node_validate().
* artifactcache.py: Load the overrides from the yaml properlyTristan Van Berkom2017-10-011-5/+13
| | | | | | This was incorrectly accessing the dictionaries directly without the proper _yaml.node_get() APIs, it was also missing out on validation of the artifact configuration.
* context.py: Add _get_overrides() and basic project override validationTristan Van Berkom2017-10-011-11/+29
| | | | | | | This is just a step towards making the per-project overrides a little bit more comprehensive in the code base. Also, validation was missing on the overrides entirely.
* plugin.py: Make Plugin.node_items() just yield from _yaml.node_items()Tristan Van Berkom2017-10-011-4/+1
|
* _yaml.py: Added node_items() convenience generatorTristan Van Berkom2017-10-011-0/+19
|
* artifacts.rst: Fixed documentation about installing the receiver.Tristan Van Berkom2017-10-011-3/+3
|
* setup.py: Use env var instead of --install-option for the receiver installTristan Van Berkom2017-10-011-27/+11
| | | | | Fixes the previous commits which attempt to allow optionally only installing bst-artifact-receive, which doesnt work, because pip.
* Fix artifact push capability detectionfix-artifacts-can-pushMathieu Bridon2017-09-301-1/+1
| | | | | | | | | | Two branches got developed at the same time: * Tristan's cross-platform work * my work on per-project overrides for artifacts-related options Mine got merged first, and somehow this must have been missed in a rebase.
* doc/source/artifacts.rst: Document --artifact-receiver-only option.Tristan Van Berkom2017-09-291-7/+16
|
* setup.py: Added --artifact-receiver-only install optionTristan Van Berkom2017-09-291-37/+83
| | | | | | A convenience to install `bst-artifact-receive` on an artifact server that does not have the ostree and bubblewrap requirements to install the main `bst` program.
* Fix timestamps in Python bytecodefix-pyc-timestampsMathieu Bridon2017-09-293-0/+9
| | | | | | | | | | | | | | | | | | When building Python modules, a bytecode `.pyc` file is generated from the source `.py` file. The former contains 4 bytes representing the timestamp of the latter at the time it was generated. Unfortunately, after building OSTree sets all the file timestamps to 0, which introduces a discrepency between the timestamp of the `.py` file and the 4 bytes stored inside the `.pyc` file. As a result, when running a Python module from a checkout, Python thinks the bytecode files are stale, which causes a dramatic performance penalty when starting an application. Fixes #94
* setup.py: Make setup.py work on non-linuxcross_platformTristan Maat2017-09-282-26/+30
|
* .gitlab-ci.yml: Add fallback tests to CITristan Maat2017-09-281-9/+52
|
* Fix tests for other platformsTristan Maat2017-09-2816-5/+77
|
* tar.py: Add tar testsTristan Maat2017-09-281-0/+83
|
* mount_simple.py: Add mount testsTristan Maat2017-09-281-0/+52
|
* Implement tarcacheTristan Maat2017-09-283-4/+350
|
* Create artifactcache interfaceTristan Maat2017-09-282-286/+391
|
* Add platform factoriesTristan Maat2017-09-2835-45/+273
|
* Move sandboxes to separate directoryTristan Maat2017-09-286-568/+535
|
* _sandboxchroot.py: Implement sandboxchrootTristan Maat2017-09-281-0/+450
|
* utils.py: Fix missing psutil referenceTristan Maat2017-09-281-1/+1
|
* widget.py: Replace tail with a python implementationTristan Maat2017-09-281-6/+23
|
* build-module.sh.in: Don't attempt to copy empty sources75-source-bundle-generated-script-fails-when-a-build-element-has-no-sourceTristan Maat2017-09-271-1/+3
|
* fuse.py: Add support for Linux on ppc64Sam Thursfield2017-09-271-0/+16
| | | | | | | | | | | | | This is equivalent to this upstream pull request: https://github.com/terencehonles/fusepy/pull/72 It is needed for BuildStream to work on ppc64 architectures. Without this fix, the FUSE safe-hardlinks filesystem returns garbage. One visible effect is that running integration commands fails with "executable format error" (due to the filesystem returning garbage in place of the actual binary). https://gitlab.com/BuildStream/buildstream/issues/83
* Fork and embed fusepySam Thursfield2017-09-275-4/+988
| | | | | | | | | | | | | | | The upstream of fuse.py is <https://github.com/terencehonles/fusepy>. It looks pretty abandoned -- there have been no commits there since 5th April 2016 and there are 17 pull requests dating from 2013 onwards that are still waiting for responses from the maintainer. There's no support in fuse.py for ppc64 platforms which means BuildStream is unusable on that architecture at present. My pull request to fix that upstream is being ignored; since the module is a single .py file provided under the ISC license it is simplest to pull the whole thing into buildstream.git instead. The version of fuse.py that's been embedded is the one from pull request #72, from upstream release v2.0.4 (commit 0eafeb5).
* _loader.py: Allow environment-nocache on elements.93-creating-a-child-task-can-fail-and-raise-a-stack-traceTristan Van Berkom2017-09-221-1/+1
| | | | Fixes another regression from validating all the loaded node attributes.
* bst push: Check connectivity to cache before trying to pushsam/push-check-connectivitySam Thursfield2017-09-201-0/+2
| | | | | | On slow machines, the actual push operation can spend several minutes preparing before actually pushing, which is annoying if the push then fails.
* Specify the minimum required version of pytestMathieu Bridon2017-09-201-1/+1
| | | | | | | | A previous change introduced the usage of pytest.param to our test suite in commit 7aba0bfc906409073c4d246ec009a8622551726a. This was only added to pytest 3.1.0, and the tests can't work with older versions.
* Test the proper fallback of artifact configsMathieu Bridon2017-09-192-7/+67
|
* Let users override project artifacts optionsMathieu Bridon2017-09-194-3/+35
| | | | | | | | | | | | | | | | | | | A project can specify its artifacts cache sharing settings, and users can define a default artifacts cache to use as a fallback. With this change, users can also override the project configuration with their own. That means for a project named "libfoo", BuildStream will resolve the artifacts-related options in the following order: 1. the projects.libfoo.artifacts options from the user configuration; 2. if the above was not defined, then the artifacts options from the project configuration; 3. if the above was not defined, then the artifacts options from the user configuration; Fixes #87
* Let projects configure their artifacts pull/push optionsMathieu Bridon2017-09-194-5/+36
| | | | | | | With this commit, we first look at the artifacts options in the project configuration, then fall back on the user configuration if necessary. Relates to #87
* Give the various artifact_* attributes to the ArtifactCacheMathieu Bridon2017-09-192-22/+26
| | | | | Having them there will allow overriding the user configuration (the context) with the project configuration.
* Simplify a bit of codeMathieu Bridon2017-09-191-5/+1
| | | | | There's no need to set a default value, then ignore a KeyError when we can directly use dict.get().
* plugin.py: Add note on plugin extension supportTristan Van Berkom2017-09-191-0/+7
| | | | Note: original patch by Tristan Maat on MR !92, wording modified.
* project.py: Allow 'host-arches' and 'arches' in project.confsam/project.conf-archesSam Thursfield2017-09-171-1/+2
| | | | This fixes a regression from 6691d0eb7e20c5872d7a5f439f308ae46019777f.
* plugin.py: Fix documentation to link to correct file70-third-party-plugin-sharingTristan Van Berkom2017-09-141-1/+1
|
* Add testsTristan Maat2017-09-146-0/+111
|
* Fix affected test casesTristan Maat2017-09-141-6/+6
|
* Add documentationTristan Maat2017-09-145-1/+70
|
* Add loaded plugins to logTristan Maat2017-09-142-1/+32
|
* Add support for YAML default config loadingTristan Maat2017-09-144-16/+24
|
* _plugincontext.py: Add support for pip-installed pluginsTristan Maat2017-09-141-5/+42
|