Commits on Source (85)
-
Tristan Maat authored
-
Tristan Maat authored
-
Tristan Maat authored
-
Tristan Maat authored
-
Tristan Maat authored
-
Tristan Maat authored
-
Tristan Maat authored
-
Tristan Maat authored
-
Tristan Maat authored
When the cache quota is hit, we will remove any elements not required for the current build, until our cache is only filled halfway.
-
Tristan Maat authored
-
Tristan Maat authored
-
Tristan Van Berkom authored
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()
-
Tristan Van Berkom authored
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.
-
Tristan Van Berkom authored
-
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.
-
Chandan Singh authored
Instead of re-using the user-facing `buildstream/buildstream-fedora` image for tests (that comes with BuildStream pre-installed), use `buildstream/testsuite-fedora` image that is supposed to be used exclusively for these tests. Similarly, use the dedicated `buildstream/testsuite-debian` image instead of `buildstream/buildstream-debian`. Fixes #458. For related discussion, see buildstream-docker-images#8.
-
-
Francisco Redondo Marchena authored
Before this option was listed in help but was ignored when creating the source-bundle. Issue #468
-
`ruamel.yaml` seems to require `Python.h` header file to build. `python3-devel` is what provides it for Fedora.
-
Javier Jardón authored
Also remove the recomendation to install psutil as we need to build other python modules anyway (like ruamel) Completes 96d07153
-
These dependencies are needed to use the plugins that are installed as part of this guild. As the dependencies added are not dependencies of the core package they have been added to a separate section. The lzip package is needed to build gnome. https://wiki.gnome.org/Newcomers/BuildSystemComponent
-
Javier Jardón authored
-
Javier Jardón authored
-
Tiago Gomes authored
-
Tiago Gomes authored
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.
-
Tristan Van Berkom authored
This causes the new artifact tests to pass (unless you happened to already have a recent enough version of pytest-cov, in which case you didn't notice the breakage).
-
Sam Thursfield authored
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.
-
Fixes issue #455
-
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
-
Tristan Van Berkom authored
Instead, we are enabling the merge commit feature in gitlab and hopefully reducing some of the friction in review this way.
-
Tristan Van Berkom authored
-
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
-
Tristan Van Berkom authored
plugins/sources/git.py: Use --shared instead of --hardlinks Closes #488 See merge request !557
-
This change will allow for more detailed info messages throughout the CASCache.
-
Work towards fixing issue #275
-
Work towards fixing issue #275
-
Tristan Van Berkom authored
Indicate where artifacts are going to and coming from in the log Closes #275 See merge request !553
-
Phillip Smyth authored
buildstream/element.py: Adding build tree to cache buildstream/_versions.py: Bumping BST_CORE_ARTIFACT_VERSION
-
Tristan Van Berkom authored
Adding caching build trees (limited) See merge request !560
-
Javier Jardón authored
-
Javier Jardón authored
doc/source/install_linux_distro.rst: buildstream doesn't hard depend on ostree or pygobject anymore Closes #492 See merge request !558
-
Jonathan Maw authored
Remove misleading info message See merge request !567
-
Phil Dawson authored
Add test to ensure gracefull handling of exception thrown while loading a pipeline due the python's max recursion depth being exceeded. This is part of the work for issue #203
-
Phil Dawson authored
Because the RecursionError exception was introduced in Python 3.5, until we drop support for for Python 3.4, we must use RuntimeError.
-
Jim MacArthur authored
Phil/203 BuildStream crashes when dependency tree too deep See merge request !512
-
Phillip Smyth authored
tests/frontend/workspace.py: Added tests
-
Jonathan Maw authored
_stream.py: Added functionality for workspace open -f See merge request !549
-
Ed Baunton authored
Add a plugin that supports downloading files verbatim from a source with an optional overridable filename and destination directory. Bumps bst format version to 10. Fixes #163
-
Ed Baunton authored
When the user provides a path for the filename parameter, provide a reason
-
Ed Baunton authored
Add remote source plugin Closes #163 See merge request !541
-
Daniel went through the Doc's etc and made a list of suggestions. These are the result of the most easily patched suggestions and one or two thing that I noticed as well.
-
Javier Jardón authored
Documentation typos and fixes See merge request !569
-
Qinusty authored
job.py: Changes to the logic surrounding retry attempts and child process return codes element.py, source.py: ElementError and SourceError also implement this change. These exceptions now have an optional parameter of temporary which defaults to false. This will potentially break backwards compatibility where exceptions were previously raised and a retry was intended. To trigger a retry, one must now raise their SourceError or ElementError with temporary=True. This aims to fix #397.
-
Qinusty authored
This follows the change in 67ecd97a05279a3b7570ad59f05bf0a5973ef04c.
-
Qinusty authored
This is following 5d6418a06a3a0262df5f6b9e6e1a36578515fd4a where DownloadableFileSource was modified to raise 'temporary' errors when relating to file downloading.
-
Qinusty authored
Further work needs to be done for the current grpc exceptions which are reraised.
-
Qinusty authored
Plugin.call() now takes fail_temporarily as an optional parameter, when supplied it will cause subsequent failures to trigger temporary errors as opposed to permanent errors. This also extends Plugin.check_output() which makes use of Plugin.call()
-
Qinusty authored
The git plugin will now make use of the fail_temporarily parameter to Plugin.call(), allowing failures to trigger a retry.
-
Tristan Van Berkom authored
Temorary failures Closes #397 See merge request !574
-
Tristan Van Berkom authored
Since we backported the temporary/permanent failures patch for #397 into the `bst-1.2` branch, we need to adjust the since versions in master down to 1.2.
-
Tristan Maat authored
cascache.py: Raise ArtifactError on grpc error Closes #502 See merge request !576
-
-
-
Qinusty authored
-
Javier Jardón authored
Refer readers to our tutorial before referring them to existing bst projects See merge request !578
-
Jonathan Maw authored
-
Jonathan Maw authored
The separator is useful in source files other than _project.py
-
Jonathan Maw authored
This is part of a later plan to implement mirroring without forcing everyone to update their sources. We use the expected calls to Source.translate_url() when running Source.configure() to extract the aliases from the URL. Multiple aliases must be extracted because sources exist that may fetch from multiple aliases (for example, git submodules) Later, we want to substitute another URI where the alias normally reads from the project - We accomplish this by re-instantiating the Source with the alias overrides passed as an argument to the constructor.
-
Jonathan Maw authored
**KLUDGE WARNING**: This involves making the source store its "meta" object so that it's possible to create a copy of the source inside the fetch queue, instead of back when the pipeline was being loaded. This adds the SourceFetcher class, which is intended for sources that fetch from multiple URLs (e.g. the git source and its submodules) Fix when fetching
-
Jonathan Maw authored
In user config (buildstream.conf), it is set with the "default-mirror" field. On the command-line, it is set with "--default-mirror"
-
Jonathan Maw authored
-
Jonathan Maw authored
This fixes: * Bzr repositories pulling from the branch they were created with. * Bzr's _ensure_mirror() not actually checking that it successfully mirrored the ref.
-
Jonathan Maw authored
When implementing fetching from mirrors, I encountered some problems with the git source: 1. The mirror URL was using translate_url()'s output, so if a different alias was used, then fetching from the mirror would go to a different directory, and be inaccessible. 2. After fixing that, fetching was unable to pull from a URL other than the one used at repository creation, meaning it wouldn't actually pull from the mirror.
-
Jonathan Maw authored
This is helpful if you want to test what happens when you have one repo that has diverged from another. By copying the repo you're sure they start with shared history. This is especially useful when mirroring.
-
Jonathan Maw authored
-
Jonathan Maw authored
-
Jonathan Maw authored
-
Jonathan Maw authored
-
Jonathan Maw authored
Resolve "Support for downloading sources from mirrors" Closes #328 See merge request !404
-
Qinusty authored
-
Qinusty authored
-
Phillip Smyth authored
Showing
- .gitignore 1 addition, 0 deletions.gitignore
- .gitlab-ci.yml 4 additions, 8 deletions.gitlab-ci.yml
- HACKING.rst 20 additions, 20 deletionsHACKING.rst
- NEWS 17 additions, 0 deletionsNEWS
- README.rst 14 additions, 10 deletionsREADME.rst
- buildstream/__init__.py 1 addition, 1 deletionbuildstream/__init__.py
- buildstream/_artifactcache/artifactcache.py 180 additions, 1 deletionbuildstream/_artifactcache/artifactcache.py
- buildstream/_artifactcache/cascache.py 26 additions, 3 deletionsbuildstream/_artifactcache/cascache.py
- buildstream/_context.py 194 additions, 2 deletionsbuildstream/_context.py
- buildstream/_exceptions.py 10 additions, 5 deletionsbuildstream/_exceptions.py
- buildstream/_frontend/app.py 30 additions, 18 deletionsbuildstream/_frontend/app.py
- buildstream/_frontend/cli.py 21 additions, 8 deletionsbuildstream/_frontend/cli.py
- buildstream/_frontend/status.py 20 additions, 8 deletionsbuildstream/_frontend/status.py
- buildstream/_frontend/widget.py 1 addition, 1 deletionbuildstream/_frontend/widget.py
- buildstream/_loader/loader.py 1 addition, 1 deletionbuildstream/_loader/loader.py
- buildstream/_project.py 56 additions, 8 deletionsbuildstream/_project.py
- buildstream/_scheduler/__init__.py 7 additions, 6 deletionsbuildstream/_scheduler/__init__.py
- buildstream/_scheduler/jobs/__init__.py 3 additions, 0 deletionsbuildstream/_scheduler/jobs/__init__.py
- buildstream/_scheduler/jobs/cachesizejob.py 38 additions, 0 deletionsbuildstream/_scheduler/jobs/cachesizejob.py
- buildstream/_scheduler/jobs/cleanupjob.py 38 additions, 0 deletionsbuildstream/_scheduler/jobs/cleanupjob.py
buildstream/_scheduler/jobs/__init__.py
0 → 100644
buildstream/_scheduler/jobs/cachesizejob.py
0 → 100644
buildstream/_scheduler/jobs/cleanupjob.py
0 → 100644