summaryrefslogtreecommitdiff
path: root/buildstream
Commit message (Collapse)AuthorAgeFilesLines
...
* Adding caching build treesPhillip Smyth2018-07-232-1/+8
| | | | | buildstream/element.py: Adding build tree to cache buildstream/_versions.py: Bumping BST_CORE_ARTIFACT_VERSION
* cascache.py: Add pull info detailing which remote is being pulled fromQinusty/275Josh Smith2018-07-231-0/+3
| | | | Work towards fixing issue #275
* cascache.py: Add push info detailing which remote is being pushed toJosh Smith2018-07-231-0/+4
| | | | Work towards fixing issue #275
* element.py: Make Element._get_brief_display_key() available to Internal APIJosh Smith2018-07-231-18/+18
| | | | | This change will allow for more detailed info messages throughout the CASCache.
* plugins/sources/git.py: Use --shared instead of --hardlinksTristan Van Berkom2018-07-231-4/+4
| | | | | | | | This improves staging performance by avoiding making any copies of the objects in the cloned repository in the staging area before removing the .git directory. Fixes #488
* git source plugin: Omit the .git directory completely.Tristan Van Berkom2018-07-201-0/+3
| | | | | | | | This will break builds which use `git describe` to determine their version number until a more elegant solution is implemented, and will unblock work on caching of build trees in the artifacts. Fixes issue #455
* Updating .bzr plugin to omit the .bzr dirPhillip Smyth2018-07-201-0/+2
| | | | Fixes issue #455
* Fix crash when --debug is passedSam Thursfield2018-07-201-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I hit the following backtrace running `bst --debug push` and `bst --debug build`: pid:16736 id:000[--:--:--][][] START Push pid:16736 id:000[--:--:--][][] START Loading pipeline pid:16736 id:000[00:00:00][][] SUCCESS Loading pipeline pid:16736 id:000[--:--:--][][] START Resolving pipeline pid:16736 id:000[--:--:--][][] BUG 'MesonElement' object has no attribute '_Element__cache_key' Traceback (most recent call last): File "/home/sam/.local/bin/bst", line 8, in <module> sys.exit(cli()) File "/home/sam/.local/lib/python3.6/site-packages/click/core.py", line 722, in __call__ return self.main(*args, **kwargs) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/cli.py", line 162, in override_main standalone_mode=standalone_mode, **extra) File "/home/sam/.local/lib/python3.6/site-packages/click/core.py", line 697, in main rv = self.invoke(ctx) File "/home/sam/.local/lib/python3.6/site-packages/click/core.py", line 1066, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/sam/.local/lib/python3.6/site-packages/click/core.py", line 895, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/sam/.local/lib/python3.6/site-packages/click/core.py", line 535, in invoke return callback(*args, **kwargs) File "/home/sam/.local/lib/python3.6/site-packages/click/decorators.py", line 27, in new_func return f(get_current_context().obj, *args, **kwargs) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/cli.py", line 471, in push app.stream.push(elements, selection=deps, remote=remote) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_stream.py", line 341, in push fetch_subprojects=True) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_stream.py", line 814, in _load fetch_subprojects=fetch_subprojects) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_pipeline.py", line 119, in load for meta in meta_elements File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_pipeline.py", line 119, in <listcomp> for meta in meta_elements File "/home/sam/.local/lib/python3.6/site-packages/buildstream/element.py", line 894, in _new_from_meta element = project.create_element(artifacts, meta) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_project.py", line 184, in create_element element = self._element_factory.create(self._context, self, artifacts, meta) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_elementfactory.py", line 57, in create return element_type(context, project, artifacts, meta, default_config) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/element.py", line 196, in __init__ super().__init__(meta.name, context, project, meta.provenance, "element") File "/home/sam/.local/lib/python3.6/site-packages/buildstream/plugin.py", line 171, in __init__ self.debug("Created: {}".format(self)) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/plugin.py", line 407, in debug self.__message(MessageType.DEBUG, brief, detail=detail) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/plugin.py", line 652, in __message self.__context.message(message) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_context.py", line 338, in message self._message_handler(message, context=self) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/app.py", line 665, in _message_handler text = self.logger.render(message) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/widget.py", line 585, in render return self._render(message) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/widget.py", line 620, in _render text += widget.render(message) File "/home/sam/.local/lib/python3.6/site-packages/buildstream/_frontend/widget.py", line 228, in render _, key, missing = plugin._get_display_key() File "/home/sam/.local/lib/python3.6/site-packages/buildstream/element.py", line 1138, in _get_display_key cache_key = self._get_cache_key() File "/home/sam/.local/lib/python3.6/site-packages/buildstream/element.py", line 991, in _get_cache_key return self.__cache_key AttributeError: 'MesonElement' object has no attribute '_Element__cache_key' The issue here is that when `--debug` is enabled, Plugin.__init__() tries to log a message like this: pid:16929 id:001[--:--:--][????????][ main:tracker.bst ] DEBUG Created: meson element at tracker.bst [line 1 column 0] The log formatter is trying to get the cache key of the element in order to show it in the log, but the attribute hasn't yet been set because we've not got to the Element() constructor.
* Add support for creating a tarball on bst checkouttiagogomes/tarball_checkoutTiago Gomes2018-07-202-34/+104
| | | | | | | | One of the tests added is configured to be skipped for now, as dumping binary data is causing a bad descriptor exception when using the pytest capture module. Closes #263.
* source-bundle: Enable --except optionfranred/fix-except-argument-in-source-bundleFrancisco Redondo Marchena2018-07-192-2/+5
| | | | | | | Before this option was listed in help but was ignored when creating the source-bundle. Issue #468
* scheduler.py: Correct some anomalies within the docstringsQinusty/scheduler_docstring_fixJosh Smith2018-07-191-2/+4
|
* Reorder app.py imports1.3.0Daniel Playle2018-07-181-3/+2
| | | | | | | | When testing locally on some systems, it appears that pylint fails on the order of imports for `buildstream/_frontend/app.py`. This commit changes the order of these imports. This commit addresses issue !453.
* _stream.py: Clarifying ambiguous FIXME comment about required artifactsbst-1-branchpointTristan Van Berkom2018-07-181-3/+6
|
* Refactor: Use new logging mechanism from Contexttristan/local-cache-expiryTristan Van Berkom2018-07-188-318/+55
| | | | | | | | | | | | | o element.py / plugin.py: Removed supporting logging code, and derive the log handle from Context. o _scheduler/scheduler.py, _scheduler/queues/queue.py: Adapt to new Job initializer API for the logfile o _scheduler/jobs/job.py: Run job activities within the new context manager which turns on logging for a job. Also removed a lot of custom logging abstract methods which are unneeded. o _scheduler/jobs: Job implementations need not implement so much custom logging.
* _context.py: Adding apis for message recording and task logging.Tristan Van Berkom2018-07-181-1/+138
| | | | | | | | | | | | Added the new Context.recorded_messages() context manager, this causes messages to be logged in a dedicated log file before being propagated to the log handler, and also provides an open log handle for the capturing and logging of stdout/stderr from child processes. This comes with the additional accessors: Context.get_log_handle() Context.get_log_filename()
* Clean the artifact cache when we hit the cache quotaTristan Maat2018-07-186-3/+201
| | | | | When the cache quota is hit, we will remove any elements not required for the current build, until our cache is only filled halfway.
* Compute the artifact cache size after each build/pullTristan Maat2018-07-187-2/+127
|
* Make elements keep track of their built artifact sizeTristan Maat2018-07-184-0/+108
|
* Add cache_quota to user configTristan Maat2018-07-183-0/+133
|
* Make Jobs abstract and element-independentTristan Maat2018-07-1815-376/+718
|
* _scheduler/*queue.py: Move queues to a subdirectoryTristan Maat2018-07-189-13/+14
|
* utils.py: Allow `list_relative_paths` to list directoriesTristan Maat2018-07-181-6/+8
|
* _exceptions.py: Add `detail` to ArtifactErrorsTristan Maat2018-07-181-2/+2
|
* _artifactcache/cascache.py: Fix prune()Jürg Billeter2018-07-171-0/+2
| | | | | _reachable_refs_dir() failed to add directory digests to the set of reachable objects.
* _frontend/cli.py: Fix help text for `bst checkout --deps`Jürg Billeter2018-07-171-1/+1
|
* buildstream/_frontend/cli.py: Added a `--deps` flag to `bst checkout`Phillip Smyth2018-07-173-13/+18
| | | | | buildstream/_stream.py: Added deps param to _prepare_sandbox function call buildstream/element.py: Added deps param and logic to _prepare_sandbox function
* element.py: Include fail-on-overlap setting in cache keyJürg Billeter2018-07-171-0/+4
| | | | Fixes #473.
* _artifactcache: Remove unused method can_diff()juerg/googlecasJürg Billeter2018-07-172-12/+0
|
* element.py: Do not use ArtifactCache.can_diff()Jürg Billeter2018-07-171-1/+1
| | | | The only existing artifact cache implementation always returns True.
* Remove OSTree artifact cacheJürg Billeter2018-07-173-1601/+0
| | | | | | No longer used. Fixes #134, #138, #148, #217, #268, #276, #443, #460.
* Remove tar artifact cacheJürg Billeter2018-07-171-297/+0
| | | | No longer used.
* _platform: Use CAS artifact cacheJürg Billeter2018-07-172-4/+4
|
* _artifactcache/casserver.py: Update artifact ref mtime on accessJürg Billeter2018-07-171-1/+1
| | | | This makes cache cleanup LRU.
* _artifactcache/casserver.py: Add update_mtime parameter to resolve_ref()Jürg Billeter2018-07-171-1/+5
|
* _artifactcache/casserver.py: Add cache cleanup based on pushreceiveJürg Billeter2018-07-171-0/+66
|
* _artifactcache: Add CAS artifact serverJürg Billeter2018-07-171-0/+249
|
* _artifactcache/cascache.py: Add remote cache supportJürg Billeter2018-07-173-11/+400
|
* Add proto for BuildStream reference storage serviceJürg Billeter2018-07-175-0/+509
|
* _artifactcache/cascache.py: Add list_artifacts() methodJürg Billeter2018-07-171-0/+25
|
* _artifactcache/cascache.py: Add remove() methodJürg Billeter2018-07-171-0/+28
|
* _artifactcache/cascache.py: Add prune() methodJürg Billeter2018-07-171-0/+45
|
* _artifactcache: Add CAS artifact cacheJürg Billeter2018-07-171-0/+348
| | | | | | Content Addressable Storage specified in the Remote Execution API. Fixes #387.
* remote_execution.proto: Add proposed symlink supportJürg Billeter2018-07-172-97/+222
| | | | https://github.com/bazelbuild/remote-apis/pull/18/
* Import protos for the Bazel Remote Execution APIJürg Billeter2018-07-1712-0/+4576
| | | | | This imports protos from https://github.com/bazelbuild/remote-apis/ and the modules generated with ./setup.py build_grpc.
* Import Google proto dependencies for the Remote Execution APIJürg Billeter2018-07-1720-0/+2199
| | | | | This imports protos from https://github.com/googleapis/googleapis/ and the modules generated with ./setup.py build_grpc.
* setup.py: Add grpcio dependency and support for code generationJürg Billeter2018-07-171-0/+0
| | | | This allows code generation with ./setup.py build_grpc
* Only redirect elements for workspace and track operationsPRE_CAS_MERGE_JULY_2018Jonathan Maw2018-07-163-4/+19
| | | | It was redirecting for checkout operations
* _artifactcache/artifactcache.py: Update remote init error messageJürg Billeter2018-07-091-1/+1
| | | | initialize_remotes() no longer fetches remote refs.
* _signals.py: Guard against use in non-main threadJürg Billeter2018-07-081-0/+6
|
* Provide better error message on missing commandsTiago Gomes2018-07-023-0/+33
| | | | | | | Before running a command in the sandbox, check its existence and fail early if it does not. This fixes issue #289.