-
9280b0cf
by Tiago Gomes
at 2018-09-26T15:54:53Z
ci: add ACME challenge
To finish the creation of the Let's Encrypt certificate, which will
allows us to use https://docs.buildstream.build/ for accessing the
documentation.
-
af131503
by Tiago Gomes
at 2018-09-26T16:35:58Z
Merge branch 'tiagogomes/acme-challenge' into 'master'
ci: add ACME challenge
See merge request BuildStream/buildstream!831
-
f7f14f25
by Tiago Gomes
at 2018-09-26T17:42:12Z
ci: add missing `-p` argument
-
0f2bc375
by Martin Blanchard
at 2018-09-27T08:46:27Z
_protos: Import google.rpc.Code proto
Imports code.proto from https://github.com/googleapis/googleapis and
corresponding modules generated with ./setup.py build_grpc.
https://gitlab.com/BuildStream/buildstream/issues/668
-
16cf9d5f
by Martin Blanchard
at 2018-09-27T08:46:27Z
_sandboxremote.py: Handle remote build execution exit code
https://gitlab.com/BuildStream/buildstream/issues/668
-
f5f3cb7c
by Jim MacArthur
at 2018-09-27T09:16:38Z
Merge branch 'mablanch/668-remote-build-failure' into 'master'
Better handle remote build failures
See merge request BuildStream/buildstream!825
-
b99a6740
by Jürg Billeter
at 2018-09-27T09:18:03Z
element.py: Add __use_remote_execution() helper method
-
f8bbe008
by Jürg Billeter
at 2018-09-27T09:18:03Z
_platform: Add check_sandbox_config() method
-
f9494f1f
by Jürg Billeter
at 2018-09-27T09:18:03Z
element.py: Validate sandbox config
-
b4ad84c3
by Jürg Billeter
at 2018-09-27T09:18:03Z
_platform/linux.py: Remove redundant message
Unsupported sandbox config (UID/GID) is now reported by the element.
-
966af3d2
by Jürg Billeter
at 2018-09-27T09:18:03Z
_platform/linux.py: Do not disable push globally
On systems without user namespace support, elements with unsupported
sandbox config (UID/GID) are now individually tainted, which disables
artifact push.
-
f08e5eae
by Jürg Billeter
at 2018-09-27T09:18:03Z
_artifactcache/cascache.py: Remove unused enable_push parameter
-
10ed9158
by Jürg Billeter
at 2018-09-27T09:18:03Z
_artifactcache: Add preflight() method
-
7aec8b0f
by Jürg Billeter
at 2018-09-27T09:18:03Z
Move artifact cache creation to Context
The artifact cache is no longer platform-specific.
-
a5025c33
by Jürg Billeter
at 2018-09-27T09:18:03Z
_loader: Migrate to Context.artifactcache
-
ef1cb374
by Jürg Billeter
at 2018-09-27T09:18:03Z
_scheduler: Migrate to Context.artifactcache
-
52991be1
by Jürg Billeter
at 2018-09-27T09:18:03Z
_stream.py: Migrate to Context.artifactcache
-
cb6b35dc
by Jürg Billeter
at 2018-09-27T09:18:42Z
sandbox/_sandboxremote.py: Migrate to Context.artifactcache
-
28c62b00
by Jürg Billeter
at 2018-09-27T09:18:43Z
_platform/platform.py: Remove unused artifactcache property
-
99e90918
by Jürg Billeter
at 2018-09-27T09:19:12Z
_artifactcache/casserver.py: Use Context for artifact cache creation
-
b8f920e2
by Jürg Billeter
at 2018-09-27T09:19:12Z
storage/_casbaseddirectory.py: Use Context for artifact cache creation
-
3d88c5d4
by Jürg Billeter
at 2018-09-27T09:19:12Z
tests/testutils: Use Context for artifact cache creation
-
ed878cb6
by Jürg Billeter
at 2018-09-27T09:19:12Z
tests/artifactcache/pull.py: Use Context for artifact cache creation
-
fe82c9c2
by Jürg Billeter
at 2018-09-27T09:19:12Z
tests/artifactcache/push.py: Use Context for artifact cache creation
-
0d0f700d
by Jürg Billeter
at 2018-09-27T09:19:12Z
_platform: Remove unused context
-
dd770ec3
by Jürg Billeter
at 2018-09-27T09:19:12Z
Use lazy platform instantiation
Now that the platform is independent of the context, explicit
instantiation is no longer required. This avoids issues with platform
instances used across test cases with mismatching context.
-
44da8175
by Jürg Billeter
at 2018-09-27T09:48:20Z
Merge branch 'juerg/platform' into 'master'
Make platform independent of context
See merge request BuildStream/buildstream!829
-
900e8900
by Jürg Billeter
at 2018-09-27T13:12:34Z
git.py: Make `ref` human readable
Use `git describe` to prefix `ref` with closest tag, if available.
-
107269c1
by Jürg Billeter
at 2018-09-27T13:12:34Z
testutils/repo/git.py: Add add_tag() method
-
8060ad8c
by Jürg Billeter
at 2018-09-27T13:12:34Z
tests/sources/git.py: Add track and fetch test with and without tag
-
ab1cb672
by Jürg Billeter
at 2018-09-27T13:46:41Z
Merge branch 'juerg/git-describe' into 'master'
git.py: Make `ref` human readable
See merge request BuildStream/buildstream!291
-
fcf37f9c
by knownexus
at 2018-09-27T14:22:09Z
Added `set_resource_limits()` to platform
This has been moved from app.py
As it will have different functionality depending on platform
Once the Darwin (MacOS) platform is added
Removed `resource.setrlimit()` functionality from app.py
Added `resource.setrlimit()` functionality to platform.py as function
-
80ebdd2c
by knownexus
at 2018-09-27T14:22:09Z
Added FUSE check, as WSL does not support FUSE yet
_platform/linux.py: Add FUSE check
And Ensure exception is not raised when performing sandbox availability check
Without this check, WSL would error upon finding FUSE missing
This must be bypassed to allow remote execution
-
5e81573b
by knownexus
at 2018-09-27T14:22:09Z
Max-jobs is now defined on a platform basis
This is due to Darwin (MacOS) having a different Max-Jobs limit
_platform/platform.py: Adding max-jobs call
_project.py: redirected 'max-jobs' to point at the platform
-
3c93fe97
by knownexus
at 2018-09-27T14:22:09Z
Adding Dummy sandbox
This is to allow platforms that do not support sandboxing
To error in a controlled/known way
-
0f3ef369
by knownexus
at 2018-09-27T14:22:24Z
Adding darwin.py (MacOS) platform
Adding functionality to recognise Darwin as a platform in plaform.py
-
b78ae767
by knownexus
at 2018-09-27T14:29:29Z
utils.py: Reworked safe_remove
Non-Linux platforms don't return EISDIR when attempting to unlink a
directory.
Stopped safe_remove attempting to unlink dirs
Previously safe_remove would attempt to unlink a path
Before attempting to remove it if it was a dir
Now it checks for a dir before that step
-
ab5e78b4
by James Ennis
at 2018-09-27T14:29:32Z
Import sandbox subclass when instantiating sandbox
This patch was required due to not being able to execute `bst` on
a Linux machine without FUSE available.
-
261f65ca
by Jürg Billeter
at 2018-09-27T14:54:47Z
Merge branch 'mac_fixes' into 'master'
Implement compatibility fixes for MacOSX and WSL Blocks #411 and #412"
See merge request BuildStream/buildstream!726
-
d2ea3069
by Richard Maw
at 2018-09-27T15:16:57Z
tests: Add regression test for pushing failed builds
This test ensures that failed builds are pushed when set to on-error=quit.
Closes https://gitlab.com/BuildStream/buildstream/issues/534
-
c128429a
by richardmaw-codethink
at 2018-09-27T15:42:18Z
Merge branch 'richardmaw/push-failed-build-regression' into 'master'
tests: Add regression test for pushing failed builds
Closes #534
See merge request BuildStream/buildstream!824
-
e91eb38b
by Valentin David
at 2018-09-27T16:32:57Z
Fix outside-of-project check when project path is not canonical.
The issue happens on Silverblue where /home is a symlink to /var/home.
With this element-path is something like
/var/home/user/project/elements, when the project path is
/home/usr/project. Comparing canonical paths solves the issue.
Fixes #673
-
7babd55c
by Tiago Gomes
at 2018-09-27T16:57:12Z
Merge branch 'valentindavid/silverblue-path' into 'master'
Fix outside-of-project check when project path is not canonical.
Closes #673
See merge request BuildStream/buildstream!832
-
5cdfac81
by Mathieu Bridon
at 2018-09-28T09:20:20Z
data/userconfig.yaml: Document the cache.quota setting
-
5d3f039f
by Tom Pollard
at 2018-09-28T10:34:13Z
Merge branch 'bochecha/cache-size' into 'master'
data/userconfig.yaml: Document the cache.quota setting
See merge request BuildStream/buildstream!833
-
14e1a3b3
by Jürg Billeter
at 2018-10-01T08:18:05Z
_platform: Fix get_cpu_count() with cap=None
Comparison between None and integer is not supported.
-
232662f1
by Jürg Billeter
at 2018-10-01T08:53:06Z
Merge branch 'juerg/cpucount' into 'master'
_platform: Fix get_cpu_count() with cap=None
See merge request BuildStream/buildstream!840
-
f447aedd
by Tiago Gomes
at 2018-10-01T10:33:11Z
ci: upper case variables
For consistency.
-
682dddce
by Tiago Gomes
at 2018-10-01T10:35:12Z
ci: correct freedestop-sdk version comment
-
fafa8136
by Tiago Gomes
at 2018-10-01T10:59:54Z
Merge branch 'tiagogomes/ci-minor-tweaks' into 'master'
Minor CI tweaks
See merge request BuildStream/buildstream!842
-
26e1a3c7
by Jürg Billeter
at 2018-10-01T14:58:06Z
_artifactcache/casserver.py: Implement BatchUpdateBlobs
Fixes #676.
-
f47895c0
by Jürg Billeter
at 2018-10-01T14:58:06Z
_artifactcache/cascache.py: Use BatchUpdateBlobs
This uses BatchUpdateBlobs instead of individual blob upload to speed up
artifact pushing, if the server supports it.
Fixes #677.
-
cf00c0a1
by Jürg Billeter
at 2018-10-01T15:32:30Z
Merge branch 'juerg/cas-batch' into 'master'
CAS: Implement BatchUpdateBlobs support
Closes #677 and #676
See merge request BuildStream/buildstream!839
-
5f4ae90b
by Jürg Billeter
at 2018-10-02T06:34:02Z
sandbox/_sandboxremote.py: Use helpers to set up cwd and env
This matches the other sandbox implementations.
-
0458bc4e
by Jürg Billeter
at 2018-10-02T07:08:35Z
Merge branch 'juerg/sandbox' into 'master'
sandbox/_sandboxremote.py: Use helpers to set up cwd and env
See merge request BuildStream/buildstream!841
-
d5b396e0
by Phillip Smyth
at 2018-10-02T16:40:18Z
Forcing CI to install Sphinx 1.7.9
.gitlab-ci.yml: forced pip3 install Sphinx 1.7.9
The theme we use in our docs "sphinx_rtd_theme"
Does not support the latest version of Sphinx (>1.8)
This results in search functionality failing
-
dae842fd
by Phillip Smyth
at 2018-10-02T17:14:09Z
Merge branch 'docs_Search_not_working' into 'master'
Fixing: Search functionality in the Documentation has stopped working
Closes #681
See merge request BuildStream/buildstream!848
-
8dc16d3f
by Jürg Billeter
at 2018-10-03T05:08:21Z
_platform/linux.py: Accept all configs for dummy sandbox
If Sandbox.run() is never called, sandbox config is irrelevant. If it is
called, the build will fail anyway with the dummy sandbox.
This matches the logic in the Darwin platform.
-
66446fc3
by Jürg Billeter
at 2018-10-03T05:36:38Z
Merge branch 'juerg/dummy-sandbox' into 'master'
_platform/linux.py: Accept all configs for dummy sandbox
See merge request BuildStream/buildstream!843
-
29c19bea
by Tristan Van Berkom
at 2018-10-03T07:33:48Z
git.py: Added timed activity around fetching, displaying the URL being fetched.
This will take care of silencing the status messages while checking submodules.
-
b645881c
by Tristan Van Berkom
at 2018-10-03T07:33:48Z
source.py: Silence messages while consuming source fetchers
The source fetchers might be a list or a generator, when it is
a generator (like the git source does), then we want to ensure that
we silence the status messages which might occur as a result of
consuming a source fetcher from the generator.
This fixes the logs to be less verbose.
-
c9437616
by Tristan Van Berkom
at 2018-10-03T08:07:15Z
Merge branch 'tristan/fix-status-messages' into 'master'
fix status messages
See merge request BuildStream/buildstream!845
-
11320fe2
by Tristan Van Berkom
at 2018-10-03T09:33:39Z
_scheduler: Fix bookkeeping of terminated jobs
* Enhanced the base Job class to bookkeep which jobs have
been terminated, and to consider them as `skipped` when
asked via the `skipped` property.
* Enhanced the base Queue class to bookkeep the job statuses
more carefully.
This fixes #479
-
91271964
by Tristan Van Berkom
at 2018-10-03T09:59:40Z
Merge branch 'tristan/fix-terminated-jobs' into 'master'
_scheduler: Fix bookkeeping of terminated jobs
Closes #479
See merge request BuildStream/buildstream!850
-
3bf895d2
by Jonathan Maw
at 2018-10-03T11:48:48Z
tests: Add regression test for mirroring with project.refs
-
e4969807
by Jonathan Maw
at 2018-10-03T12:48:07Z
Merge branch 'jonathan/source-mirror-project-refs' into 'master'
tests: Add regression test for mirroring with project.refs
See merge request BuildStream/buildstream!823
-
a0814399
by Tristan Van Berkom
at 2018-10-03T13:05:52Z
_scheduler/scheduler.py: Ignore interrupt events while terminating.
For some reason, we now receive a SIGINT from the main loop even
when the SIGINT occurred with the handler disconnected in an interactive
prompt. This patch simply ignores any received SIGINT events from the
main loop in the case that we are already in the process of terminating.
This fixes issue #693
-
0a1f8e3c
by Tristan Van Berkom
at 2018-10-03T13:42:20Z
Merge branch 'tristan/fix-double-terminate-prompt' into 'master'
_scheduler/scheduler.py: Ignore interrupt events while terminating.
Closes #693
See merge request BuildStream/buildstream!852
-
11161f99
by Tristan Van Berkom
at 2018-10-03T13:44:02Z
utils.py: Give save_file_atomic() a tempdir argument
Allow callers to decide where the temporary file will be created.
-
3e797bb9
by Tristan Van Berkom
at 2018-10-03T13:44:02Z
_artifactcache/cascache.py: Don't create temporary files in the CAS storage
Use the designated tempdir when creating refs, we expect that temporary
files are not created in the storage directory ever, they should be
only ever created in the designated temporary directory.
This fixes race conditions where utils._get_dir_size() throws an
unhandled exception when attempting to stat the file which inadvertantly
disappears.
-
d9020e43
by Tristan Van Berkom
at 2018-10-03T13:44:02Z
utils.py: Document _get_dir_size() expectations.
This function assumes that files do not disappear while
walking the given directory.
-
3e5ff5a9
by Tristan Van Berkom
at 2018-10-03T14:09:51Z
Merge branch 'tristan/fix-cache-size-race' into 'master'
fix cache size race
See merge request BuildStream/buildstream!854
-
e8179c34
by Jim MacArthur
at 2018-10-03T16:06:59Z
element.py: Put the temporary staging directory in artifactdir
-
3cf38c8e
by Jim MacArthur
at 2018-10-03T16:44:02Z
Merge branch 'jmac/temporaries-inside-cachedir' into 'master'
Move the temporary staging directory to artifactdir
See merge request BuildStream/buildstream!856
-
59c92bda
by Daniel Silverstone
at 2018-10-04T08:12:20Z
sandbox/_sandboxdummy.py: Take a reason for use
Since the SandboxDummy sandbox is only used in very specific
circumstances and with good reason, this adjusts the SandboxDummy
class to take a reason and to return it if `.run()` has to
raise an exception because this is a dummy sandbox.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
b9ddcd0e
by Daniel Silverstone
at 2018-10-04T08:12:20Z
_platform/darwin.py: Give reason for use of dummy sandbox
Since Darwin is limited to the dummy sandbox for now due to OSXFUSE
being unsupported as yet, and there being no suitable sandboxing option
for use on OSX, give this as the reason so that it can be reported if
the user attempts a local build.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
df0d5a8b
by Daniel Silverstone
at 2018-10-04T09:04:21Z
_platform/linux.py: Refactor checks for sandboxing
To better report issues in the absence of a suitable bwrap, or the
FUSE devices, this refactors the checks for sandboxing in the Linux
platform to cover the various possibilities. The reasons are then
collated and passed to the dummy sandbox for later reporting to the
user if a local build is attempted.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
b8421a9c
by Daniel Silverstone
at 2018-10-04T09:04:21Z
_site.py: Protect against failure running `bwrap --version`
On some potentially broken systems, running `bwrap --version` might
fail with an error code. This patch corrects the oversight ensuring
that we cleanly return False for version checking in such cases.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
c74bfbe5
by Daniel Silverstone
at 2018-10-04T09:04:21Z
_site.py: Reduce complexity of bwrap version comparison
Instead of an if/else ladder which is quite complex, this patch
uses the fact that Python supports by-component tuple comparison
to simply compare two (major, minor, patch) tuples
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
c46a7e87
by Daniel Silverstone
at 2018-10-04T09:13:04Z
setup.py: Change bwrap assertion to a warning
Since there are use-cases where BuildStream could be installed
onto systems which do not have BubbleWrap (e.g. for remote-build-only
scenarios) it is not correct to assert a dependency on bwrap during
installation. This patch makes the assertion a warning, and also
clarifies the message somewhat. This should fix #644
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
fd6a9573
by Jürg Billeter
at 2018-10-04T09:45:58Z
Merge branch 'danielsilverstone-ct/bwrap-check-runtime-only' into 'master'
Make bwrap check runtime only
Closes #644
See merge request BuildStream/buildstream!847
-
c5778941
by Josh Smith
at 2018-10-04T13:43:10Z
element.py: Do not save workspace on failed build
This fixes #634, BuildStream no longer saves workspace configuration on
a failed build.
-
788cde6a
by Josh Smith
at 2018-10-04T13:43:10Z
testing: Add regression test for workspace bug
-
8630bac4
by Tristan Van Berkom
at 2018-10-04T14:11:27Z
Merge branch 'Qinusty/634-workspace-failed-builds' into 'master'
Do not save workspace on failed build
Closes #634
See merge request BuildStream/buildstream!812
-
a7984218
by Valentin David
at 2018-10-04T14:56:09Z
Catch correct exception from shutil.rmtree
Python documentation is not clear on what shutil.rmtree is supposed to
raise. However from the source code, it is obvious that OSError are
raised, but never shutil.Error.
It is not easy to test in normal condition because issues happen
usually in combination with a FUSE filesystem, a probably a race
condition where `fstatat` returns an error just before the filesystem
being unmounted.
Fixes #153.
-
b7b20d9e
by Valentin David
at 2018-10-04T15:31:22Z
Merge branch 'valentindavid/rmtree_oserror' into 'master'
Catch correct exception from shutil.rmtree
Closes #153
See merge request BuildStream/buildstream!849
-
42ea143d
by Chandan Singh
at 2018-10-05T12:40:48Z
Add contrib script to generate Docker images from bst checkout
This script can be useful to generate a Docker image from `bst checkout`
of an element as a single command. While this script does not eliminate
the need for a proper Docker/OCI element plugin that would probably also
support layering, it provides a cheap way to export the element into a
Docker image.
-
b38f9f9d
by Jonathan Maw
at 2018-10-05T13:05:38Z
Merge branch 'chandan/bst-docker-import' into 'master'
Add contrib script to generate Docker images from bst checkout
See merge request BuildStream/buildstream!857
-
47df1e36
by Jürg Billeter
at 2018-10-05T13:30:38Z
element.py: Prepare local sandbox for bst checkout and bst shell
A remote execution sandbox is not suitable for these commands.
-
d3921ab8
by Jonathan Maw
at 2018-10-05T13:54:17Z
Merge branch 'juerg/remote' into 'master'
element.py: Prepare local sandbox for bst checkout and bst shell
See merge request BuildStream/buildstream!860
-
53d9f977
by Tristan Van Berkom
at 2018-10-06T14:40:46Z
CONTRIBUTING.rst: Updating CONTRIBUTING guidelines
This is almost a complete rewrite of the CONTRIBUTING guide.
* The patch submission guidelines have become less ambiguous and more strict
* Some general restructuring and reordering of the file took place
* The codeing guidelines have changed completely.
o There is much less room for ambiguity here now
o More emphasis on consistency in the codebase
o Added some more abstract points which should be considered
when writing and reviewing patches
* The policy on public/private symbols has been greatly clarified
* Added new section about adding new core plugins and what needs
to be done as a consequence of that
-
5587715c
by Tristan Van Berkom
at 2018-10-07T06:19:03Z
CONTRIBUTING.rst: Some fixes in grammer and minor corrections
-
43c7ac23
by Angelos Evripiotis
at 2018-10-07T15:19:58Z
contributing.rst: fix typo
-
3f0c919f
by Angelos Evripiotis
at 2018-10-07T15:52:52Z
Merge branch 'aevri/fixup-contributing-typos' into 'master'
contributing.rst: fix typos
See merge request BuildStream/buildstream!865
-
6f5f795e
by Tristan Van Berkom
at 2018-10-08T08:46:11Z
CONTRIBUTING.rst: Added section about minimizing API surfaces
And modified some titles so that the titles in CONTRIBUTING.rst actually
follow the documentation guidelines for naming of section titles.
-
abb9fb98
by Tristan Van Berkom
at 2018-10-08T08:59:18Z
CONTRIBUTING.rst: Added section on file naming convention
-
ba905e3a
by Tristan Van Berkom
at 2018-10-08T09:05:18Z
CONTRIBUTING.rst: Correcting `Context` example in the "imports" section
This example is very outdated and comes from pre 1.0 when the Context
object was going to be public API. Just corrected the example made about
imports to import the `Context` object from `._context` instead of `.context`.
-
674afe94
by Tristan Van Berkom
at 2018-10-08T09:07:45Z
CONTRIBUTING.rst: Added a note that public API objects should be exposed from __init__.py
-
350c6796
by Tristan Van Berkom
at 2018-10-08T10:44:47Z
CONTRIBUTING.rst: Added section in PEP-8 coding style about line lengths.
We have a long line limit in order to handle the exceptions without making
code unreadable as a result, this long line length limit is not an invitation
to fill up the limit as much as possible.
-
3ca487b8
by Chandan Singh
at 2018-10-08T18:25:39Z
bst-docker-import: Consistently use stderr for all logs
In !857, we added `contrib/bst-docker-import` script but it has a small
issue that some of logs go to stdout while others go to stderr. Fix it
so that all logging is done on stderr.
-
49df3d75
by Chandan Singh
at 2018-10-08T18:58:54Z
Merge branch 'chandan/fix-bst-docker-import-logging' into 'master'
bst-docker-import: Consistently use stderr for all logs
See merge request BuildStream/buildstream!863
-
d827dfae
by Angelos Evripiotis
at 2018-10-09T09:12:45Z
contributing.rst: end lines with punctuation
-
9590e8ae
by Angelos Evripiotis
at 2018-10-09T09:12:45Z
contributing.rst: fix whitespace
No tabs, no lines of only horizontal whitespace.
-
6d02e269
by Angelos Evripiotis
at 2018-10-09T09:12:45Z
contributing.rst: fix typo of 'get_count'
-
3ed26a47
by Angelos Evripiotis
at 2018-10-09T09:12:45Z
contributing.rst: de-paren subclass example
It seems easier to read when separated into two sentences.
-
5b22d850
by Angelos Evripiotis
at 2018-10-09T09:12:45Z
contributing.rst: no spaces before '?'
-
ac0776f8
by Tristan Van Berkom
at 2018-10-09T09:36:33Z
Merge branch 'aevri/contributing_fixups' into 'master'
Minor fixups to contributing.rst
See merge request BuildStream/buildstream!866
-
885bd946
by Tristan Van Berkom
at 2018-10-09T09:39:24Z
CONTRIBUTING.rst: Added note about sphinx supporting docstrings on instance variables
Python does not natively support this, but sphinx does parse them and includes
these in the generated documentation.
-
120d8c73
by Tristan Van Berkom
at 2018-10-09T09:45:23Z
CONTRIBUTING.rst: Fix typos in previous commit.
Ooops, that was done far too quickly.
-
cda1354c
by Chandan Singh
at 2018-10-10T00:17:51Z
doc: Add new document about Docker integrations
Add a new section under "Additional writings" section about how
BuildStream integrates with Docker. At present, this section includes
only two sections:
- "Run BuildStream inside Docker", that refers to existing instructions
for doing so
- "Generate Docker images", that adds instructions for using the newly
added `contrib/bst-docker-import` script
In future, this document can be extended to include the following
things:
- Importing Docker sources via `docker` source plugin - if/when the
Docker source plguin is moved from bst-external to BuildStream proper
- A Docker sandbox, if/when that is added
-
dd472d95
by Chandan Singh
at 2018-10-10T00:18:17Z
NEWS: Add entry about contrib/bst-docker-import
As suggested in
https://gitlab.com/BuildStream/buildstream/merge_requests/857#note_106809743,
add a NEWS entry for `contrib/bst-docker-import` that was added
recently.
-
35ac26a7
by Chandan Singh
at 2018-10-10T00:59:17Z
Merge branch 'chandan/bst-and-docker' into 'master'
Add documentation and NEWS entry about bst-docker-import
See merge request BuildStream/buildstream!864
-
7d96333f
by Laurence Urhegyi
at 2018-10-10T19:24:14Z
README: Update to add link to website
-
39492db8
by devcurmudgeon
at 2018-10-10T19:24:14Z
Merge branch 'patch-2' into 'master'
README: Update to add link to website
See merge request BuildStream/buildstream!859
-
4f0bfb4a
by Tristan Van Berkom
at 2018-10-11T15:37:51Z
Rename element_enums.py -> types.py
This will be the place to store low level data types used
throughout the core, for now this includes public and private
types.
-
9dc10cc7
by Tristan Van Berkom
at 2018-10-11T15:45:36Z
doc/source/core_framework.rst: Include the foundation types in the API docs.
-
efc0d4cc
by Tristan Van Berkom
at 2018-10-11T15:48:44Z
types.py: Moved Consistency definition here from source.py
And slightly touch up the doc strings for Consistency and Scope.
-
a0712ead
by Tristan Van Berkom
at 2018-10-11T16:23:54Z
Merge branch 'tristan/refactor-types-api' into 'master'
Refactor types api
See merge request BuildStream/buildstream!870
-
ce55b9a0
by Tiago Gomes
at 2018-10-12T10:15:46Z
doc: updates considering website being live now
* Add a link to the website on the main page.
* Remove install instructions as they are now on the website.
* Remove Resources section as that information can be found at the
website, and also looks bad.
* Move artifact server setup from the no longer existing Install section
to the Using section.
-
10b092e1
by Tristan Van Berkom
at 2018-10-12T10:21:27Z
doc/source/additional_docker.rst: Fix link to refer to website
The docker guide, which is part of the install guide, has moved
to the website.
-
1c7ba9a0
by Tristan Van Berkom
at 2018-10-12T10:24:31Z
doc/source/index.rst: Moved references to the website below the simple ToC.
-
3738dd06
by Tristan Van Berkom
at 2018-10-12T10:49:39Z
Merge branch 'tristan/remove-install-guide' into 'master'
Remove install guide
See merge request BuildStream/buildstream!872
-
c31ed138
by Tristan Van Berkom
at 2018-10-14T15:24:53Z
CONTRIBUTING.rst: Added more guidelines about documenting the user guide
-
b39d87b4
by Jürg Billeter
at 2018-10-15T11:07:05Z
_artifactcache: Fix crash in push_directory() without artifact server
Fixes #708.
-
4e3ec89e
by Jürg Billeter
at 2018-10-15T11:48:16Z
Merge branch 'juerg/remote-config' into 'master'
_artifactcache: Fix crash in push_directory() without artifact server
Closes #708
See merge request BuildStream/buildstream!871
-
d15ed8fc
by Jonathan Maw
at 2018-10-15T15:54:59Z
yaml: Add a cache of parsed and provenanced yaml
Note that the ProvenanceFile's names will be incorrect after loading
from the cache, but this is currently only used for writeback, which
isn't used in junctions.
-
f4eb685a
by Jonathan Maw
at 2018-10-15T15:54:59Z
yamlcache.py: Add yaml cache tests
-
26dfa882
by Lachlan Mackenzie
at 2018-10-15T15:54:59Z
yaml.py: Add loader for yaml test files cache option
* Fix to CWD issue provided by Jonathan Maw
-
0fbff08b
by Lachlan Mackenzie
at 2018-10-15T15:54:59Z
yaml.py: Add yaml cache testing to yaml list composition test
-
3d58d7c5
by Lachlan Mackenzie
at 2018-10-15T15:54:59Z
yaml.py: Add yaml cache test to yaml list composition twice
-
363cfc39
by Lachlan Mackenzie
at 2018-10-15T15:54:59Z
yamlcache.py: Add YAML cache changed file test
* Test in same style as test_yamlcache_used
* Move of project not required so removed
-
086c47c4
by Jonathan Maw
at 2018-10-15T16:19:01Z
Merge branch 'lachlan/pickle-yaml-test-list-composite' into 'master'
Add YAM cache testing to yaml tests and further YAML cache refinements
See merge request BuildStream/buildstream!836
-
6298e409
by William Salmon
at 2018-10-16T12:39:14Z
Sandbox: CWD was not being created for workspaces
The code was creating the cwd folder but when the workspace was
mounted in to the buildroot it was hiding the folder created in it
behind the bind mounted workspace.
However by using the bubblewarp `--dir` directive to ensure that cwd
exists we can cover both workspace and non workspace situations with
the same method.
For issue #512 in Gitlab.
-
bbcb9bd5
by William Salmon
at 2018-10-16T12:39:14Z
New Integration test for workspace command-subdir
Build stream was only creating command-subdir for non workspace builds
this has now been fixed, and this regression test should support the
feature.
For issue #512 in Gitlab.
-
5e7cc645
by William Salmon
at 2018-10-16T12:39:14Z
Add conf-root variable to builds
Adding the conf-root variable makes creating out of source builds
slightly easier.
For issue #512 in Gitlab.
-
0d04e1b7
by William Salmon
at 2018-10-16T12:39:14Z
Added tests for conf-root variable
For issue #512 in Gitlab.
-
b2767ac0
by William Salmon
at 2018-10-16T12:39:14Z
Extended the Documentation to cover out of source builds
For issue #512 in Gitlab.
-
118704a9
by William Salmon
at 2018-10-16T12:39:14Z
Added a news item for building out of the source directory
For issue #512 in Gitlab.
-
0a5db229
by Phil Dawson
at 2018-10-16T13:19:56Z
Merge branch 'willsalmon/outOfSourecBuild' into 'master'
Out of source builds
Closes #512
See merge request BuildStream/buildstream!776
-
1fd38fb7
by Jim MacArthur
at 2018-10-16T14:54:09Z
bst2html.py: Name the second argument to avoid an error
-
b023d5c0
by Jim MacArthur
at 2018-10-16T15:28:15Z
Merge branch 'jmac/doc-argument-fix' into 'master'
Add named argument in bst2html.py to fix documentation
See merge request BuildStream/buildstream!874
-
ac5b482d
by Richard Dale
at 2018-10-16T19:40:39Z
Fix spelling of it's and its
-
3d9c4eca
by Jürg Billeter
at 2018-10-16T20:17:39Z
Merge branch 'rdale/spelling' into 'master'
Fix spelling of it's and its
See merge request BuildStream/buildstream!877
-
edc07536
by Tiago Gomes
at 2018-10-17T13:49:15Z
README: use correct links for documentation website
-
155296a7
by Tiago Gomes
at 2018-10-17T13:49:15Z
setup.py: use correct link for documentation website
-
131f95eb
by Tiago Gomes
at 2018-10-17T14:15:38Z
Merge branch 'tiagogones/update-links-to-documentation' into 'master'
Update links to documentation website
See merge request BuildStream/buildstream!876
-
c327d1f3
by Valentin David
at 2018-10-17T14:33:40Z
Change URL to the Alpine tarball
-
eeb334f2
by Javier Jardón
at 2018-10-17T15:03:17Z
Merge branch 'valentindavid/move_alpine_tarball' into 'master'
Change URL to the Alpine tarball
See merge request BuildStream/buildstream!880
-
b8f69946
by Daniel Silverstone
at 2018-10-18T09:32:09Z
_loader/loader.py: Be more explanatory in CircDep exception
When a circular dependency is detected, the reported error hilights
only one part of the loop in question. This change ensures that
the entire loop is listed so that the user has a greater chance of
easily determining the correct fix.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
892866e1
by richardmaw-codethink
at 2018-10-18T10:04:32Z
Merge branch 'danielsilverstone-ct/report-loop' into 'master'
_loader/loader.py: Be more explanatory in CircDep exception
See merge request BuildStream/buildstream!878
-
f1aa0974
by Javier Jardón
at 2018-10-18T14:13:35Z
Fix python warnings: Use collections.abc instead collections
Since python 3.3, collections has been moved to collections.abc module.
For backwards compatibility, they continue to be visible in this module through Python 3.7.
Subsequently, they will be removed entirely.
See https://docs.python.org/3/library/collections.html
-
f1550c8e
by Valentin David
at 2018-10-18T16:02:45Z
Merge branch 'jjardon/warnings_collections' into 'master'
Fix python warnings: Use collections.abc instead collections
See merge request BuildStream/buildstream!883
-
1c24979a
by Angelos Evripiotis
at 2018-10-19T21:17:01Z
Spelling fixes: 'affect', not 'effect' as verb
Fix most instances of 'effect' being used as a verb instead of a noun.
Skipped generated instance in doc/source/conf.py.
-
43a2eee3
by Angelos Evripiotis
at 2018-10-19T21:48:59Z
Merge branch 'aevri/affect' into 'master'
Spelling fixes: 'affect', not 'effect' as verb
See merge request BuildStream/buildstream!885
-
12719f0d
by Jürg Billeter
at 2018-10-22T17:05:41Z
_artifactcache: Rename update_atime() to update_mtime()
os.utime() updates both, however, list_artifacts() sorts refs by mtime,
i.e., atime is irrelevant.
-
a7a28d14
by Jürg Billeter
at 2018-10-22T17:05:41Z
_artifactcache: Fix ref in update_mtime()
get_artifact_fullname() is required to construct the ref. The cache key
alone does not suffice.
-
be29e0f5
by Jürg Billeter
at 2018-10-22T17:53:26Z
Merge branch 'juerg/cas-mtime' into 'master'
_artifactcache: Fix ref in update_mtime()
See merge request BuildStream/buildstream!882
-
b74aca1a
by Jürg Billeter
at 2018-10-23T09:22:19Z
tests/testutils/artifactshare.py: Fix has_artifact() to match core code
Replace path separator with '-' to match Element.normal_name.
-
c7dda150
by Jürg Billeter
at 2018-10-23T09:48:00Z
Merge branch 'juerg/test-artifactshare' into 'master'
tests/testutils/artifactshare.py: Fix has_artifact() to match core code
See merge request BuildStream/buildstream!890
-
74c115b9
by Angelos Evripiotis
at 2018-10-23T10:07:31Z
plugins/sources: refactor, rm needless ExitStack-s
Remove two uses of ExitStack that aren't necessary and make the code
a little harder to follow.
-
ecb58b42
by Phil Dawson
at 2018-10-23T10:33:47Z
Merge branch 'aevri/rm-exitstack' into 'master'
plugins/sources: refactor, rm needless ExitStack-s
See merge request BuildStream/buildstream!888
-
aa0cbf5d
by Martin Blanchard
at 2018-10-23T10:54:40Z
_sandboxremote.py: Try to reopen operation steam on failure
The REAPI allows a client to reconnect to an ongoing operation stream by
providing a WaitExecution(). If implemented on server side, BuildStream
will try to recover from connection errors using it.
https://gitlab.com/BuildStream/buildstream/issues/630
-
552f5fc6
by Jim MacArthur
at 2018-10-23T11:19:48Z
Merge branch 'mablanch/630-remote-execution-reconn' into 'master'
Handle connection losses during remote build execution
See merge request BuildStream/buildstream!806
-
276d2195
by Angelos Evripiotis
at 2018-10-25T10:17:49Z
_downloadablefilesource: handle ValueError-s
-
2d012a21
by Angelos Evripiotis
at 2018-10-25T10:17:49Z
Merge branch 'aevri/unknown-uri-452' into 'master'
_downloadablefilesource: handle ValueError-s
Closes #452
See merge request BuildStream/buildstream!893
-
cf4741ce
by James Ennis
at 2018-10-25T13:05:43Z
docs: Add helpful notes to artifact server configuration instructions
-
5737bb06
by James Ennis
at 2018-10-25T13:05:43Z
using_configuring_artifact_server.rst: Fix incorrect reference to bst push (with link)
-
28317622
by James Ennis
at 2018-10-25T13:35:22Z
Merge branch 'jennis/patch_remote_cache_docs' into 'master'
Improve our documentation for configuring an artifact server
See merge request BuildStream/buildstream!899
-
d2743c52
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_context.py: Remove useless `return` from `Context.message`
This pointless bare `return` was causing modern pylint to raise an
error.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
95adf09e
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_variables.py: Fix lint issue in `find_recursive_variable`
The python `for`/`else` construct only makes sense if the `for` loop body
has a `break` statement. Otherwise the use of `else` causes pylint
to raise an error.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
9359c067
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_workspaces.py: Simplify chained comparison
In `_parse_workspace_config` there was a chained version comparison
which is simplified in this commit to quieten a pylint issue.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
796bd8c9
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_yaml.py: use `in (a,b)` to simply boolean checks
Where we use a construct `val == foo or val == bar` we can instead use
`val in (foo, bar)` which pylint prefers.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
5a3a537f
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_yaml.py: Quieten a lint in Python < 3.6
For Python before 3.6, `path.resolve()` could not take the `strict`
keyword argument. Linting on such Python versions will raise an unnecessary
issue given the check present. As such, quieten that lint.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
b279c730
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_yamlcache.py: Correct bug in `YamlCache._get_filepath()`
The correct file path was computed but never returned. This was
never caught because of a test missing consumption of one of its
parameters. This commit resolves the bug mentioned in #722 leaving
the test to be amended by a future commit.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
527f3b32
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_yamlcache.py: Correct braino in variable name
This braino would mean that we'd fail to raise the right exception
if we failed to find the right project object when unpickling the
yaml cache.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
6d0c697d
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_yamlcache.py: Remove unused imports
The imports of _cachekey and utils were unused.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
32323695
by Daniel Silverstone
at 2018-10-25T14:43:52Z
buildelement.py: Quieten a lint about `__commands`
Unfortunately elements don't override `__init__` in general, so
we have to quieten pylint here.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
c5c0654d
by Daniel Silverstone
at 2018-10-25T14:43:52Z
element.py: Simplify some conditions with `in (foo, bar)`
Where we have conditions of the form `var == foo or var == bar` it
can be simplified to `var in (foo, bar)` which pylint prefers.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
4f84e2f6
by Daniel Silverstone
at 2018-10-25T14:43:52Z
element.py: Silence pylint warning about abstract method
Unfortunately pylint can't understand that we'll always use subclasses
of Element and as such complains of a no-return function (`assemble()`)
having its return value used. This quietens that warning.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
b4645745
by Daniel Silverstone
at 2018-10-25T14:43:52Z
plugin.py: use dict.get() instead of an if statement
Pylint recommends the use of dict.get() rather than a multi-line if
statement for handling optional keyword arguments.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
68ec9bcf
by Daniel Silverstone
at 2018-10-25T14:43:52Z
source.py: Quiet several pylint issues with abstract methods
A number of times, abstract methods are called which pylint cannot
possibly understand will only ever happen in subclasses which implement
the abstract methods. This silences those specific warnings
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
1bf0a031
by Daniel Silverstone
at 2018-10-25T14:43:52Z
source.py: Remove unused local variable
Remove `source_kind` as it was unused.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
e9c6db1e
by Daniel Silverstone
at 2018-10-25T14:43:52Z
source.py: Remove unused variable
Remove the `context` variable which was unused.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
5a187a1e
by Daniel Silverstone
at 2018-10-25T14:43:52Z
utils.py: Disable lint warning about popen
We use `preexec_fn` in our use of Popen. Since there are threads
in the codebase, this is not necessarily safe. However we go to
great lengths to ensure that the main process doesn't spawn threads
(they're used in gRPC a lot) and so it should be safe for our use.
As such, we disable the lint here.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
b368f57f
by Daniel Silverstone
at 2018-10-25T14:43:52Z
utils.py: Group stat imports
The imports of `stat` and `S_ISDIR` from `stat` should be grouped to
satisfy pylint.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
b45fea19
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_artifactcache/artifactcache.py: Remove superfluous parens
The pylint report dislikes the superfluous parens which used to
be here in this assert.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
3e4a6507
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_artifactcache/artifactcache.py: Silence lint issues
The pylint tool is unable to understand that the abstract methods
in the artifact cache will only be called when there's concrete
implementations behind them. Silence the lint errors for these
specific calls.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
447780b0
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_frontend/app.py: Remove unused import of `resource`
The `resource` import was unused. Removed.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
247b9fa8
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_frontend/status.py: Reorder imports
The `curses` import is "standard" whereas `click` is not. As such, despite
alphabetical order normally being the rule, `curses` must come before `click`.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
522867c8
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_fuse/{hardlinks,mount}.py: Remove dangerous use of {} in defaults
Since default values in arguments to functions and methods are created once
at the compilation of the code, it is dangerous to include list and dict
literals in them. This changes the use of {} to None.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
31a7bce5
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_fuse/mount.py: Deal with abstract method lint issue
Unfortunately pylint can't tell this is an abstract method which will
only ever end up invoked from a class which concretises it. As such
we need to silence this warning.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
eb805c6c
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_options/optionbool.py: Refactor conditions
The pylint tool prefers that conditions of the form "var == foo or var == bar"
be refactored into "var in (foo, bar)".
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
aca9a612
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_platform/darwin.py: Remove useless __init__()
An otherwise empty __init__ passing no arguments to super.__init__
is worthless. Remove it.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
77b1506f
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_platform/darwin.py: Remove unused imports
The import of `resource` was unused.
The import of `PlatformError` was unused.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
70000b0d
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_platform/linux.py: Remove unused imports
The imports of `Message` and `MessageType` were unused.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
bab617d0
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_platform/linux.py: Simplify return statement
The linter dislikes an if/return/else/return where it can be
simplified to a return of the if condition.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
45a1d15f
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_scheduler/jobs/job.py: Correct lint issue around abstract method
The linter cannot detect abstract methods the way we use them, so
this silences the warning which ensues.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
e9154b4d
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_scheduler/queue/pullqueue.py: Remove unused return value
The `done()` method does not return anything anywhere else.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
7b082bb7
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_scheduler/queue/trackqueue.py: Remove unused import
The `SourceError` import was never used
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
f1cfc0b7
by Daniel Silverstone
at 2018-10-25T14:43:52Z
plugins/source/git.py: Rationalised unused return values
The `assert_ref_in_track()` method's return value was never used so
rationalise it to never return a value.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
7c72d25b
by Daniel Silverstone
at 2018-10-25T14:43:52Z
sandbox/_mount.py: Do not use dict literals in argument defaults
The use of dictionary literals in argument defaults is disrecommended
due to the way that they are static and thus potentially very confusing.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
4e7408ee
by Daniel Silverstone
at 2018-10-25T14:43:52Z
sandbox/_mounter.py: Remove useless inheritance on `object`
In Python 3, inheriting from `object` explicitly is pointless.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
df495d16
by Daniel Silverstone
at 2018-10-25T14:43:52Z
sandbox/_sandboxbwrap.py: Disable lint about dict.get
Sometimes `dict.get()` is preferable, in this instance it's less clear
so we'll disable that lint
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
63c6e6b1
by Daniel Silverstone
at 2018-10-25T14:43:52Z
sandbox/_sandboxchroot.py: Silence warning about unused variable
The variable was unused, remove it.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
3394741a
by Daniel Silverstone
at 2018-10-25T14:43:52Z
sandbox/_sandboxchroot.py: Silence warning about preexec_fn
We are super-careful to not use threads in places where we might use
Popen and as such this warning is save to quash.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
cd20e7a1
by Daniel Silverstone
at 2018-10-25T14:43:52Z
sandbox/_sandboxchroot.py: Silence warning about dict.get
Sometimes `dict.get()` is preferable to an `if` statement, but this time
it's clearer if we keep the structure. As such, silence the warning.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
5087f5c5
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_artifactcache/cascache.py: Refactor slightly for indentation
Correct some multi-line conditional indentation by slight refactor
if necessary.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
d73d965b
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_artifactcache/cascache.py: Silence len(SEQUENCE) as condition warnings
The lint tool dislikes the use of `if len(SEQ) == 0` type statements
because nominally `len(SEQ)` may be more expensive than `bool(SEQ)`.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
fa740402
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_artifactcache/cascache.py: Prepare attributes in __init__
Python linters prefer that attributes are defined in __init__ rather
than left to later routines.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
ad8271f0
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_artifactcache/cascache.py: Remove unused imports
The imports of `Message` and `MessageType` were unused.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
1445a901
by Daniel Silverstone
at 2018-10-25T14:43:52Z
_artifactcache/cascache.py: Cleanup lint warning about indexing
In order to quieten the linter, and to make a more correct comparison,
we switch to using the `Code.OK` enumeration from `google.rpc.Code`
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
19df07ea
by Tristan Maat
at 2018-10-25T14:43:52Z
Bump CI image tags
We need to do this so that the new linting errors pop up
-
64dbe9ae
by Daniel Silverstone
at 2018-10-25T14:43:52Z
MANIFEST: Include a lot more missing stuff in the manifest
Versioneer needs to be in the MANIFEST.in and its .pyc needs to be ignored
in the .gitignore. Also much docs were not being included, nor conftest.py.
Much of the test suite data files needed including, so changed that to a
raw include of everything in the tests/ tree.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
f6bc25dd
by Daniel Silverstone
at 2018-10-25T14:43:52Z
.gitlab-ci.yml: Change how coverage is recovered
We need to alter how coverage data is recovered in order to work with
newer coverage tooling.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
1c1d14e7
by Chandan Singh
at 2018-10-25T15:04:00Z
Merge branch 'danielsilverstone-ct/fix-lint-issues' into 'master'
Fix lint issues
See merge request BuildStream/buildstream!892
-
23140b6b
by Chandan Singh
at 2018-10-25T15:25:22Z
sources: Don't redundantly document directory configuration
Instead of redundantly documenting "directory" configuration option in
each source plugin, refer to the built-in functionality documentation of
the Source class.
* source.py: Add anchor for built-in functionality.
* sources/plugins/*.py: Remove directory config option, and add reference to
Source's built-in functionality.
Fixes #713.
-
db2a676e
by Chandan Singh
at 2018-10-25T15:26:39Z
build elements: Add reference to BuildElement's built-in config
For each element plugin derived from BuildElement, add reference to the
built-in functionality documentation of BuildElement.
* buildelement.py: Add anchor for built-in functionality.
* plugins/elements/*.py: Add refence to BuildElement's built-in
functionality for each build element.
Related to #713.
-
356d84cd
by Chandan Singh
at 2018-10-25T16:59:13Z
Merge branch 'chandan/source-doc-directory' into 'master'
plugins: Don't redundantly document common configurations
Closes #713
See merge request BuildStream/buildstream!896
-
8c41b5b8
by Daniel Silverstone
at 2018-10-26T09:02:30Z
_yaml.py: Do not insert into cache if retrieved from cache
We were unconditionally inserting into the yaml cache anything we had
retrieved from the yaml cache. This had the side-effect of being expensive
on re-runs of commands where yaml hadn't changed.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
494d7018
by Jonathan Maw
at 2018-10-26T09:26:36Z
Merge branch 'danielsilverstone-ct/do-not-reinsert-yaml' into 'master'
_yaml.py: Do not insert into cache if retrieved from cache
See merge request BuildStream/buildstream!902
-
80762ecb
by Benjamin Schubert
at 2018-10-26T09:45:39Z
Check if command is a str and replace by list before checking existence
Currently we would make sure the sandbox had a command before
converting it to a list if it was given as a string. That meant that a string
command would never exist and the check be invalid.
This also adds the same logic in the dummy sandbox for consistency.
-
f131c407
by Benjamin Schubert
at 2018-10-26T10:09:51Z
Merge branch 'bschubert/fix-command-sandbox' into 'master'
Check is command is a str and replace by list before checking existence
Closes #728
See merge request BuildStream/buildstream!898
-
54d89aa1
by Daniel Silverstone
at 2018-10-26T10:20:36Z
_loader/loadelement.py: Use enumerate() in dependency extraction
In cases where elements end up with large numbers of dependencies,
the n-squared performance in `_extract_depends_from_node` can produce
significant delays during project load. This patch corrects that.
In addition we were double-retrieving provenance which was unnecessary.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
e4c18ba4
by Phil Dawson
at 2018-10-26T10:43:55Z
Merge branch 'danielsilverstone-ct/use-enumerate' into 'master'
_loader/loadelement.py: Use enumerate() in dependency extraction
See merge request BuildStream/buildstream!901
-
20e5c58a
by James Ennis
at 2018-10-26T11:14:58Z
using_configuring_artifact_server.rst: Fix lines that are too long
-
320dae02
by James Ennis
at 2018-10-26T11:37:42Z
docs: Add more information to "managing the cache with systemmd" section
-
1eb993bf
by James Ennis
at 2018-10-26T12:02:49Z
Merge branch 'jennis/another_docs_patch' into 'master'
More information regarding the use of systemd to manage the cache
See merge request BuildStream/buildstream!904
-
f069d82f
by Daniel Silverstone
at 2018-10-26T12:19:58Z
various: Move _sentinel from utils.py to _yaml.py
The `_sentinel` in `utils.py` was used only for yaml node tracking.
As such, simplify matters by removing it from `utils.py` and move it
to `_yaml.py` which means that we no longer need to try and avoid a
circular import issue by means of runtime importing.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
283887a5
by James Ennis
at 2018-10-26T13:12:12Z
Merge branch 'danielsilverstone-ct/yaml-sentinel-rework' into 'master'
Move _sentinel from utils.py to _yaml.py
See merge request BuildStream/buildstream!903
-
2c6cb230
by Valentin David
at 2018-10-26T14:21:18Z
Fix some ruamel warnings during tests
-
a8250ca4
by Valentin David
at 2018-10-26T15:04:25Z
Merge branch 'valentindavid/ruamel_warnings' into 'master'
Fix some ruamel warnings during tests
See merge request BuildStream/buildstream!889
-
1b308fe3
by Daniel Silverstone
at 2018-10-26T15:50:42Z
_stream.py: Preserve stdout FD across checkout-to-stdout
In order to support things which might need to use the stdout FD
after checkout has completed writing a tarball to it, preserve it
by means of `os.dup()` and `os.dup2()`
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
65d90c31
by Daniel Silverstone
at 2018-10-26T15:50:54Z
tests/testutils/runcli.py: Support binary-mode capture of stdout
In order to test things which write tarballs to stdout correctly,
we need to capture the binary output cleanly. This ensures we're not
potentially mismatching encodings in and out.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
ed733f3e
by Daniel Silverstone
at 2018-10-26T15:51:40Z
tests/frontend/buildcheckout.py: Enable test_build_checkout_tarball_stdout
With the new support for saving the stdout FDs cleanly, and binary mode
capture in runcli, enable the tarball-to-stdout test.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
e97d2a75
by Benjamin Schubert
at 2018-10-29T10:17:07Z
Merge branch 'bschubert/fix-binary-output-capture' into 'master'
Don't close stdout when running 'checkout' to stdout
Closes #486
See merge request BuildStream/buildstream!905
-
1625de0e
by Tristan Van Berkom
at 2018-10-29T11:49:33Z
doc/source/conf.py: Added `images` directory for statically included files
-
38507b4e
by Tristan Van Berkom
at 2018-10-29T11:49:33Z
doc/source/format_intro.rst: Adding link anchor for include directives
-
26164bcd
by Tristan Van Berkom
at 2018-10-29T13:57:51Z
MANIFEST.in: Include SVG and ODG files in source distributions
-
3a23c8f6
by Tristan Van Berkom
at 2018-10-29T13:57:51Z
doc: Adding new architecture document with initial "Overview of modules" section
-
41d370f6
by Tristan Van Berkom
at 2018-10-29T13:57:51Z
doc: Adding new architecture document describing the data model
-
bed7f7ac
by Tristan Van Berkom
at 2018-10-29T13:57:51Z
doc: Adding new architecture document describing the dependency model
-
9bdf7f40
by Tristan Van Berkom
at 2018-10-29T13:57:51Z
doc: Adding new architecture document about highlevel program flow
-
6b8bdf35
by Tristan Van Berkom
at 2018-10-29T13:57:51Z
doc: Adding new architecture document about how the scheduler works.
-
b1fadaa5
by Tristan Van Berkom
at 2018-10-29T13:57:51Z
doc: Moved cachekey and sandboxing writings into the architecture section
-
baf6b578
by Tristan Van Berkom
at 2018-10-29T14:28:41Z
Merge branch 'tristan/architecture-docs' into 'master'
Tristan/architecture docs
See merge request BuildStream/buildstream!907
-
09ef8b25
by Jonathan Maw
at 2018-10-30T15:42:05Z
element.py: Always clean up the rootdir
We shouldn't need it to persist now that we cache failed build dirs.
This change breaks the test
`tests/integration/shell.py::test_sysroot_workspace_visible`.
I can no longer see a use-case for this test.
AIUI, it tested that the failed build sysroot stored in the builddir has
the workspace's files in, despite the workspace being unmounted.
I believe this behaviour is made redundant by cached buildtrees.
This fixes part of #539
-
37afde0a
by Jonathan Maw
at 2018-10-30T15:42:05Z
Element: Use cached buildtree in build shells and failure shells
This includes changes in app.py:
* Interactive failure shell no longer uses the failed build sysroot,
defaulting to the cached build tree.
Changes in element.py are:
* Errors caused by building don't store the failed build sysroot,
instead storing that a sandbox can be created to debug the error.
* When staging sources, will stage the element's cached build tree if it
exists.
Changes in _exceptions.py:
* BstError.sandbox is now a flag of whether a sandbox can be opened up
to debug the error.
Changes in widget.py:
* Don't try to print any information about the sandbox.
Changes in _message.py:
* Fix documentation so Message.sandbox is not a directory any more.
This is part of #539
-
4bc71773
by Jonathan Maw
at 2018-10-30T15:42:05Z
NEWS: Add item for cached buildtree behaviour
-
9b89564f
by Jonathan Maw
at 2018-10-30T15:42:05Z
tests: Add test that cached build trees are staged in build shells
This is related to #539
-
ec76cbe1
by Jonathan Maw
at 2018-10-30T15:42:05Z
sandbox.py: Remove redundant Sandbox.__directory
-
825963b5
by Jonathan Maw
at 2018-10-30T15:42:05Z
element: Make "--sysroot" take a bare directory
i.e. instead of taking a directory that must contain "root" and
"scratch", and treating "root" as the root, use the directory directly.
In element.py:
* __sandbox takes the `bare_sandbox` arg, to pass into the sandbox's constructor
In sandbox.py:
* If bare_sandbox, `_root` is the passed-in directory, and `__scratch`
is None.
* Trying to use `__scratch` when bare_sandbox is True is a bug.
In _mount.py:
* Don't get the value of `__scratch` if it's not needed.
This is part of #539
-
cf721838
by Jonathan Maw
at 2018-10-30T15:42:05Z
NEWS: Add item for bst shell --sysroot changes
-
79d1bb7f
by Jonathan Maw
at 2018-10-30T15:42:05Z
tests: Add tests for 'bst shell --sysroot'
This is related to #539
-
c7ac7e7d
by Jonathan Maw
at 2018-10-30T16:19:17Z
Merge branch 'jonathan/debug-remote-failed-builds' into 'master'
Jonathan/debug remote failed builds
See merge request BuildStream/buildstream!869
-
ce1877f1
by Valentin David
at 2018-10-31T10:38:02Z
Avoid copying temporary file when adding object to CAS in server.
The file is already a temporary file and does not need copy. ENOSPC
is thrown during that copy in issue #609.
Fixes #678.
-
711cc890
by Valentin David
at 2018-10-31T10:38:02Z
Re-check disk space for each write and handle ENOSPC in artifact server.
There were some race conditions in the way we store artifacts in the
server. Now we verify we still have space on disk for every write. We
also handle ENOSPC to reallocate space or if we cannot properly fail
the connection.
This should help for #609.
-
8d2a5a68
by Valentin David
at 2018-10-31T10:38:02Z
Do not remove newly uploaded objects when cleaning up cache on server.
Issue was found while investigating for #609. When the disk gets
filled up, we would prune non-referenced objects. Since this happens
during an upload of object before a reference is added for uploaded
objects, then we would have an incomplete upload. Further pulls would
result in a missing object error.
The solution is to let 6 hours pass before we can prune an object. To
implement this fix without this minimum age "trick", we would need to
change protocol and deal with concurrent pushes.
-
c57292af
by Valentin David
at 2018-10-31T10:38:02Z
Use fallocate instead of checking for disk space for every write
-
b7cd5b49
by Valentin David
at 2018-10-31T10:38:02Z
Fix race condition getting mtime in FindMissingBlobs
-
063229c3
by Valentin David
at 2018-10-31T10:38:02Z
Fix various small issues from review comments
-
c472c22f
by Valentin David
at 2018-10-31T10:38:02Z
Make cache clients not fail when a blob is not available.
We plan to make cache incomplete. That is some blobs are missing. For
most of cases we will delete references when requested if they are
incomplete. But there will be corner cases where objects are removed
after the reference is requested.
-
aee5d88f
by Valentin David
at 2018-10-31T10:38:02Z
Update mtimes of objects for requested references.
This also remove references when some objects are missing. This is in
preparation for the move from reference to object garbage collection.
-
edba0410
by Valentin David
at 2018-10-31T10:38:03Z
Fix type error in RPC messages
-
bf90c387
by Valentin David
at 2018-10-31T10:38:03Z
Use f_bavail to query available space. Not f_bfree.
f_bfree space might not be usable. In practice we see failures in big
disks because f_bfree is over 2GB and f_bavail is 0. We get ENOSPC if
writing on disk then.
-
c9929653
by Valentin David
at 2018-10-31T10:38:03Z
Move cas server from ref-based to object-based garbage collection.
Also add locking to not collect in parallel. Collect a bit more than
needed. Make the cache sizes configurable.
-
a1d90514
by Valentin David
at 2018-10-31T10:38:03Z
Remove a debug statement