summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tests: Test whether a plugin is allowed to be loaded132-loading-external-plugins-works-without-explicit-requirement-in-project-confJonathan Maw2017-12-0811-1/+62
|
* Update tests for changed plugin loadingJonathan Maw2017-12-0817-103/+225
| | | | | | Checking for plugins with the same name no longer happens in the plugincontext, it happens in project, so the old test was removed and a new one added.
* Make external plugin loading require explicit configuration in project.confJonathan Maw2017-12-086-142/+216
| | | | | | In addition, it changes the "plugins" and "required-versions" fields, combining them for plugins and adding a new "required-project-version" field.
* tests/frontend/buildcheckout.py: Adding `bst checkout` testsTristan Van Berkom2017-12-051-5/+91
| | | | | | | | | o Test that we fail gracefully when there is already data in the checkout target o Test that we still checkout into dirty directories with --force o Test hardlink checkouts
* utils.py: Removing safe_move() and move_files() APIsTristan Van Berkom2017-12-051-65/+0
| | | | | These are not used anywhere internally and are not really desirable to use, as usually you need only care about moving a toplevel directory.
* _frontend/main.py: Adding --hardlinks option to `bst checkout`Tristan Van Berkom2017-12-051-2/+4
| | | | This fixes #162
* _pipeline.py: Added hardlinks option to Pipeline.checkout()Tristan Van Berkom2017-12-051-5/+29
| | | | This fixes #162
* tests/testutils/runcli.py: Always run with --no-colorsSam Thursfield2017-12-051-1/+1
| | | | | | | | | | Pytest defaults to capturing stdout, which has the side effect of making BuildStream realise it's not outputting to a terminal and disabling its ANSI colour code output. If you pass `--capture=no` then BuildStream detects the terminal and the colour codes are emitted, which breaks all of the tests which match on specific output from `bst`. Forcefully disable colours to fix that.
* HACKING.rst: the setup.py --addopts flag can only be given onceSam Thursfield2017-12-051-1/+1
|
* element.py: Removing unconditional INFO message when stagingTristan Van Berkom2017-12-051-1/+0
| | | | This seems to be debug print left around in the branch.
* buildstream/plugins/elements/cmake.yaml: Always create build folderjjardon/cmake_buildJavier Jardón2017-12-052-5/+7
| | | | | | | | | | | | | This is the common practice with cmake Actually, some modules will fail to build if this is not follow. For example for llvm you wil get this error when configuring: " CMake would overwrite the makefiles distributed with LLVM. Please create a directory and run cmake from there, passing the path to this source directory as the last argument. "
* update install instructions for Debian (fix #159)Abderrahim Kitouni2017-12-041-8/+9
|
* Add a test for overlaps114-give-better-warnings-on-overlapsJonathan Maw2017-12-0113-0/+62
|
* Produce a more in-depth report of overlaps when stagingJonathan Maw2017-12-011-9/+23
| | | | | The information provided by link_files is not sufficient to know which element had the overlapped file.
* utils: Expand file copying to optionally report files writtenJonathan Maw2017-12-011-7/+23
|
* buildstream/plugins/elements: Add *-global and *-local configuration variablesJavier Jardón2017-11-303-3/+9
| | | | | | | | | This will allow to define: - global configuration parameters that will be used to all the elements using that build system - local configuration parameters that will override the global ones Left *-extra for compatibility
* Issue #142: Ensure we don't append provenances twiceTristan Maat2017-11-302-5/+10
|
* Add a test for tar lzipValentin David2017-11-303-0/+58
|
* Add support for lzip in tar source. Fix #158.Valentin David2017-11-301-1/+32
|
* Allow stdout and stderr to be overriden in Plugin.callValentin David2017-11-301-5/+4
|
* _options/optionpool.py: Split load_valuesJürg Billeter2017-11-302-6/+14
| | | | | Split load_values into load_yaml_values and load_cli_values to allow independent loading from multiple YAML nodes.
* _pipeline.py: Load platform before creating Loader instanceJürg Billeter2017-11-301-5/+5
| | | | This allows platform access in Loader code.
* _loader.py: Remove historic distinction between element name and filenameJürg Billeter2017-11-301-8/+6
| | | | They have been the same for a long time.
* _loader.py: Remove unused basedir attribute from LoadElementJürg Billeter2017-11-301-5/+2
|
* _loader.py: Remove unused owner attribute from DependencyJürg Billeter2017-11-301-7/+6
|
* _loader.py: Create Dependency objects for dummy targetJürg Billeter2017-11-301-1/+1
| | | | Match the structure of real targets.
* .coveragerc: Ignore eggsJürg Billeter2017-11-301-0/+1
|
* plugin.py: Add log() methodSam Thursfield2017-11-291-0/+12
| | | | This is a helper to log messages into the plugin's log file.
* Fix untar of symlinks. Only hardlinks are relative to top of archive and ↵Valentin David2017-11-291-3/+1
| | | | should be normalized.
* bst-here: Mitigate permission issuesbst-here-permissionsTristan Maat2017-11-291-2/+10
|
* .gitlab-ci.yml: Use source distribution tarballs in all testsTristan Van Berkom2017-11-281-13/+74
| | | | | | | | | | | | This commit adds an initial stage to the pipeline to build a distribution tarball and generate some helper scripts for later CI to use to unpack it and install it. Then, it makes sure that all pytest and integration test runs work from the dist tarball instead of directly from the git repo, also the docs are built from the dist tarball. This ensures that everything continues to work with a dist tarball at all times.
* Remove all deleted paths from manifest after integration commands inValentin David2017-11-271-1/+3
| | | | | | | | | | compose plugin including paths still reachable through following of symbolic links. Keeping reachable paths through following of symbolic links in manifest. Can lead to ENOENT error when copying the file if target directory of a symbolic link is not yet created. The file is anyway copied since the real path of the file is also in the manifest.
* .gitlab-ci.yml: Use specific version of buildstream-fedora Docker imageSam Thursfield2017-11-271-1/+1
| | | | | | | | | | | | | | | | | | | | The image is rebuilt nightly which means it could change under our feet and cause confusing breakages. The reason for these nightly rebuilds is so that the `bst-here` script offers a reasonably fresh version of BuildStream to users. But it also means that dependencies could change in broken ways. You can see the list of tags here, ordered by newness: https://hub.docker.com/r/buildstream/buildstream-fedora/tags/ The number in one of these tag names is the "version" of the image (which is really the number of commits in the buildstream-docker-images repo), while the hex string identifies the commit of BuildStream that the image contains. When changing the Docker image (to add new dependencies, or whatever) you will need to wait until the new tag is pushed, then modify .gitlab-ci.yml so that it pulls the new tag.
* Replace call to legacy urllib.request.urlretrieve by urllib.request.urlopen ↵Valentin David2017-11-251-8/+12
| | | | and add accept header to avoid 406 error on some http servers (e.g alioth.debian.org).
* setup.py: Pinning coverage at 4.4.0 instead of 4.2Tristan Van Berkom2017-11-251-1/+1
| | | | | | Our problem is with 4.4.2; and 4.2 lacks some features and fails to collect all of the coverage from sub processes, causing our reports to drop by 10%.
* Only initialize remote artifact cache connections if neededSam Thursfield2017-11-234-15/+26
| | | | | | | | | | | | | | | | This fixes a regression from the canonical-pull-urls branch that was just merged. The `OSTreeCache.__init__()` function was connecting to the cache, which is bad because execution would randomly freeze for several seconds when the connection was slow. We now only initialize remote connections where needed; this was already introduced in 5c2ef6d076921bc0121e61efaa7a719c34ea1912 but had regressed. I renamed the keyword arg from `fetch_remote_refs` to `use_remote_cache` because it needs to be set for any interaction with the remote cache, doesn't matter if they are fetches or pushes. The initialization stage is also moved later so that we print a message telling the user what we are up to before trying the network access.
* _artifactcache.py: Fixed stack trace regression in pushing of artifacts.Tristan Van Berkom2017-11-241-2/+2
|
* Replace 'push-url' and 'pull-url' options with just 'url'sam/canonical-push-urlsSam Thursfield2017-11-2211-123/+73
| | | | | | | | This is possible now that the SSH protocol can redirect to the appropriate pull URL. Note that this commit makes no attempt at backwards compatibility. Everthing will break!
* Remove the push-port config optionSam Thursfield2017-11-229-40/+16
| | | | | | | | | | | | Ports can and should be specified by using proper ssh:// URL forms, e.g: ssh://artifacts@example.com:22200/artifacts The alternate form of artifacts@example.com:artifacts isn't a valid URL, and doesn't let you specify a different port. People are used to this form due to Git continuing to use it but we should encourage people to use proper URLs.
* Artifact push URLs must redirect to the corresponding pull URLSam Thursfield2017-11-223-16/+58
| | | | | | | | | | | | | | | | | This change is part of issue #112 ("Artifact configuration is confusing and fragile, need canonical push/pull urls.") It updates the bst-artifact-receive program to send a pull URL to clients who access it over SSH. This requires extra configuration in the artifact cache server, so that it knows the correct pull URL. Versions of BuildStream which contain this commit will not be able to communicate over SSH with artifact caches that have not been updated to the same version. Currently this is just used to double-check user configuration, but we can now simplify the user facing configuration for artifact caches completely.
* Check connectivity to remote cache on `bst push`Sam Thursfield2017-11-221-0/+2
|
* setup.py: Add pytest-xdist dependencyJürg Billeter2017-11-221-0/+2
| | | | | | This allows running tests in parallel: ./setup.py test --addopts "-n auto"
* Accept the first character as shortcut on interruption prompts130-interactive-prompt-prefixAntoine Wacheux2017-11-212-12/+74
| | | | | | | | On interruption, this makes buildstream to accept the first character of all the possible choices as if it was the full command. This behavior has been added to the failure screen and to the interruption screen. Fixes https://gitlab.com/BuildStream/buildstream/issues/130
* doc/source/install.rst: Added instructions to install on FedoraTristan Van Berkom2017-11-211-0/+9
| | | | | | | Used the packages names we use for the docker containers we use for CI, which are fedora based. Fingers crossed that this is the right set of package names.
* setup.py: Pinning coverage down to version 4.2Tristan Van Berkom2017-11-211-1/+3
| | | | | | | Seeing random crashes with 4.4.2, these are solved by simply using version 4.2. Need to investigate and report proper bug to upstream for this.
* Removing unneeded str() statements in "{}".format() statementsTristan Van Berkom2017-11-214-13/+13
| | | | | Since these changes were effected in 3b17762a4cab23c238762ca32baa348788347473, these stringifications are now implied and no longer needed.
* integration-tests: Adding a compose test ensuring removed files in ↵Tristan Van Berkom2017-11-204-5/+56
| | | | integration are removed
* plugins/elements/compose.py: post merge fixing of compose elementTristan Van Berkom2017-11-201-19/+27
| | | | | | | | | | o Some things changed in master since this patch, notably the keyword only arguments have changed o Enhanced the user feedback to mention removed, added and modified files resulting from running integration o Dont silence messages while integrating the sandbox
* element.py: Some changes to the added compute_manifest() methodTristan Van Berkom2017-11-201-10/+2
| | | | | | | | o Use the * parameter to denote keyword-only arguments o Remove the docs mentioning that it is specifically for the compose element use case, while it's only used here currently, it is not necessarily true.
* Handle removed files from integration in compose pluginValentin David2017-11-202-20/+58
| | | | Fixes issue #147