-
26cdee08
by Valentin David
at 2018-11-28T14:29:52Z
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.
-
58ca298f
by Valentin David
at 2018-11-28T14:29:52Z
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.
-
227fa26d
by Valentin David
at 2018-11-28T14:29:52Z
Fix type error in RPC messages
-
5ef19a0b
by Valentin David
at 2018-11-28T14:29:52Z
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.
-
8d2946ff
by Valentin David
at 2018-11-28T14:29:52Z
"Fallocate" object disk space to avoid getting NOSPC error when writing
This locks the temporary object file so that cleanup does not need to
be done for every write.
-
b587953a
by Valentin David
at 2018-11-28T14:29:52Z
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.
-
a64f667d
by Valentin David
at 2018-11-28T14:29:52Z
Move cas server from ref-based to object-based garbage collection.
-
353b90dd
by Valentin David
at 2018-11-28T14:29:52Z
Cleanup cache in cas server more agressively
When there is less than 2GB left, it cleans up have 10GB available.
These values are configurable.
-
ba9afa98
by Valentin David
at 2018-11-28T14:29:52Z
Lock cache cleanup in cas server
Cleaning up in parallel might slow down the cleaning process
-
9a458402
by Valentin David
at 2018-11-29T08:47:40Z
Merge branch 'valentindavid/cache_server_fill_up' into 'master'
Fix cleanup of cache in server when disk is full
Closes #678
See merge request BuildStream/buildstream!830
-
47b7a9ba
by Jim MacArthur
at 2018-11-29T09:58:48Z
_sandboxremote.py: Remove unnecessary tests.
push_message and push_directory will both raise assertion failures if
they fail to send the digest to the server. Checking the digest
returned by each only tests that the content was hashed locally, which
cannot reasonably fail.
-
4a8d0565
by Jim MacArthur
at 2018-11-29T10:42:31Z
Merge branch 'jmac/no-verify-digests' into 'master'
_sandboxremote.py: Remove unnecessary tests.
Closes #786
See merge request BuildStream/buildstream!976
-
2e78e0d1
by Valentin David
at 2018-11-29T13:18:17Z
Add support for .netrc in remote/tar/zip plugins
Fixes #723.
-
a6144100
by Valentin David
at 2018-11-29T13:18:17Z
.gitlab-ci.yml: Update image versions where forgotten
-
f6c184f5
by Valentin David
at 2018-11-29T16:15:56Z
Merge branch 'valentindavid/netrc' into 'master'
Add support for .netrc in remote/tar/zip plugins
Closes #723
See merge request BuildStream/buildstream!908
-
1f31aefc
by Angelos Evripiotis
at 2018-11-30T09:34:38Z
man/: update with changes since Apr 2018
It seems that the regenerated man pages haven't been committed for some
time. Add them all in one lump now.
Had to manually strip the version number from the generated files.
Had to manually fix the NAME field of bst.1 to not be 'bst - None'.
Oddly had to invoke click-man directly in order to get the changes to
be applied, the usual setup.py route mentioned in contributing.rst
didn't work.
Eyeballed the result of invoking man on each of the commands, seems
good.
-
033a5ad9
by Jürg Billeter
at 2018-11-30T10:09:11Z
Merge branch 'aevri/update_man' into 'master'
man/: update with changes since Apr 2018
See merge request BuildStream/buildstream!981
-
1123b9a1
by Tom Pollard
at 2018-11-30T13:30:35Z
_stream.py: Ability to pull missing buildtrees outside of pull/build
Adds helper function _buildtree_pull_required() to determine if a
pullqueue should be constructed, for commands outside of bst pull
and build where it is determined that an element's buildtree
artifact is to be required given the respective semantics and
config. Utilised in push() to attempt to mitigate skipping the push
of partial elements without the user having to have preceded it with
an explicit pull.
cli.py: Add new behaviour to push command description
element.py: Move _cached_buildtree() to be non local private method,
use _KeyStrength types to reduce duplication.
tests/integration/pullbuildtrees.py also updated to cover this
use-case.
-
ad293ed3
by Jürg Billeter
at 2018-11-30T14:10:06Z
Merge branch 'tpollard/774' into 'master'
_stream.py: Ability to pull missing buildtrees outside of pull/build
Closes #774
See merge request BuildStream/buildstream!978
-
0d634c21
by Phillip Smyth
at 2018-11-30T14:16:36Z
plugin.py: Add BAD_ELEMENT_SUFFIX warning
-
d97ef822
by Phillip Smyth
at 2018-11-30T14:16:36Z
_project.py: Check for fatal_warnings earlier
-
59d442e5
by Phillip Smyth
at 2018-11-30T15:41:57Z
loader: Added file suffix check and helper function
_loader/loader.py: Added Suffix check and warning for named elements and add helper function
-
2d6ec07d
by Phillip Smyth
at 2018-11-30T15:41:57Z
cli.py: no autocomplete on files without .bst
-
ac0bc4c0
by Phillip Smyth
at 2018-11-30T16:50:35Z
Added tests for .bst suffix and completions
buildcheckout.py: Add mandatory .bst suffix tests
completions.py: Add test for fail on invalid suffix
Added required files for testing
integration/source-determinism.py: renamed test elements to end with .bst
loader/__init__.py: initialised context properly with load and a message handler
-
d4bc662a
by Phillip Smyth
at 2018-11-30T16:50:50Z
NEWS: Added update about the Mandatory .bst change
-
7cea464a
by Jürg Billeter
at 2018-11-30T17:21:37Z
Merge branch 'mandatory_suffix' into 'master'
Mandatory .bst suffix
See merge request BuildStream/buildstream!967
-
cc5ef68c
by Tristan Van Berkom
at 2018-12-03T08:41:42Z
MANIFEST.in: Include the sources for rebuilding the documentation session HTML
This was previously missing, causing our CI to forget to rebuild the sessions
when updating the documentation.
This fixes issue #778
-
87ba19d7
by Tristan Van Berkom
at 2018-12-03T09:19:54Z
Merge branch 'tristan/fix-doc-session-rebuilds' into 'master'
MANIFEST.in: Include the sources for rebuilding the documentation session HTML
Closes #778
See merge request BuildStream/buildstream!984
-
1b24148f
by Chandan Singh
at 2018-12-03T09:46:13Z
Ensure `--deps=none` option works for `bst checkout`
Currently, `bst checkout --deps none` command always produces empty
output. Fix this issue and add regression test for the same.
- element_enums.py: Add Scope.NONE.
- element.py: Ensure Scope.NONE works correctly in addition to
Scope.RUN/Scope.ALL in Element.dependencies() and Element.search().
- tests/frontend/buildcheckout.py: Fix tests for `--deps none`.
Fixes #670.
-
8ac1e757
by Chandan Singh
at 2018-12-03T09:46:14Z
Add `--deps build` option to `bst checkout`
As discussed in
https://mail.gnome.org/archives/buildstream-list/2018-September/msg00064.html,
add `--deps build` option to `bst checkout`. This will allow users to
checkout the all build dependencies of a given element using a single
command.
- _frontend/cli.py: Add `--deps build` option for `bst checkout`.
- element.py: Support `deps='build'` in Element._prepare_sandbox().
- tests/frontend/buildcheckout.py: Ensure `--deps build` works as
expected.
-
ac60f47a
by Benjamin Schubert
at 2018-12-03T09:46:14Z
Refactor and simplify _prepare_sandbox for elements
Before we would have a intricate logics with multiple arguments
that might get ignored.
This simplifies the design and introduces a bool `shell` instead
of having two different variables concerned about scope
-
b1430fb5
by Tristan Van Berkom
at 2018-12-03T11:01:54Z
Merge branch 'chandan/bst-checkout-build' into 'master'
Add `--deps build` option to `bst checkout`
Closes #670
See merge request BuildStream/buildstream!819
-
9022a778
by Javier Jardón
at 2018-12-03T11:14:55Z
buildstream/plugins/sources/git.py: warn about checkout by default
See #783
-
4462892e
by Tristan Van Berkom
at 2018-12-03T11:45:07Z
Merge branch 'jjardon/doc_git_submodules' into 'master'
git: warn about checkout submodules by default
See merge request BuildStream/buildstream!983
-
6fcfa452
by Jonathan Maw
at 2018-12-03T13:21:05Z
_yamlcache.py: Use a project's junction name if present
This is required because if there are projects with the same name
loaded, that have elements in the same path, with the same contents,
they are considered the same, despite actually belonging to different
Projects.
This fixes buildstream issue #795
-
d0f9c724
by James Ennis
at 2018-12-03T13:21:05Z
tests/loader/junctions.py: Test that we can build a junction that is referred differently, twice.
Test required to close #795 - We should be able to build a project which refers
to the same junction twice, but with two different filenames.
-
f7581026
by Jürg Billeter
at 2018-12-03T16:27:03Z
Merge branch 'jonathan/fix-identical-element' into 'master'
_yamlcache.py: Use a project's junction name if present
Closes #795
See merge request BuildStream/buildstream!980
-
98c15463
by Tristan Van Berkom
at 2018-12-05T07:04:56Z
_scheduler/queues: Don't call update state outside of error handling harness
Commit 3fa79d8da, part of an initiative for caching of the failed builds,
introduced a call to Element._update_state() after a job completes and before
entering the error handling harness intended for handling plugin raised errors.
Element._update_state() can result in triggering plugin code to
run, so this is incorrect, and causes raised errors to crash BuildStream
if they happen here.
After analyzing the code, it appears that this additional call to
Element._update_state() is unneeded, and was only added because the
state needs to be updated for a failure as well as a success.
Instead, we now have the BuildQueue call Element._assemble_done()
unconditionally, regardless of whether the build was successful
or not, which has the same effect and also reads better.
In addition, added a FIXME comment that we are still conditionally
updating the artifact cache size from BuildQueue.done() only
if the build is successful, which is incorrect because failed builds
also increase the local artifact cache size - to fix this we need
to communicate the added artifact size through Element._assemble()
regardless of whether the build succeeded or failed.
-
5d77b871
by Tristan Van Berkom
at 2018-12-05T07:37:54Z
Merge branch 'tristan/refactor-queues-update-state' into 'master'
_scheduler/queues/queue.py: Don't call update state outside of error handling harness
See merge request BuildStream/buildstream!988
-
82513109
by Valentin David
at 2018-12-05T09:47:52Z
git source plugin: Track git tags and save them to reproduce a minimum shallow repository
Instead of tag information being fetched which can change with time,
they are tracked and saved in the projects.refs/.bst. Then we re-tag
automatically the closest tag so that `git describe` works and is
reproducible.
This new feature is opt-in with the new `track-tags` configuration,
and must be used to fix modules which are broken by our new policy
of omitting the `.git/` repository when staging git sources.
This fixes issue #487
-
ec7b62c3
by Valentin David
at 2018-12-05T09:50:15Z
NEWS: Add news about broken 'git describe' by default.
-
761e7570
by Tristan Van Berkom
at 2018-12-05T10:23:49Z
Merge branch 'valentindavid/git_describe_tracking' into 'master'
Track of git tags and save them to reproduce minimum shallow repository
Closes #487
See merge request BuildStream/buildstream!906
-
2f5966bd
by Raoul Hidalgo Charman
at 2018-12-05T10:37:10Z
platform.py: Add mapping of uname to OS-independent values
-
1ad35fcd
by Raoul Hidalgo Charman
at 2018-12-05T10:44:02Z
_config.py: Use os and architecture settings
In element, platform asks for host os and architecture to default to when
SandboxConfig is initialised.
This changes element cache keys so those have been updated in the tests.
-
9f75c274
by Raoul Hidalgo Charman
at 2018-12-05T10:44:02Z
optionarch.py: update to use same arch names as SandboxConfig
Also update tests to be consistent with this
-
a825096c
by Raoul Hidalgo Charman
at 2018-12-05T10:44:02Z
_sandboxremote.py: Add os and arch to command uploaded
These are contained within the platform field.
-
8e09a81c
by Raoul Hidalgo Charman
at 2018-12-05T10:44:02Z
optionos.py: Add new option for OS configuration
-
defec112
by Raoul Hidalgo Charman
at 2018-12-05T10:44:02Z
optionos.py: Add tests for OptionOS
Same format as OptionArch tests, but with OS's.
-
e5d8c7d8
by Raoul Hidalgo Charman
at 2018-12-05T10:44:02Z
_platform: Add checks for os and architecture
-
b0603fb0
by Raoul Hidalgo Charman
at 2018-12-05T10:44:02Z
Sandbox: use linux32 for x86-32 builds on x86-64 machines
o _platform/linux.py: Add linux32 flag to send to sandbox bwrap when the
build arch is x86-32 and the machines arch is x86-64 or similarly with
aarch32 and aarch64.
o sandbox/_sandboxbwrap.py: Use flag passed to start bwrap command with
linux32 if set.
-
219fc2f3
by Raoul Hidalgo Charman
at 2018-12-05T10:44:02Z
format_project.rst: Update documentation for changes to OptionArch
-
093d70ad
by Raoul Hidalgo Charman
at 2018-12-05T10:44:02Z
format_declaring.rst: Update documentation for sandbox options
-
64e8ecdf
by Raoul Hidalgo Charman
at 2018-12-05T10:44:02Z
format_project.rst: Add docs for OptionOS