summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* load.py: Add test to check intersection exceptions131-behavior-of-except-argument-is-frustrating-and-confusingTristan Maat2017-11-172-0/+24
|
* Fix testsTristan Maat2017-11-174-14/+3
|
* _pipeline.py: Adjust remove_elements to work on the 'intersection'Tristan Maat2017-11-171-38/+53
|
* Load excepted elements as part of the pipelineTristan Maat2017-11-172-13/+20
|
* main.py: Fix app initializationTristan Maat2017-11-171-6/+6
|
* 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.
* tests/sandboxes/mounting/mount_simple.py: Changed to test new Mounter objectsandbox-mounts-refactorTristan Van Berkom2017-11-061-3/+3
|
* sandbox: Refactoring, moving accidentally public MountMap into it's own fileTristan Van Berkom2017-11-065-112/+135
|
* sandbox/_mounter.py: Added missing copyright headerTristan Van Berkom2017-11-061-0/+20
|
* sandbox/_mount.py: Renamed _mounter.pyTristan Van Berkom2017-11-062-3/+3
| | | | | Disambiguate with the Mount and MountMap classes, which were accidentally added to public API.
* buildelement.py: Fixed doc string link.exceptions-refactorTristan Van Berkom2017-11-061-1/+1
|
* doc/source/formatintro.rst: Fixed duplicate link anchorTristan Van Berkom2017-11-061-1/+1
|
* Refactoring: Renamed _BstError -> BstErrorTristan Van Berkom2017-11-068-50/+52
| | | | | | Base class for exceptions is now a part of the already private _exceptions module Also moved PipelineError from _pipeline -> _exceptions module
* Refactoring: Rename _ArtifactError -> ArtifactErrorTristan Van Berkom2017-11-066-34/+34
| | | | This is now part of the already private _exceptions module
* Refactoring: Move exceptions module to be privateTristan Van Berkom2017-11-0650-109/+118
| | | | Hide all of buildstream's internal exceptions from the API surface.
* Refactoring: Move ElementError and SourceError to their respective classes, ↵Tristan Van Berkom2017-11-066-40/+47
| | | | | | | | | | create SandboxError These errors are a part of public facing API, and the exceptions module contains a lot of internal details to be hidden from public API. This move required creating SandboxError because sandbox related code had previously been hijacking the ElementError and raising that.
* plugins/sources/zip.py: Dont depend on python 3.6 methodTristan Van Berkom2017-11-061-8/+10
| | | | | | Also, restructured a bit to match tar source, there was never any need for the `dirs_only` parameter for listing the archive paths, the source is only interested in directories anyway.
* tests/sources/tar.py: Removing some unused test dataTristan Van Berkom2017-11-062-8/+0
|
* tests/sources/zip.py: Adding tests for zip source edge casesTristan Van Berkom2017-11-0613-0/+221
|
* tests/sources/fixture.py: Removing the old deprecated fixtureTristan Van Berkom2017-11-061-55/+0
|
* tests/sources/bzr.py: Removing bzr source testTristan Van Berkom2017-11-0613-238/+0
| | | | | | | | This does not test much more than the regular frontend tests against the bzr source, and was presenting difficulty to migrate to the proper new CLI fixtures. This was also the last source test using the older deprecated fixture.
* Updating cache key test for recent changes related to issue #121Tristan Van Berkom2017-11-063-2/+2
|