summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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
* _ostree.py: Fix string formatting in fetch()Jürg Billeter2017-11-201-1/+2
| | | | | | | | | New-style formatting does not implicitly convert from float to int. Add explicit conversion to fix the following error: ValueError: Unknown format code 'd' for object of type 'float' Fixes: 3b17762a ("Switch old-style string formattings to new...")
* Revert "Accept the first character as shortcut on interruption prompts"Tristan Van Berkom2017-11-192-74/+12
| | | | | | | This reverts commit d05f0f433979a6ae79667bb51d4a7a5f365941d6. Reverting this commit, seems to consistently break the cmake integration test when running on gitlab
* Accept the first character as shortcut on interruption promptsAntoine Wacheux2017-11-192-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
* tests/pipeline/load.py: Enhanced and added test cases for exceptionsTristan Van Berkom2017-11-1812-34/+73
| | | | | | | | | Make this into a single paramaterized test case and test a few more combinations: o Ensure that excepting works with multiple targets in play o Ensure that multiple exceptions succeed in excepting the commonly depended elements which are otherwise referred to by the target
* tests/testutils/runcli.bst: Fix get_pipeline() to not use mutable default ↵Tristan Van Berkom2017-11-181-1/+4
| | | | argument
* load.py: Add test to check intersection exceptionsTristan Maat2017-11-182-0/+24
|
* Fix testsTristan Maat2017-11-184-14/+3
|
* _pipeline.py: Adjust remove_elements to work on the 'intersection'Tristan Maat2017-11-181-38/+53
|
* Load excepted elements as part of the pipelineTristan Maat2017-11-182-13/+20
| | | | | | | | Causes --except specified elements to be loaded separately and the intersections of the except elements and the loaded pipeline to be calculated. This fixes issue #131
* main.py: Fix app initializationTristan Maat2017-11-181-6/+6
|
* utils.py: Fix variable name typoGökçen Nurlu2017-11-171-1/+1
|
* Switch old-style string formattings to new '.format()'Gökçen Nurlu2017-11-1717-80/+81
|
* _yaml.py: Remove extra brackets in Provenance classGökçen Nurlu2017-11-171-2/+2
|
* plugins/sources/tar.py: Consider link names in extractionTristan Van Berkom2017-11-171-0/+13
| | | | | | | | When extracting files from a base directory, we are normalizing the TarInfo file names so we need to also normalize the link names in the case of links and symlinks. Fixes issue #155
* tests/sources/tar.py: Test for tarballs containing linksTristan Van Berkom2017-11-173-0/+43
| | | | This reproduces issue #155
* element.py: Fixed manual signature override in docstringTristan Van Berkom2017-11-161-1/+1
| | | | | | | Now that recurse is a mandatory keyword argument, the docs should also reflect this; this must be done manually because we override the signature here in the docstring, to hide some private arguments.
* sandbox.py: Make mark_directory use keyword args97-apply-pep-3102-to-all-public-api-surfacesJonathan Maw2017-11-141-1/+1
|
* sandbox: Make sandbox.run use keyword argsJonathan Maw2017-11-143-3/+3
|
* utils.py: Make {copy,link,move}_files use keyword argsJonathan Maw2017-11-141-3/+3
|
* compose.py: Use keyword args for utils.move_filesJonathan Maw2017-11-141-1/+1
|
* utils.py: Make safe copy/link/move use keyword argsJonathan Maw2017-11-141-3/+3
| | | | | | The 'result' field is optional, and currently used only by the internals of {copy,move,link}_files. I think it makes sense to mandate that it's called as a keyword arg in future.
* plugin.py: Make timed_activity enforce keyword argsJonathan Maw2017-11-141-1/+1
|
* plugin.py: Make the logging methods use keyword argsJonathan Maw2017-11-141-5/+5
|
* element.py: Change node_subst_member's 'default_value' field to 'default'Jonathan Maw2017-11-141-5/+5
|
* Change node_get_member to use default instead of default_valueJonathan Maw2017-11-141-5/+5
|
* Make node_subst_member pass default values as positional argsJonathan Maw2017-11-142-2/+2
|
* Make node_get_member pass default values as positional argsJonathan Maw2017-11-142-4/+4
| | | | | It is functionally similar to dict.get() and fulfills the same role, so it should be used that way.
* Make Element.depends use mandatory keyword argsJonathan Maw2017-11-141-1/+1
| | | | | Since the 'recurse' arg is a boolean, using it as an argument without a keyword is likely to cause confusion.
* Apply pep 3102 to element's stage_artifact and stage_dependency_artifactsJonathan Maw2017-11-141-2/+2
| | | | | The arguments are optional, and none of the arguments depend on each other, meaning that they do not make sense as optional positional arguments.
* Refactor, remove some unused imports138-aborting-bst-push-command-causes-stack-traceAngelos Evripiotis2017-11-134-6/+0
| | | | | | | When reading element.py, I was surprised that it was importing 'inspect'. Remove that import and some other unused ones to improve readability.
* autotools: Always run the autogen stepMathieu Bridon2017-11-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | BuildStream made the choice to unconditionally run the autogen step for autotools elements, even when building from tarballs. However, due to how the conditionals for what to do in that step were set up, some tarballs would fall through the crack and effectively skip that step. For example the Python tarballs and VCS checkouts both: * do not have an autogen/autogen.sh script * do not have a bootstrap/bootstrap.sh script * do have a configure script The conditionals we had before this change would not do anything for a project like that, and the first thing to actually be run would be the configure script. With this change, `autoreconf` gets run whether the configure script exists or not, ensuring we always effectively do the autogen step. More details on the mailing-list: https://mail.gnome.org/archives/buildstream-list/2017-November/msg00015.html
* Change origin to point at source repoDaniel Playle2017-11-113-6/+60
| | | | | | | | | | | | This changes workspaces created with the git source element so that the origin remote points to the source repository of the build element as opposed to the internal repository in the bst cache. This introduces an addition of the init_workspace method in the source API. This method, which defaults to calling stage, is for the setup of the workspace after the creation of the workspace directory. This is a part of issue #53
* doc/source/docker.rst: Fix formattingSam Thursfield2017-11-101-3/+5
|
* Remove DummyElement hackTristan Maat2017-11-102-35/+35
|
* load.py: Migrate to new test styleTristan Maat2017-11-102-89/+90
|
* git.py source plugin: Prune remote-tracking branches when fetchingsam/git-fetch-pruneSam Thursfield2017-11-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I noticed this issue when running `bst track` on a system that contained GLIBC. The following error occurred: [--:--:--] START [gnu-toolchain/stage2-glibc.bst]: Tracking release/2.25/master from git://git.baserock.org/delta/glibc Running host command /home/fedora/src/baserock/definitions/.cache/buildstream/sources/git/git___git_baserock_org_delta_glibc: /usr/bin/git fetch origin [--:--:--] STATUS [gnu-toolchain/stage2-glibc.bst]: Running host command /usr/bin/git fetch origin error: cannot lock ref 'refs/heads/hjl/memcpy/dpdk/master': 'refs/heads/hjl/memcpy' exists; cannot create 'refs/heads/hjl/memcpy/dpdk/master' From git://git.baserock.org/delta/glibc ! [new branch] hjl/memcpy/dpdk/master -> hjl/memcpy/dpdk/master (unable to update local ref) error: cannot lock ref 'refs/heads/hjl/x86/master': 'refs/heads/hjl/x86' exists; cannot create 'refs/heads/hjl/x86/master' ! [new branch] hjl/x86/master -> hjl/x86/master (unable to update local ref) error: cannot lock ref 'refs/heads/hjl/x86/math': 'refs/heads/hjl/x86' exists; cannot create 'refs/heads/hjl/x86/math' ! [new branch] hjl/x86/math -> hjl/x86/math (unable to update local ref) error: cannot lock ref 'refs/heads/hjl/x86/optimize': 'refs/heads/hjl/x86' exists; cannot create 'refs/heads/hjl/x86/optimize' ! [new branch] hjl/x86/optimize -> hjl/x86/optimize (unable to update local ref) error: some local refs could not be updated; try running 'git remote prune origin' to remove any old, conflicting branches git source at gnu-toolchain/stage2-glibc.bst [line 4 column 2]: Failed to fetch from remote git repository: git://git.baserock.org/delta/glibc The issue here is that my local clone had old remote-tracking refs which conflicted with newer upstream refs. For example, there used to be a ref named `hlj/memcpy` which I had mirrored locally. This has been deleted and now a ref exists named `hlj/memcpy/dpdk/master`. The new ref cannot be pulled because Git considers it to conflict with the old one. The solution is to use `git fetch --prune` when updating so that Git removes any outdated remote-tracking refs before trying to create any new ones.
* Refactor: Move context.py -> _context.pyTristan Van Berkom2017-11-0816-84/+74
| | | | | | | | | | Consequently: o Changed Plugin.get_context() to a private Plugin._get_context() accessor. o Updated anything which imports Context to do so from private _context module o Updated docs to exclude the now private Context
* Allow overwriting a list with an empty list using (=) operatorsam/overwrite-list-with-empty-listSam Thursfield2017-11-083-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | I found myself writing the following split rules for an element: public: bst: split-rules: runtime: (=): [] devel: (>): - | %{bindir}/* The aim was to put all of this element's binaries into the 'devel' domain, and make sure nothing went into the 'runtime' domain by replacing the built-in rules for that domain with an empty list. That wasn't working though because BuildStream was using [] (empty list) as a sentinel to mean "do nothing", which is fine for the prepend and append operators (prepending an empty list to a list has no effect) but is not really correct for the overwrite operator. This commit fixes that issue and adds a test.
* _frontend/main.py: Fix #133 - make completions work for --except argumentsTristan Van Berkom2017-11-081-1/+6
|
* integration-tests: Fix `run-tests.sh --sources DIR` when DIR doesn't existSam Thursfield2017-11-061-2/+2
| | | | | | | | | | | We need to canonicalize the path using the `realpath -m` or `realpath --canonicalize-missing`, otherwise if the directory doesn't exist we get an error: realpath: /tmp/foo/bar/: No such file or directory The tests still work if this happens but the sources go into the default location because the BST_SOURCE_CACHE variable goes unset.
* doc/source/pluginauthoring.rst: Removed Project from documentationTristan Van Berkom2017-11-061-1/+0
|
* refactoring: Made Project option privateTristan Van Berkom2017-11-0620-91/+105
| | | | | | | | | | | | | | This required adding two new APIs to make up for it on the Source o get_project_directory() Added here because elements should not be accessing external resources, Sources needed for local files and GPG keys and such o translate_url() Used by sources to mish-mash the project aliases and create real urls.