summaryrefslogtreecommitdiff
path: root/buildstream/_pipeline.py
Commit message (Collapse)AuthorAgeFilesLines
* _pipeline.py: Only raise the error for inconsistent pipelineTristan Van Berkom2018-01-111-2/+1
| | | | | Dont make the ERROR message explicitly anymore, leave that to the frontend to sort out.
* _pipeline.py: Raise detailed pipeline error at preflight timeTristan Van Berkom2018-01-061-2/+11
| | | | | If a plugin raises an error, prepend the plugin identifier to the error message and raise PipelineError.
* Use save_file_atomic() when writing source-bundle scriptsSam Thursfield2018-01-041-1/+1
|
* _pipeline.py: Added context to some errorsTristan Van Berkom2018-01-011-1/+1
|
* Make external plugin loading require explicit configuration in project.confJonathan Maw2017-12-131-2/+2
| | | | | | In addition, it changes the "plugins" and "required-versions" fields, combining them for plugins and adding a new "required-project-version" field.
* _pipeline.py: Removed tickers, use timed activities insteadTristan Van Berkom2017-12-131-54/+38
| | | | | | | | Currently this does not update the task list, and is for timing groups of activities from the frontend, or for timing long standing tasks which run directly in the frontend and not in a child task (like downloading the refs from a remote at load time before a build commences).
* Add `bst build --track-except`Tristan Maat2017-12-131-1/+1
|
* Issue #117: Add `bst build --track`Tristan Maat2017-12-131-45/+92
|
* Issue #113: Split tracking and saving in `bst build`Tristan Maat2017-12-131-3/+6
|
* _pipeline.py: Fix makedirs exception handlingAngelos Evripiotis2017-12-121-1/+1
|
* Remove unused variablesGökçen Nurlu2017-12-111-1/+0
|
* Remove unused importsGökçen Nurlu2017-12-071-3/+1
|
* _pipeline.py: Added hardlinks option to Pipeline.checkout()Tristan Van Berkom2017-12-051-5/+29
| | | | This fixes #162
* _pipeline.py: Load platform before creating Loader instanceJürg Billeter2017-11-301-5/+5
| | | | This allows platform access in Loader code.
* Only initialize remote artifact cache connections if neededSam Thursfield2017-11-231-3/+4
| | | | | | | | | | | | | | | | 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.
* Replace 'push-url' and 'pull-url' options with just 'url'sam/canonical-push-urlsSam Thursfield2017-11-221-22/+2
| | | | | | | | 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!
* Check connectivity to remote cache on `bst push`Sam Thursfield2017-11-221-0/+2
|
* _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-181-4/+8
| | | | | | | | 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
* Change origin to point at source repoDaniel Playle2017-11-111-1/+1
| | | | | | | | | | | | 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
* Remove DummyElement hackTristan Maat2017-11-101-18/+10
|
* Refactor: Move context.py -> _context.pyTristan Van Berkom2017-11-081-1/+1
| | | | | | | | | | 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
* Refactoring: Renamed _BstError -> BstErrorTristan Van Berkom2017-11-061-15/+1
| | | | | | 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-061-3/+3
| | | | This is now part of the already private _exceptions module
* Refactoring: Move exceptions module to be privateTristan Van Berkom2017-11-061-2/+2
| | | | Hide all of buildstream's internal exceptions from the API surface.
* _pipeline.py: Removing archesTristan Van Berkom2017-11-061-12/+4
| | | | | Also now the integration option to `bst checkout` is explicit, as we dont have knowledge of arches anymore.
* Adjust commands to multiple targetsTristan Maat2017-11-041-24/+37
|
* _pipeline.py: Misc adjustments to multiple targetsTristan Maat2017-11-041-7/+22
|
* _pipeline.py: Fix metaelement resolutionTristan Maat2017-11-041-9/+7
|
* _pipeline.py: Adjust to new loader APITristan Maat2017-11-041-5/+6
|
* _pipeline.py: Adjust Planner.plan to multiple targetsTristan Maat2017-11-041-3/+3
|
* Make the platform object a singletonTristan Maat2017-11-011-1/+2
|
* _pipeline.py: No except_ argument in source_bundleTristan Van Berkom2017-10-301-3/+1
| | | | | | | This is deadcode, except_ is already calculated before we get here. Updated some internal comments to reflect this, and updated the frontend to not pass the useless except_ parameter.
* _pipeline.py: The toplevel message() function no longer takes an element.Tristan Van Berkom2017-10-301-35/+32
| | | | | | | | | | | | | | | | | | | Instead, use None as the unique ID. This will help with messaging when we allow invoking multiple targets and the element would have been ambiguous - this also consequently fixes issue #137. The reason for the hangs with #137 is because: o When you --except a base element, reverse dependencies cannot calculate a cache key o When you track, cache keys are intentionally reset at startup time, because we know they are going to change o At the end of tracking, we make one attempt to print the toplevel cache key This operation is insanely expensive, because we never cache a cache key because it logically cannot ever be resolved in this situation. This fix is basically a workaround to the above.
* _pipeline.py: Make fetching of remote refs optionalTristan Van Berkom2017-10-291-1/+3
| | | | Default is not to fetch them, we only need them in a few cases.
* _pipeline.py: Improve error message when --except fails.Tristan Van Berkom2017-10-261-1/+1
| | | | This is an interim step for issue #131.
* _pipeline.py: Give the correct artifact pull URL in remote tickerSam Thursfield2017-10-251-1/+1
| | | | | | | | | | I was seeing messages like this: Fetching artifact list from None However, the artifact cache did have the correct pull URL set -- the issue was that I had overridden it my own config, and the string we sent to the ticker didn't take that override into account.
* _pipeline.py: Pass the project options to the loaderTristan Van Berkom2017-10-101-0/+1
|
* project.py: More consistent api for workspacesremove-variantsTristan Van Berkom2017-10-081-1/+1
| | | | | | | | Renamed _workspaces() -> _list_workspaces(), and changed local cache of workspaces from __workspaces -> _workspaces. We only really use the double underscore when there is a concern for freeing up namespace for public subclassing.
* _pipeline.py: No more target variantTristan Van Berkom2017-10-081-7/+4
|
* Add platform factoriesTristan Maat2017-09-281-6/+4
|
* 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.
* Let users override project artifacts optionsMathieu Bridon2017-09-191-1/+2
| | | | | | | | | | | | | | | | | | | 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-191-1/+1
| | | | | | | 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-191-1/+1
| | | | | Having them there will allow overriding the user configuration (the context) with the project configuration.
* Construct pipeline without push queue if cannot push to artifact cacheChandan Singh2017-09-121-8/+9
| | | | | | | | | Currently, if BuildStream is unable to push to the artifact cache for whatever reason, the build will just error out. Fix it so that if we are unable to push to the shared cache, we give a warning to the user and continue building. Fixes https://gitlab.com/BuildStream/buildstream/issues/90
* _pipeline.py: Raise pipeline error in pull/pushTristan Van Berkom2017-09-051-2/+2
| | | | | Instead of trying to fire a MessageType.FAIL without an elapsed parameter, and then not returning from the push()/pull() methods.
* source-bundle: fix filtering out of non-build elementsCharles Bailey2017-09-011-7/+12
| | | | | | Attempting to remove an element from the list being iterated through has undesirable results; fix this by creating a new, filtered list rather than attempting to modify the original list in place.
* workspace open: --no-checkout doesn't need --forceAngelos Evripiotis2017-08-151-1/+1
| | | | | | | | | | Remove the requirement to specify '--force' in conjunction with '--no-checkout' if there are already files in the workspace. We won't write anything when opening the workspace, so there's nothing to force. For example, when opening a workspace to an existing clone of a repository, it seems alarming to have to '--force' the workspace open. It made me wonder if it will actually be overwritten.
* _pipeline.py: Add remote_ticker for artifact list fetchingJürg Billeter2017-08-151-0/+3
|