-
855df10c
by Jürg Billeter
at 2018-02-25T20:02:54Z
_downloadablefilesource.py: Add ETag support
This avoids unnecessary downloads when tracking `tar` and `zip` sources.
Fixes #62
-
59615b62
by Tristan Van Berkom
at 2018-02-26T12:43:45Z
doc/source/format.rst: Document format version for junction dependency attribute
The junction attribute was merged fairly recently in the 1.1 series without
bumping the project format version, this documents the junctions addition
to be added since the closest version bump where support exists.
-
2c0b69fb
by Sam Thursfield
at 2018-02-26T15:04:15Z
_artifactcache/artifactcache.py: Fix name mismatch in doc comment
-
c36a1825
by Sam Thursfield
at 2018-02-26T15:04:16Z
_artifactcache/ostreecache.py: Rework so that all remotes for a ref are tracked
This commit adds a couple of simple classes in order to reduce the
number of different dictionaries tracking the state of the remotes
within the OSTreeCache object.
It also extends the internal ref map to remember all the remotes that
store a given ref, not just the highest priority ref, and modifies the
remote_contains_key() method to expose that data.
-
eae43fa4
by Sam Thursfield
at 2018-02-26T15:04:17Z
Don't push artifacts to remote caches that already contain them
This adds two separate checks to avoid pushing artifacts unnecessarily.
First, in the OSTreeCache.push() method we now first obtain the list of
remotes that contain the refs that we are about to push. We then avoid
pushing to any remote that already contains that ref.
Note that the internal ref map is read once on process startup, so
if multiple `bst` processes are pushing to a cache they might still both
push the same artifact. There is an existing issue for this:
https://gitlab.com/BuildStream/buildstream/issues/179
Secondly the Element._skip_push() method now checks if all remote
caches configured for pushing already have a given artifact, and will
skip the push job altogether if they do. The first check would already
mean that no pushes would actually happen, but without the second check
the user would still see Push jobs being created for every artifact
which would be quite misleading.
-
ba4919a4
by Sam Thursfield
at 2018-02-26T15:04:17Z
tests/frontend: Summarize the existing push and pull tests
These tests are too long to understand at a glance so a summary is
needed of each.
-
0c7bd18d
by Sam Thursfield
at 2018-02-26T15:04:18Z
tests/frontend/push.py: Test that we don't push stuff that we just pulled
-
b52ad07c
by Tristan Van Berkom
at 2018-02-27T10:00:44Z
Integration tests: Removing some dead code
o Removing format_files() helper in testutils
o Removing imports of format_files()
o Removing imports of walk_dir() where it's not used
o Removing `element_path` variables that are unused
-
3bf19c0e
by Jürg Billeter
at 2018-02-27T11:43:14Z
element.py: Remove unused strength parameter from _cached()
Remove unused strength parameter from _cached() and _remotely_cached(),
which makes them simple accessor functions as `__cached` is equivalent
to `__strong_cached` with a strict build plan.
-
cdcdc32c
by Jürg Billeter
at 2018-02-27T11:43:14Z
_artifactcache/tarcache.py: Remove unused remove() method
-
8c1979dd
by Jürg Billeter
at 2018-02-27T11:43:14Z
_artifactcache/artifactcache.py: Add push() to abstract base class
-
0c4f62ac
by Jürg Billeter
at 2018-02-27T11:43:15Z
_artifactcache/artifactcache.py: Add pull() to abstract base class
-
7100e0db
by Jürg Billeter
at 2018-02-27T11:43:15Z
_artifactcache: Add key parameter to contains() method
Contain cache key logic in Element class.
-
9e7e9c28
by Jürg Billeter
at 2018-02-27T11:43:16Z
_artifactcache: Add key parameter to extract() method
Contain cache key logic in Element class.
-
623aa819
by Jürg Billeter
at 2018-02-27T11:43:16Z
_ostree.py: Use list of refs as commit parameter
-
e99e22c2
by Jürg Billeter
at 2018-02-27T11:43:16Z
_artifactcache: Add keys parameter to commit() method
Contain cache key logic in Element class.
-
f439e26a
by Jürg Billeter
at 2018-02-27T11:43:17Z
_artifactcache: Add key parameter to push_needed() method
Contain cache key logic in Element class.
-
44bddc5f
by Jürg Billeter
at 2018-02-27T11:43:17Z
_artifactcache: Add keys parameter to push() method
Contain cache key logic in Element class.
-
e6910600
by Jürg Billeter
at 2018-02-27T11:43:17Z
_artifactcache: Add key parameter to pull() method
Contain cache key logic in Element class.
-
14c81d99
by Jürg Billeter
at 2018-02-27T11:43:18Z
Remove unused _KeyStrength imports
-
a8a942b7
by Jürg Billeter
at 2018-02-27T11:43:18Z
element.py: Add _can_query_cache() method
Keep the knowledge about which cache key is required for cache queries
within the Element class.
-
618f7d69
by Jürg Billeter
at 2018-02-27T11:43:18Z
element.py: Remove unused _get_strict_cache_key() method
Cache key handling is now contained within the Element class.
-
f685ea68
by Jürg Billeter
at 2018-02-27T12:09:56Z
tests/frontend/pull.py: Do not use a workspace for the non-strict test
The cache status of reverse dependencies of workspaced elements cannot
always be determined upfront.
-
33b14eb5
by Jürg Billeter
at 2018-02-27T12:09:56Z
Determine as early as possible whether a build is pending
Workspaced sources are considered unstable if a build is pending as the
build will modify the contents of the workspace. Determine as early as
possible if a build is pending to be able to discard unstable cache
keys.
Fixes #273
-
c9db2eb9
by Jürg Billeter
at 2018-02-27T12:09:56Z
tests/frontend/workspace.py: Add cache key checks to test_build
Regression test for #273
-
1b74422a
by Tristan Van Berkom
at 2018-02-27T15:03:04Z
tests/integration/shell.py: Generate project.conf on the fly
-
63eb06bc
by Tristan Van Berkom
at 2018-02-27T15:05:53Z
_project.py: Added 'host-files' shell configuration
A shell configuration allowing one to bind mount files into the
shell sandbox.
This bumps the BST_FORMAT_VERSION to 2.
This is related to #223, and solves #241 (name resolution problems)
by making it possible to specify a bind mount for `/etc/resolv.conf`
in the project configuration.
-
9e3a26aa
by Tristan Van Berkom
at 2018-02-27T15:07:04Z
element.py: Inform the sandbox of host-files when running a shell
Does not apply to isolated shells.
-
ce6ea0e1
by Tristan Van Berkom
at 2018-02-27T15:07:10Z
sandbox/_mount.py: Ensure file existence for bind mounts
This logic existed but is now a bit more complex with
the addition of allowing explicit bind mounts to be defined
for the shell; the change is that now files can also be
mounted into the sandbox instead of just directories.
-
0d5b0955
by Tristan Van Berkom
at 2018-02-27T15:07:10Z
tests/integration/shell.py: Added tests for host-files
Newly added tests:
o Test that bind mounting a file works
o Test that bind mounting a file into a non-existing directory works
o Test that bind mounting is disabled in an isolated shell
o Test that the shell still works, but a warning is printed and
the mount is refused in case the specified file on the host
was found to be a directory
o Test that the shell still works, but a warning is printed
in the case that the file specified on the host does not exist
-
78b4259a
by Tristan Van Berkom
at 2018-02-27T15:07:10Z
doc/source/projectconf.rst: Documenting `host-files` shell configuration
-
ad0369fd
by Sam Thursfield
at 2018-02-28T09:17:45Z
Store integration tests cache inside the current directory by default
Previously the code would default to a directory in `/tmp`, but this
is often unsuitable as the Linux 'tmpfs' filesystem doesn't support
extended file attributes and thus cannot store OSTree repositories.
See: https://gitlab.com/BuildStream/buildstream/issues/267
-
5ebb7824
by Sam Thursfield
at 2018-02-28T09:17:45Z
Modify how the INTEGRATION_CACHE environment var is interpreted
When specifying a location for the integration tests cache directory,
we would previously append '/integration-cache' to whatever path we
were given. This is regarded as confusing.
See: https://gitlab.com/BuildStream/buildstream/issues/267
-
7c290b43
by James Ennis
at 2018-02-28T16:46:05Z
compose.py: key dictionary is now correctly initialised
-
543a0012
by James Ennis
at 2018-02-28T16:46:11Z
Update expected cache keys in tests
-
c88a8810
by Jim MacArthur
at 2018-03-01T14:36:08Z
widget.py: Make the displayed text for LogLine messages a widget too
Adds MessageOrLogFile widget, which contains the same functionality
previously used to display messages.
-
ad2781c2
by Jim MacArthur
at 2018-03-01T14:36:08Z
widget.py: Modify TimeCode to take a microseconds argument
-
14234ccc
by Jim MacArthur
at 2018-03-01T14:36:08Z
Add sequence ID and widget for it.
The idea of a sequence number/ID is to tie together all messages
associated with a given timed activity, to make performance
analysis easier.
_context.py: Add sequence number with atomic increment
_widget.py: SequenceID widget, which displays this value
_message.py: sequence_id variable storing the sequence for a message.
-
c3f1a2e1
by Jim MacArthur
at 2018-03-01T14:36:08Z
Add the FixedText and WallclockTime widgets
WallclockTime is set at the time a message is created. Since messages
can be placed in queues before being rendered, this is not always
the same time as the wallclock time when rendering the message, so it
needs to be stored in the message.
widget.py: Add the two new widgets
_message.py: record system time when a message is created.
-
03bdc5cd
by Jim MacArthur
at 2018-03-01T16:18:01Z
Add logfile format tokeniser
widget.py: Main body of tokenizer.
_context.py: Read message-format from user config YAML.
main.py: Pass in context message-format to LogLine constructor.
-
8c5a2c88
by Jim MacArthur
at 2018-03-01T16:18:08Z
Remove brackets added inside widgets
Brackets can now be added as plain text in a custom logging format
string, so there's no need to add them in widgets.
widget.py: Remove brackets.
_status.py: Remove the 'brackets' optional argument to TimeCode.
-
e566bc05
by Jim MacArthur
at 2018-03-01T16:18:31Z
Add a test for default and custom logging
-
c333adf4
by Jonathan Maw
at 2018-03-01T17:27:28Z
Allow plugins to forbid runtime dependencies and sources
The flags BST_FORBID_RDEPENDS and BST_FORBID_SOURCES can be set in the
plugin's class declaration, and exceptions will be raised during
pre-flight checks
-
2cbe1767
by Jonathan Maw
at 2018-03-01T17:27:28Z
compose: Use built-in checks on runtime depends and sources
-
8a4fff9a
by Jonathan Maw
at 2018-03-01T17:27:28Z
scriptelement: Use built-in checks on runtime depends and sources
-
42de997e
by Jonathan Maw
at 2018-03-01T17:27:28Z
Pipeline: Give more helpful errors when opening a workspace for an element that has no sources
When trying to look at the source code for an element, elements that
modify artifacts (e.g. script and compose elements) don't have sources,
so we suggest some other elements that they might try opening workspaces
for.
-
b884fe14
by Jonathan Maw
at 2018-03-01T17:27:28Z
Add Filter element
-
09195b19
by Jonathan Maw
at 2018-03-01T17:27:28Z
tests: Add filter element tests
-
e0eb51b1
by Tristan Van Berkom
at 2018-03-02T07:11:54Z
_frontend/cli.py: Better help output for the `--option` main option.
Added metavar, making it more clear that you specify:
bst --option OPTION VALUE
-
60e59a04
by Tristan Van Berkom
at 2018-03-02T07:11:54Z
_frontend/cli.py: Adjust help output for `bst shell`
Dont specify how we fallback to launching a shell with `sh -i`,
since this is now configurable in project.conf.
-
5993c16c
by Tristan Van Berkom
at 2018-03-02T08:37:17Z
NEWS: Adding missing entries for recently added features
-
85912562
by Tristan Van Berkom
at 2018-03-02T11:43:10Z
_sandboxbwrap.py: Allow device nodes to be bind mounted
-
a3f1a8ef
by Tristan Van Berkom
at 2018-03-02T11:51:23Z
_sandboxbwrap.py: Force cleanup when in interactive mode
When running a sandbox in interactive mode (implies `bst shell` was launched
or an interactive shell for debugging), dont bail out when cleaning up
directories which are not empty.
We treat this as a bug, if any of the base sandbox directories (/dev,
/tmp or /proc) are not empty when tearing down the sandbox, because
it would indicate something is wrong with bwrap.
When in interactive mode however, the user/project may have mounted
additional directories inside these base directories; for which we
need to create intermediate directories for the mount.
Instead of keeping track of every intermediate directory, just force
remove in interactive mode, as this is safe.
Ideally, we should fix upstream bwrap to cleanup the debris it creates
when exiting.
-
12ca9607
by Tristan Van Berkom
at 2018-03-04T11:56:07Z
Enhanced bst shell configuration and cli options
Some changes to the host-files configuration:
o Dont require `host-files` to not be directories
We need to specify directories to mount from `project.conf` after all.
o Added possibility of specifying optional mounts, to avoid
meaningless warnings where optional files don't exist on
the host
Added --mount CLI option to `bst shell`
This allows users to explicitly mount whatever they want into the
sandbox environment for `bst shell`.
This closes issue #274
-
bc0c4b71
by Tristan Van Berkom
at 2018-03-04T12:14:19Z
tests/integration/shell.py: Updated shell tests
o Added new test for `bst shell --mount`
o Removed the test that a directory is refused in `host-files`,
this is no longer a requirement
o Updated names of the `host-files` mount specification members
o Test the new `optional` feature of the mount specifications
-
83370f55
by Tristan Van Berkom
at 2018-03-04T12:15:04Z
projectconf.rst: Amending documentation for `host-files`
This is now enhanced and an API change was introduced.
-
2e13d61e
by Tristan Van Berkom
at 2018-03-06T07:00:03Z
NEWS: Adding entry for new `--mount` options of `bst shell`
-
06ac03d4
by Tristan Van Berkom
at 2018-03-06T09:28:26Z
integration tests: Refactoring for dynamic project configurations
o CliIntegration.run() now takes a `project_config` option, this
will be composited on top of the existing, substituted project.conf
o Removing gnomesdk alias from integration tests project.conf
o Using `sysroot` alias instead of `gnome7` alias
o Make base-alpine.bst use the `sysroot` alias now
o Removed `create_project_config()` from shell.py tests, now
use the new built-in feature for this which is cleaner.
-
c0be9295
by Tristan Van Berkom
at 2018-03-06T09:28:26Z
_project.py: Support host environment expansion in `host-files` paths
This allows one to mount paths based on host specific environment
variables, this can be useful for mounting things under XDG_RUNTIME_DIR,
which is needed for host pulseaudio connections.
This is another part of addressing #223
-
eef26583
by Tristan Van Berkom
at 2018-03-06T09:28:26Z
tests/integration/shell.py: Adding tests for env var expansions in `host-files`
-
ea74f326
by Tristan Van Berkom
at 2018-03-06T10:31:13Z
Implement explicit environment assignments for `bst shell`
This introduces a new `environment` section of the project `shell`
configuration to set explicit env vars when running a non-isolated shell.
This supports host environment variable expansion.
This is a part of addressing #223
-
7ed0351a
by Tristan Van Berkom
at 2018-03-06T10:33:22Z
tests/integration/shell.py: Testing new shell environment configuration
-
f8a71cab
by Tristan Van Berkom
at 2018-03-06T11:22:02Z
doc/source/projectconf.rst: Documenting new `environment` shell configuration
And also ammend the documentation for `host-files` to note that
the paths support host side environment variable expansion.
Documenting both `host-files` and `environment` to require format version 4.
-
be6b5564
by Tristan Van Berkom
at 2018-03-06T12:20:27Z
Removing all traces of `environment-inherit` shell configuration.
This is made redundant by the more complete `environment` configuration,
so lets quickly remove the former in this new format version 4.
-
1f63d214
by Tristan Van Berkom
at 2018-03-06T12:41:36Z
NEWS: Adding a few missing entries for the release
-
ec5ee795
by Tristan Van Berkom
at 2018-03-06T12:42:41Z
man: Updated man pages for the release
-
5a0f56af
by Tristan Van Berkom
at 2018-03-06T13:12:10Z
doc/source/projectconfig.rst: Document `sources` overrides as since format version 1
This was added slightly before format version 1, but was done
without a version increment. Previous format versions cannot
be relied upon for use of this feature.
-
df9f696f
by James Ennis
at 2018-03-07T08:42:49Z
_pipeline.py: Remove undefined variable source_index
-
141484fc
by Sam Thursfield
at 2018-03-07T09:07:55Z
HACKING.rst: Mention benchmarking and profiling tools
This adds a reference to the benchmarking tool generated as part of
https://gitlab.com/BuildStream/buildstream/issues/205.
It also documents recommended strategies for profiling, which fixes
https://gitlab.com/BuildStream/buildstream/issues/206.
-
7fdddf30
by Tristan Van Berkom
at 2018-03-07T11:44:37Z
Silence messages from Source cache interrogation
Source interrogation usually involves calling out to host tools
to quickly check if a given ref exists. This has however regressed
over time when running `bst build --track`.
This patch adds a new context manager to silence the messages,
and silences messages while calling `Source.get_consistency()`
Fixes #280
-
9f6ced45
by Jim MacArthur
at 2018-03-07T12:36:19Z
status.py: Restore brackets to time in job display area
-
10fa1b4e
by Tristan Van Berkom
at 2018-03-10T09:53:36Z
element.py: Report errors using `self.get_kind()`
We should always show the user the "kind" string when referring
to a plugin type, not the type name with `type(self).__name__`.
-
5e299889
by Tristan Van Berkom
at 2018-03-13T07:57:15Z
_frontend/widget.py: Never abbreviate frontend messages
Messages which come from the frontend do not have any backing log
file where the remainder of the message can be reviewed. In the
case of lengthly detailed messages originating from the frontend,
we dont allow any abbreviation of the message.
-
9be5a16c
by Jim MacArthur
at 2018-03-13T12:03:13Z
Remove other references to SequenceID from the code and tests
widget.py: Remove SequenceID from the list of widgets.
tests/frontend/logging.py: Remove %{sequence} check.
-
ad8bd6f9
by Jim MacArthur
at 2018-03-13T12:03:13Z
Revert "Add sequence ID and widget for it."
This reverts commit 14234ccce3e7eec1153e810fab75afb2e90a2b22.
-
92b04688
by Jim MacArthur
at 2018-03-14T10:51:56Z
doc/source/formatintro.rst: Better explanation of defaults
Users shouldn't see any difference between values hardcoded in Python (if
there are any) and the values in projectconfig.yaml, which were previously
items 0 and 1 respectively. Combined these both into 1 and made it clear that
not all of project.conf is applied right away.
-
76818202
by James Ennis
at 2018-03-14T14:10:26Z
Add pylint to setup.cfg and setup.py
-
793780c6
by James Ennis
at 2018-03-14T14:10:26Z
Generate pylint configuration file (pristine file):
NOTE: pylint was installed using pip: `pip3 install pylint` and
.pylintrc is the pylint configuration file which was generated with
`pylint --generate-rcfile` from a fresh fedora-27 docker image.
-
7e79c4af
by James Ennis
at 2018-03-14T14:10:26Z
.pylintrc: Amend which warning messages are disabled
NOTE: We have categorised the warning messages into two groups.
Those that are of no use to us in the buildstream project and
those that should be enabled at some point.
-
6be20757
by James Ennis
at 2018-03-14T14:10:26Z
.pylintrc: Alterations to the configuration file
-
388c1570
by Tristan Maat
at 2018-03-14T14:10:26Z
fuse.py: skip file for linting
-
6eac2eda
by Tristan Maat
at 2018-03-14T14:10:26Z
Add pylint to CI
-
ef0efd70
by James Ennis
at 2018-03-14T14:10:26Z
pylint - dealt with anomalous-backslash-in-string warning
-
1ec691c7
by James Ennis
at 2018-03-14T14:10:26Z
pylint - dealt with bad-continuation warning
-
cdd17bf3
by James Ennis
at 2018-03-14T14:10:26Z
pylint - dealt with broad-except and bare-except warnings
-
a4a302bb
by James Ennis
at 2018-03-14T14:10:26Z
pylint - dealt with consider-merging-isinstance warnings
-
1ba6167b
by James Ennis
at 2018-03-14T14:10:26Z
pylint - dealt with dangerous-default-value warning
-
05fa346f
by James Ennis
at 2018-03-14T14:10:26Z
pylint - dealt with global-statement warning
-
4741d137
by James Ennis
at 2018-03-14T14:10:26Z
pylint - dealt with len-as-condition warning
-
0394d67d
by James Ennis
at 2018-03-14T14:10:26Z
pylint - disabled no-member, bad-exception-context and catching-non-exception warnings
-
81833add
by James Ennis
at 2018-03-14T14:10:26Z
pylint - dealt with superfluous-parens warning
-
b11b48ea
by James Ennis
at 2018-03-14T14:10:26Z
pylint - dealt with unidiomatic-typecheck warning
-
9b4f54e1
by James Ennis
at 2018-03-14T17:31:06Z
pylint - dealt with import warnings
-
432ddffd
by James Ennis
at 2018-03-14T17:31:06Z
pylint - dealt with unnecessary-pass warning
-
4cfa0bdf
by James Ennis
at 2018-03-14T17:31:06Z
pylint - dealt with redefined-argument-from-local warning
-
dfa45f04
by James Ennis
at 2018-03-14T17:31:06Z
pylint - dealt with redefined-outer-name and redefined-built in warnings
-
3df8fb9f
by James Ennis
at 2018-03-14T17:31:06Z
pushreceive.py: byteorder functions are now more sensibly named
-
ccec158a
by James Ennis
at 2018-03-14T17:31:06Z
pylint - dealt with simplifiable-if-statement warning
-
16ff3374
by James Ennis
at 2018-03-14T17:31:06Z
pylint - dealt with whitespace issues and disabled pep8 warnings
-
4b644aba
by Jürg Billeter
at 2018-03-15T15:48:07Z
buildqueue.py: Do not mark assembly complete on build failure
This fixes internal error when build is retried.
Fixes #299
-
3f98a55d
by Jürg Billeter
at 2018-03-15T15:50:08Z
element.py: Do not allow unplanned build jobs
-
a92f9ddb
by Jürg Billeter
at 2018-03-15T17:43:05Z
_sandboxchroot.py: Ensure the cwd exists
This matches SandboxBwrap.
-
3861de9b
by Jürg Billeter
at 2018-03-15T17:43:05Z
scriptelement.py: Mark install-root
This matches BuildElement.
-
9543d078
by Tristan Van Berkom
at 2018-03-16T08:21:15Z
_project.py and docs: Move defaults into the defaults yaml file
Over time, the _project.py module has regressed into expressing
some defaults only hard coded into the python file instead of
properly exposing their default in the base configuration file
in data/projectconfig.yaml, where the default values can be observed
by users.
This patch rectifies that, and also restructures the relevant
surrounding documentation a bit.
-
c187ab76
by Tristan Van Berkom
at 2018-03-16T08:39:37Z
doc/source/format.rst: Fix misnomer in documentation
The provided example shows the `tar` source ref being
expressed with a `sha256sum` key name, lets make the example
correct here and call it `ref`.
-
47ec4f52
by James Ennis
at 2018-03-16T11:44:45Z
.pylintrc: Ensure pylint ignores gi.repository module as it dynamically adds classes
-
9cb30d35
by James Ennis
at 2018-03-16T11:44:45Z
Make pylint and pep8 tests run by default
-
73993644
by Javier Jardón
at 2018-03-17T09:25:26Z
docs/source/install.rst: Arch -> Arch Linux
-
cf778d36
by Javier Jardón
at 2018-03-17T09:25:26Z
docs/source/install.rst: fix terminal box for ArchLinux
-
ca6dd66f
by Javier Jardón
at 2018-03-17T09:29:05Z
source/install.rst: Divide in two sections
- installing from distro packages
- installing from source
-
5d7ee178
by Rafael Fontenelle
at 2018-03-17T09:29:05Z
source/install.rst: Add instructions to install Arch packages
-
6b2f1727
by Tristan Maat
at 2018-03-19T14:56:45Z
.gitlab-ci.yml: Fix lack of setuptools_scm causing CI failure
-
024a37c5
by Tristan Maat
at 2018-03-19T14:56:50Z
.gitlab-ci.yml: Remove superfluous pytest-pylint install
-
810f6c33
by Tristan Van Berkom
at 2018-03-20T07:55:56Z
Deprecate `--track-save` option from `bst build`
It makes no sense to support this now that we are adding project.refs,
instead of removing the option completely, we document it as
deprecated and print a warning.
o _frontend/cli.py: Mark the option as deprecated, warn if it's used
o _scheduler/trackqueue.py: Remove save optionality
o _pipeline.py: Remove save optionality
o tests/frontend/buildtrack.py: Stop testing for no-save functionality,
This test was actually broken, and only save functionality was being
tested. This was due to using a list [True] or [False] in the
@pytest.mark.parameterize() statement, both of which are truthy values.
-
7777d390
by Tristan Van Berkom
at 2018-03-20T07:55:56Z
source.py: Document ref accessors to mandate support for None values.
This is technically an API break, but will be transparant for the
vast majority of the current hand full of source implementations
which exist at this time. This is a lesser evil than bloating the
API with new methods.
-
1fbedea8
by Tristan Van Berkom
at 2018-03-20T07:55:56Z
_downloadablefilesource.py: Support None values in ref accessors.
-
a39927a8
by Tristan Van Berkom
at 2018-03-20T08:46:41Z
_projectrefs.py: Adding the ProjectRefs refs management object
This object manages the project.refs file in a project directory.
-
e2392ce7
by Tristan Van Berkom
at 2018-03-20T08:46:41Z
_project.py: Load project.refs while loading the project.
This also bumps the format version to signify a new format
where storing refs centralized in project.refs is now supported.
-
19cad981
by Tristan Van Berkom
at 2018-03-20T08:46:42Z
Fix #248 - Support project.refs in the core.
This adds a new Source.load_ref() API which is technically optional to
implement, projects which make use of a project.refs file must only
use source plugins which implement the new load_ref() method.
* source.py: Added load_ref() API to load a ref from a specified node.
This also adds _load_ref() and _save_ref() wrappers which handle
the logistics of when to load and save a ref to which location.
This also fixes _set_ref() to apply the ref to the node unconditionally,
this must be done independantly of whether the ref actually changed.
o Modifications to the loading process such that Source now can have
access to the element name and source index.
o _pipeline.py: Delegate abstract loading of source refs to Source._load_ref()
- Print a summarized warning about redundant source references
- Assert that one cannot track cross-junction elements without project.refs.
o _scheduler/trackqueue.py: Delegate saving refs to Source._save_ref()
-
93e29955
by Tristan Van Berkom
at 2018-03-20T08:46:42Z
Source plugins: Implement load_ref() in all source plugins
-
6b63828c
by Tristan Van Berkom
at 2018-03-20T09:29:14Z
tests/frontend/buildtrack.py: Modified to test saving with project.refs
Test that we get the same functionality from the complex build + track
test regardless of whether we are saving refs inline or to a project.refs file.
-
50400e12
by Tristan Van Berkom
at 2018-03-20T09:29:14Z
tests/pipeline/load.py: Testing source without load_ref() implementation
Test that we have no error when loading a project that doesnt use
project.refs, and that we get the expected graceful failure when
attempting to use project.refs with a Source which doesnt support it.
-
83a18f98
by Tristan Van Berkom
at 2018-03-20T09:29:14Z
tests/format/project.py: Test that conditional statements are supported in project.refs
-
0f6b75dc
by Tristan Van Berkom
at 2018-03-20T09:29:14Z
testutils/repo/git.py: Added branch() method
In order to test tracking on multiple branches, lets use
the Git repo scaffolding.
-
150c7441
by Tristan Van Berkom
at 2018-03-20T09:29:14Z
tests/frontend/track.py: Testing that this works with project.refs
Only added condition to the simplest case here, the other cases
are mostly testing that track commands get the correct selection
of elements when using `--deps all` and `--except` arguments.
-
2bcae91f
by Tristan Van Berkom
at 2018-03-20T09:29:14Z
tests/frontend/track.py: Test tracking with optionality
Tests that `bst track` sets the ref in the expected node if the
node containing the ref is conditionalized with a project option.
This tests both the regular inline behavior, and also the project.refs behavior.
-
da95c639
by Tristan Van Berkom
at 2018-03-20T09:29:14Z
tests/frontend/track.py: Testing behavior of cross junction tracking
o Test that this fails gracefully when the toplevel project uses
inline ref-storage
o Test that we successfully track cross junctioned elements when
the project uses project.refs
-
208250cb
by Tristan Van Berkom
at 2018-03-20T09:29:14Z
Documenting project.refs
o Adding explanation of the `ref-storage` option in project.conf
o Adjusting some adjacent relevant documentation
o Adding a new projectrefs.rst section for the project.refs
format itself, and linking it from the main authoring page.
-
3c3e9f79
by Tristan Van Berkom
at 2018-03-20T09:29:14Z
NEWS: Adding news entry for new ref-storage options (project.refs)
Also announce --track-save deprecation
-
a3cb8199
by Tristan Van Berkom
at 2018-03-20T09:56:40Z
source.py and loading: Refactoring of origin handles
The Source object previously stored the __origin_node,
__origin_toplevel and __origin_filename, this is from a time
when we did not hold on to the plugin's Provenance object
explicitly.
Since this information comes from the same place, let's just
use Plugin._get_provenance() to derive these values, instead
of redundantly carrying them along separately.
-
e8e88e5c
by Jonathan Maw
at 2018-03-20T13:18:00Z
filter: Reword docstring to explain what the element does
The docstring included instructions on what it *should* be used for,
which is unnecessary.
Further, it was vague on what the element actually did. The new
docstring should be more explicit on what it does.
-
54827aa7
by Javier Jardón
at 2018-03-20T15:35:07Z
Change theme to sphinx_rtd_theme
The sphinx_rtd_theme is a sphinx theme designed to look modern and be mobile-friendly
http://sphinx-rtd-theme.readthedocs.io/en/latest/index.html
-
d97e9b95
by Javier Jardón
at 2018-03-20T15:35:07Z
source/index.rst: Separate general and reference documentation
Move artifacts from Installing section to general documentation
This change is needed to make the TOC work correctly with the
new theme
-
e2564d21
by Javier Jardón
at 2018-03-20T16:31:53Z
source/install.rst: put Debian version under the same subsection
-
9cf75154
by Javier Jardón
at 2018-03-20T16:31:53Z
source/conf.py: Keep documentation version in sync
-
91f47004
by Javier Jardón
at 2018-03-20T16:45:34Z
source/conf.py: Update copyright year to 2018
-
6a5e8446
by James Ennis
at 2018-03-20T17:05:02Z
index.rst: Fixed typo in About BuildStream
-
c36c545d
by Tristan Van Berkom
at 2018-03-21T13:53:18Z
source.py: Source._save_ref() should return saved state
So we can report proper processed status from tracking queues
-
66ff0245
by Tristan Van Berkom
at 2018-03-21T13:53:48Z
_scheduler/trackqueue.py: Fixed to report proper processed status.
This was a regression from the project.refs branch recently landed.
-
f9edceed
by Tristan Van Berkom
at 2018-03-21T14:23:28Z
.gitlab-ci.yml: Pin the sphinx version to 1.7.1
The new version today 1.7.2 causes the following build error:
Warning, treated as error:
/builds/BuildStream/buildstream/dist/buildstream/doc/source/buildstream.sandbox.rst:document isn't included in any toctree
-
98b0d656
by Tristan Van Berkom
at 2018-03-21T14:38:07Z
_message.py, _frontend/widget.py: Reviving MessageType.ERROR
We need to distinguish between:
o Errors which occurred in a task, and are related to a log file
and an elapsed time.
o Errors which occurred in the main process and are not related
to any timed activity
-
28bff099
by Tristan Van Berkom
at 2018-03-21T14:38:07Z
_scheduler/queue.py: Handle errors in task post processing gracefully.
When errors occur after having processed an element, leaving these
unhandled results in a stack trace that is partially covered up by
the status area, and a hang is caused because we fail to update the
queues properly with the failed element.
This greatly improves the situation for issue #197
-
96c5c427
by Tristan Van Berkom
at 2018-03-21T14:38:07Z
tests/frontend/track.py: Test that we fail gracefully for post tracking errors
This tests that we handle errors from Source.get_consistency() in the
post tracking state updates gracefully, one test added for a handled
failure, and another test added for an unhandled/unexpected exception.
-
cf43f8cf
by Tristan Van Berkom
at 2018-03-21T14:38:07Z
tests/frontend/fetch.py: Test failure modes of Source.get_consistency()
Added a test that handled errors are reported at load time as expected.
Added another test that we get the expected exception. This needs to
be fixed, test contains FIXME: comment explaining that we could be
doing much better here.
This should be fixed in the context of issue #197
-
21fe51fb
by Tristan Van Berkom
at 2018-03-21T14:38:07Z
_context.py: Fix Context._silence() context manager.
This needs to yield in a try: block, otherwise messages
remain silenced after an exception passes through this
context manager.
-
41274b2d
by Tristan Van Berkom
at 2018-03-21T14:38:07Z
_scheduler/trackqueue.py: Remove unsafe calls to push/pop message depth
These messages have been silenced more reliably already
in Source._update_state(), using the Context._silence() context manager.
-
d246403e
by Tristan Van Berkom
at 2018-03-21T15:58:19Z
git.py source plugin: Ignore inconsistent submodules.
If a submodule is listed in either the buildstream git source
definition, or in the .gitmodules file; but is not a valid submodule
which was added with `git submodule add`, we now emit a warning
and avoid exploding in the user's face.
This fixes issue #299
-
0f62dd05
by Tristan Van Berkom
at 2018-03-21T15:58:40Z
tests/testutils/repo/git.py: Add new add_file() convenience
To write tests which add and commit a file.
-
54ba7324
by Tristan Van Berkom
at 2018-03-21T15:58:40Z
tests/sources/git.py: Test that we ignore inconsistent submodules.
Test this at `bst track` time, when encountering a new ref which
adds a .gitmodules file but does not actually add the submodule,
we check that the expected warning is in the stderr and that BuildStream
does not error out for this.
-
dd67fecd
by Tristan Van Berkom
at 2018-03-22T08:27:38Z
_artifactcache/ostreecache.py: Turn an ArtifactError() into an assert statement
This should be an assertion as it will trigger a proper BUG
message with a usable stack trace.
An incident of this ArtifactError() was reported in issue #305.
-
9766da6e
by Javier Jardón
at 2018-03-22T08:40:24Z
Add HACKING document to official docs
-
92509174
by Javier Jardón
at 2018-03-22T11:12:29Z
.gitlab-ci.yml: No need to install python2 for docs job
This also make the job faster: from ~1min to ~30s
-
a52cc0dd
by Javier Jardón
at 2018-03-22T12:15:55Z
source/conf.py: change copyright/author to "BuildStream Team"
-
d1f25425
by Richard Maw
at 2018-03-22T15:15:39Z
project.py: Add workspace.yml format versioning and version 1
-
357ac70e
by Richard Maw
at 2018-03-22T15:41:34Z
frontend/workspace.py: Add tests for loading different versions
-
7d92ef0f
by Phillip Smyth
at 2018-03-23T12:01:20Z
Created deb Source plugin for Issue #10
added tests
-
f4d3892e
by Jim MacArthur
at 2018-03-23T14:37:38Z
Add 'sandbox' configuration key and build-uid/build-gid elements
This only affects SandboxBWrap at the moment.
buildstream/_loader.py: Add Symbol.SANDBOX and allow it in validation
buildstream/_metaelement.py: Add 'sandbox' variable and store it in the object
buildstream/_project.py: Add 'sandbox' configuration key and load it from
project.conf.
buildstream/data/projectconfig.yaml: Default build-uid/build-gid values of 0
for 'sandbox'.
buildstream/element.py: Add __extract_sandbox_config to find the final sandbox
configuration. Pass this to the sandbox constructor.
buildstream/sandbox/_sandboxbwrap.py: If sandbox configuration was supplied,
use it for uid and gid instead of the default 0.
buildstream/sandbox/_sandboxchroot.py: Throw exception if non-0 uid/gid were
supplied.
buildstream/sandbox/__init__.py: Import SandboxConfig.
buildstream/sandbox/_private.py: New file, containing SandboxConfig. Made private
to avoid documentation for this class.
-
7d61e8c1
by Jim MacArthur
at 2018-03-23T14:37:38Z
Add simple tests of builder UID.
tests/integration/build-uid: Add tests.
tests/integration/project/elements/build-uid/build-uid-default.bst:
A test for the default uid/gid of 0 in the sandbox.
tests/integration/project/elements/build-uid/build-uid.bst:
Tests for nonzero uid/gid values supplied in the element.
tests/integration/project/elements/build-uid/build-uid-1023.bst:
Tests for nonzero uid/gid values supplied in project.conf.
-
cd7d0641
by Jim MacArthur
at 2018-03-23T14:37:38Z
Add documentation on sandbox option
-
e302baf5
by Jim MacArthur
at 2018-03-23T14:37:38Z
Increase BST_FORMAT_VERSION to 6
-
3ea2297b
by Jim MacArthur
at 2018-03-23T14:37:38Z
NEWS: Add mention of the new sandbox option
-
83620b38
by Tristan Van Berkom
at 2018-03-25T08:25:54Z
sandbox/_config.py: Replace docstring with comment.
For consistency, we document private things with comments,
and public things with docstrings.
-
c9b5692e
by Tristan Van Berkom
at 2018-03-25T08:30:55Z
Consider new sandbox configuration in cache keys.
This adds SandboxConfig.get_unique_key() to delegate
the cache key contribution to the SandboxConfig.
Further, this moves over the OS and Machine Architecture
parts of cache key calculation into SandboxConfig.get_unique_key(),
removing the comment which speaks of later delegating this
part of cache key calculation to sandboxes.
Cache key calculation algorithm is backward compatible,
and so the artifact version remains unchanged.
-
094d878a
by Tristan Van Berkom
at 2018-03-25T09:09:41Z
tests/cachekey: Added test to exercise new sandbox contributions to cache key
-
d8ec3ecb
by Jürg Billeter
at 2018-03-25T09:20:07Z
tests/testutils/site.py: Add HAVE_ARPY
-
fa25a6a2
by Jürg Billeter
at 2018-03-25T09:20:17Z
tests/sources/deb.py: Skip tests if arpy is not available
Fixes #317
-
c9701cdf
by Jürg Billeter
at 2018-03-25T10:12:02Z
Remove unused imports
-
3845c3e0
by Jürg Billeter
at 2018-03-25T10:12:02Z
.pylintrc: Enable unused-import checker
-
a27d6620
by Tristan Van Berkom
at 2018-03-25T10:24:37Z
NEWS: Added news entry for newly added `deb` source
-
65654ef4
by Tristan Van Berkom
at 2018-03-25T10:24:37Z
Docs: Adding deb source plugin to the docs index
-
e91dc833
by Tristan Van Berkom
at 2018-03-25T10:28:48Z
man: Regenerating man pages for release
This needed an update at least for the deprecation
of `bst build --track-save`
-
b0e6a45e
by Phillip Smyth
at 2018-03-26T15:27:47Z
Generate unique subdirs for built elements
Based on issue 89 (https://gitlab.com/BuildStream/buildstream/issues/89)
Ensuring that elements are staged into unique subdirs while building.
This patch supports that by doing the following:
* Modify project config to add 2 new variables ("project-name" and "element-name")
* Changed the default install-root from "/buildstream/install" to "/buildstream-install"
* Update the tests to accommodate these changes
* Update the expected cache keys in the tests
This fixes #89
-
b606fd14
by Tristan Maat
at 2018-03-27T09:58:18Z
_ostree.py: Add diff_dirs function
-
fb332267
by Tristan Maat
at 2018-03-27T09:58:18Z
_artifactcache: Add diff() interface
-
f761140f
by Tristan Maat
at 2018-03-27T13:32:52Z
Make workspaces use objects instead of pipeline helper methods
-
6d5a7217
by Tristan Maat
at 2018-03-27T13:32:54Z
Record last successful workspace build key
-
dc9a4d39
by Tristan Maat
at 2018-03-27T13:32:54Z
Allow stage_artifact to update mtimes
-
18896a9e
by Tristan Maat
at 2018-03-27T13:32:54Z
element.py: Update mtimes of modified dependency files (#216)
-
1d9ea917
by Tristan Maat
at 2018-03-27T13:32:54Z
Add list of running files to workspace metadata
-
989bb3fe
by Tristan Maat
at 2018-03-27T13:32:54Z
element.py: Disallow incremental builds for caches that can't diff
-
a7ae93ce
by Tristan Maat
at 2018-03-27T13:32:55Z
integration/workspace.py: Add updated dependency tests
-
be5a8638
by Tristan Maat
at 2018-03-27T13:32:55Z
frontend/workspace.py: Adjust tests to new workspace format
-
1e2100d9
by James Ennis
at 2018-03-27T18:05:14Z
install.rst: Inform the user to restart their terminal once their PATH is adjusted
-
0cb0be7a
by James Ennis
at 2018-03-27T18:05:14Z
install.rst: Change ~ for $HOME just incase it expands to characters bash does not like
-
9de1c626
by Javier Jardón
at 2018-03-28T02:19:13Z
source/main_core.rst: Use toctree instead normal list
So index appear in left menu
This is a part of the fix for #246
-
500bd0d2
by Javier Jardón
at 2018-03-28T02:19:43Z
source/main_using.rst: Use toctree instead normal list
So index appear in left menu
This is a part of the fix for #246
-
a32d15e3
by Javier Jardón
at 2018-03-28T02:19:47Z
source/main_authoring.rst: Use toctree instead normal list
So index appear in left menu
This is a part of the fix for #246
-
bb75d4a5
by Javier Jardón
at 2018-03-28T02:19:51Z
docs: Remove orphan tag from all pages
This is not needed anymore as all documented are part of the index
This is a part of the fix for #246
-
6e2a342d
by Tristan Van Berkom
at 2018-03-28T03:44:02Z
_project.py: Move format version assertion before any validation
This fixes #314
-
95510ad6
by Tristan Maat
at 2018-03-28T09:25:48Z
.gitlab-ci.yml: Use debian-8 for tests to test python3.4
-
2d7b721b
by Tristan Maat
at 2018-03-28T12:16:10Z
_workspaces.py: Fix fallout from using python3.4
-
118bea08
by James Ennis
at 2018-03-28T16:42:50Z
element.py: Make artifact lowercase in time_activity()
NOTE: artifact was also made lowercase in the function
get_pushed_elements() in runcli.py
-
9377212d
by Javier Jardón
at 2018-03-29T10:45:58Z
Add basic resources page
with info about git repo, IRC, mailing list and big tracker
-
fbb0ca28
by Javier Jardón
at 2018-03-29T10:45:58Z
source/index.rst: Add resources page to "contributing" section
-
b9546d4d
by Javier Jardón
at 2018-03-29T11:25:08Z
HACKING.rst: Be specific about the only pip packages required are the python3 ones
-
63d99463
by Tristan Van Berkom
at 2018-04-01T11:50:59Z
Include initialization time in the total session time of the build log
This patch refactors the frontend App object and touches a few internals.
o The scheduler now takes a start time given to it at instantiation time,
instead of considering the start time to commence in Scheduler.run()
o The App.initialize() method has been swapped out for an
App.initialized() context manager.
This context manager now takes care of the main start/fail/success
messages. For convenience and ensured consistency, this context manager
is now responsible for:
o Printing the startup heading
o Printing the end of session summary
o Exiting with a consistent error status in case of errors
o The Pipeline() object no longer prints the start/fail/success messages,
as they are now taken care of by the App()
o The cli.py frontend code is much simplified by using the new context
manager, also enforcing consistency in how we handle and report errors.
This fixes issue #186
-
aa8410d8
by Tristan Van Berkom
at 2018-04-01T12:59:01Z
_workspaces.py: Dont unconditionally create workspace local state file at startup.
Fixes issue #257
-
23cea695
by Tristan Van Berkom
at 2018-04-01T18:57:01Z
_frontend/widget.py: Add "Strict Build Plan" setting to session heading
Looks like this quite interesting attribute was not getting logged.
-
999d168a
by Tristan Van Berkom
at 2018-04-01T19:02:02Z
_frontend/widget.py: Change heading separator to use '=' instead of '~'
Seems that using `~` conflicts with some markdown when trying to
paste build logs in, e.g. gitlab issues.
-
00ad7629
by Tristan Van Berkom
at 2018-04-02T07:01:54Z
_frontend/app.py: Renamed from main.py
Since the CLI and the App object was split up, we should name
the file after the object which it implements.
-
6c9c2d42
by Tristan Van Berkom
at 2018-04-02T07:53:45Z
_frontend/app.py: Split up initialization into two parts.
Created partial_init() function to do a partial initialization
which does not require loading the Pipeline, which is more expensive.
This is useful for some bst commands which dont operate on a pipeline.
-
8b5742dd
by Tristan Van Berkom
at 2018-04-02T10:53:59Z
_exceptions.py: Adding new AppError exception and error domain
-
19e31adb
by Tristan Van Berkom
at 2018-04-02T10:55:57Z
Refactoring of highlevel workspace code
Move all workspace related code out of Pipeline() and into the
frontend App() object.
Some changes in transition here include:
o Workspaces() object methods for looking up and deleting workspaces
now take an element name instead of an element.
o Share code for partial App() initialization between the
`workspace close` and `workspace list` commands
o No longer require that an element exist in the project
in order to close a workspace
This fixes issue #249
-
202dd7cd
by Tristan Van Berkom
at 2018-04-02T11:00:06Z
source.py: Remove unused method Source._del_workspace()
This was never particularly useful, there is no circumstances
under which a workspace needs to be deleted, and a cache key
invalidated, in the course of a session.
A workspace is deleted only atomically as a part of `bst workspace close`,
which does not even load a pipeline anymore, so the pipeline state need not
be adjusted in this case.
-
22c6ef17
by Tristan Van Berkom
at 2018-04-02T11:04:59Z
tests/frontend/workspace.py: Fix inaccurate comments
-
af719007
by Tristan Van Berkom
at 2018-04-02T11:11:11Z
tests/frontend/workspace.py: Test that we can remove a workspace for a nonexisting element
Guard against regressions of issue #249
-
18b60dbb
by Tristan Van Berkom
at 2018-04-02T11:17:54Z
tests/frontend/workspace.py: Reduce unneeded coverage here.
Here we are overly testing the same functionality which does
not require source specific support, e.g. lets not test resetting
of workspaces for every kind of repo, since we already test opening
and closing of workspaces for every repo kind, this is redundant
and slowing down tests.
-
af08b16e
by Tristan Van Berkom
at 2018-04-03T13:49:10Z
HACKING.rst: Documenting naming policy for private symbols
This is a part of issue #285
-
70c73b93
by Tristan Van Berkom
at 2018-04-03T13:49:10Z
_workspaces.py: Adhere to policy on private symbols
This is a part of issue #285
-
500f4f33
by Tristan Van Berkom
at 2018-04-03T13:49:10Z
_context.py: Adhere to policy on private symbols
And adjust all surrounding sources for changed symbols.
This is a part of issue #285
-
01db4072
by Tristan Van Berkom
at 2018-04-03T13:49:11Z
_exceptions.py: Adhere to policy on private symbols
And adjust all surrounding sources for changed symbols.
Also, added new LoadErrorReason.UNSUPPORTED_PLUGIN, required
for changes in how the project will report format version errors
for plugins at creation time
This is a part of issue #285
-
af34d716
by Tristan Van Berkom
at 2018-04-03T13:49:11Z
_project.py: Adhere to policy on private symbols
And adjust all surrounding sources for changed symbols.
Additional details:
o Added Project.get_shell_config() to report the shell configuration,
instead of making those members all public
o Moved assertions about project specified format versions required
of plugins out of Plugin.__init__, and into Project.create_element()
and Project.create_source(), so we can keep more things private
This is a part of issue #285
-
5c33a984
by Tristan Van Berkom
at 2018-04-03T14:48:56Z
_pipeline.py: Adhere to policy on private symbols
This is a part of issue #285
-
6c14a05a
by Tristan Van Berkom
at 2018-04-04T04:57:50Z
_plugincontext.py: Adhere to policy on private symbols
This is a part of issue #285
-
aff532d4
by Tristan Van Berkom
at 2018-04-04T05:11:50Z
_variables.py: Adhere to policy on private symbols
This is a part of issue #285
-
355b2263
by Tristan Van Berkom
at 2018-04-04T06:17:26Z
_artifactcache modules: Adhere to policy on private symbols
Additionally:
o This shares more code by creating ArtifactCache.get_artifact_fullname(),
which is used for the extract directory relative path in both backends,
and for the ostree "ref" in the ostree backend.
o Further, this removes some redundant documentation in derived abstract
methods, and clarifies in both backends which methods are abstract methods,
we should only be documenting abstract method semantics in one place, where
they are defined.
This is a part of issue #285
-
71f07656
by Tristan Van Berkom
at 2018-04-04T09:16:57Z
Fix strict setting to be consistent throughout the pipeline.
I originally changed the configuration of strict mode to be on
a per project basis in the user configuration, because the user should
be able to set their preference on a per project basis.
I however made the mistake to make the strict mode be considered
on a per project basis within a single pipeline, this commit corrects
the behavior such that when you are building a project with junctions,
only the toplevel project is considered when deciding strict mode
for the whole pipeline.
-
9012a5ed
by Tristan Van Berkom
at 2018-04-05T06:16:15Z
element.py: Fix _update_state() to consider whether an element is to be built properly
This was previously using self._buildable() to determine whether
an element is built locally and not to be downloaded, which misses
out on elements which have already been built, like open workspaces
which can only have their cache key calculated after the build.
This fixes issue #316
-
daffe498
by Tristan Van Berkom
at 2018-04-05T06:16:15Z
tests/frontend/workspace.py: Exercise the build test in strict and non-strict mode
This test fails without the previous patch fixing issue #316,
so this should guard against regressions of building and caching
workspace builds in non-strict mode.
-
638344e4
by Tristan Van Berkom
at 2018-04-05T06:16:15Z
element.py: Updating comment for _assemble_done()
This was misinforming that it is only called in a subprocess,
it also needs to be called in the main process, also point out
that updating element state is a side effect of this.
-
cc43127e
by Tristan Van Berkom
at 2018-04-05T06:16:15Z
_scheduler/buildqueue.py: Dont call Element._update_state() here
This is implied by Element._assemble_done()
-
8c8b1c54
by Tristan Van Berkom
at 2018-04-05T06:35:20Z
_options package: Adhere to policy on private symbols
This also adds a couple of methods to OptionPool to avoid
exposing some internals to other parts of the codebase, and
calls those new methods from _project.py and _frontend/widget.py
This is a part of issue #285
-
b8c68284
by Tristan Van Berkom
at 2018-04-05T06:35:20Z
_platform package: Adhere to policy on private symbols
This is a part of issue #285
-
ab63b536
by Tristan Van Berkom
at 2018-04-05T08:13:35Z
_frontend/widget.py: Defend against empty string message detail
It appears we have some cases of empty detail strings that are
not None, this was resulting in an IndexError when trying to strip
the trailing newline from the message.detail.splitlines() result.
-
207b986f
by Tristan Van Berkom
at 2018-04-05T08:32:42Z
_frontend/widget.py: Print the workspace directory for %{workspace-dirs}
Instead of printing the list of workspace directory for each source.
This fixes some fallout from the changes to make workspaces element-wide
instead of being on a per-source basis, which was merged as merge request !257
as a part of issue #209.
-
a4eb8bd2
by Tristan Van Berkom
at 2018-04-05T08:35:03Z
element.py: Removing Element._workspace_dirs()
This private method is now unused and pointless since we
made workspaces an element-wide concept as a part of issue #209.
-
34210d1e
by Tristan Van Berkom
at 2018-04-05T09:54:24Z
_platform/linux.py: Fix fallout from context private symbols refactor
This was still calling an outdated version of Context._message(),
which is now Context.message(), causing stack traces on platforms
without support for user namespaces.
This was fallout from commit 500f4f330fde8b6001a2f8d8921bd5b8acb79960
-
22fe6b74
by Tristan Van Berkom
at 2018-04-05T13:11:58Z
doc/source/projectrefs.rst: Ammended documentation for project.refs
This was missing the main `projects` toplevel key
-
67338ef7
by Tristan Van Berkom
at 2018-04-05T13:13:49Z
_frontend/app.py: More consistent error reporting
Use App.print_error() in all error exit circumstances, this
will automatically consider any detail strings reported in BstErrors.
-
1280b449
by Tristan Van Berkom
at 2018-04-05T13:14:32Z
_exceptions.py: Added new LoadErrorReasons for junction load failures
-
81ec3635
by Tristan Van Berkom
at 2018-04-05T13:14:32Z
_exceptions.py: Allow detail strings in LoadError exceptions
-
857751fb
by Tristan Van Berkom
at 2018-04-05T13:14:32Z
_loader.py: Some fixes in how we load sources for junctions
o Ensure that we call Source._load_ref(), and consider project.refs this way
o Ensure that we report a warning in the case that project.refs is in use
and the loaded junction source has a redundant ref which is going to
be ignored
o Report more distinct machine readable errors for failures to load
junction element sources
o Handle Consistency.INCONSISTENT and Consistency.RESOLVED separately:
- The user should be told something different depending on whether
they need to fetch or whether they need to track.
- It is never possible to automatically fetch the source in the
case that the source has no ref to begin with.
This also adjusts the test/loader/junctions.py test to expect the new error
-
50af604e
by Tristan Van Berkom
at 2018-04-05T13:14:32Z
tests/frontend: Share the configure_project() function
Make buildtrack.py and track.py share the same configure_project() helper.
-
abb9ef22
by Tristan Van Berkom
at 2018-04-05T13:14:32Z
tests/frontend/show.py: Test behaviors of showing junctioned elements
o Test error conditions for showing an unfetched junctioned project
o Test error conditions for showing an untracked junctioned project
Both tests check both modes of ref-storage.
This adds a new shared helper function `generate_junction`
-
24ab5ce7
by Tristan Van Berkom
at 2018-04-05T13:14:32Z
tests/frontend/fetch.py: Added tests for automatically fetching the junctions
o This tests that a Consistency.RESOLVED junction will automatically be fetched
when `bst fetch` is run on a pipeline which refers to a junction.
o Further, it tests that a Consistency.INCONSISTENT junction will bail
out with the expected error message
Again testing with both ref-storage modes
-
ee73a87b
by Tristan Van Berkom
at 2018-04-05T13:14:32Z
tests/frontend/track.py: Added junction related tests
o Test that we bail out with the expected errors when the
junction element in question is Consistency.INCONSISTENT
o Test that tracking the junction itself, causes a subsequent
show of the pipeline to not bail out anymore (tests that
tracking works and persists for a junction element).
Again these use both ref-storage modes.
-
8704363a
by Tristan Van Berkom
at 2018-04-05T13:27:16Z
tests/frontend/buildcheckout.py: Added junction related tests
o Test that we get the expected error if the junction element
the pipeline refers to is inconsistent
o Test that the junction element is automatically fetched as
a part of the build phase
Both tests using both ref-storage modes
-
09e52016
by Tristan Van Berkom
at 2018-04-06T07:08:47Z
_exceptions.py: Added LoadErrorReason.INVALID_SYMBOL_NAME
-
1b4307f1
by Tristan Van Berkom
at 2018-04-06T08:20:51Z
_yaml.py: Added assert_symbol_name() helper function.
This function asserts that a loaded symbol name is a valid one,
and raises an appropriate and consistent LoadError if an invalid
symbol name is encountered.
-
60f2a320
by Tristan Van Berkom
at 2018-04-06T08:36:13Z
_project.py: Assert that the loaded project name is a valid symbol name
Fixes issue #339
-
337075bb
by Tristan Van Berkom
at 2018-04-06T08:36:42Z
_options/optionpool.py: Assert valid symbol names for option names.
These must be alphanumeric and may not contain dashes.
-
550cb369
by Tristan Van Berkom
at 2018-04-06T08:36:42Z
_options/option.py: Assert valid symbol names for variable exports
-
420114a0
by Tristan Van Berkom
at 2018-04-06T08:36:42Z
tests/format/project.py: Converted to use CLI test harness
Moved the old style project format tests into the new CLI based
directory in tests/format/ and converted to use the CLI fixture
for these tests.
-
50b694a3
by Tristan Van Berkom
at 2018-04-06T08:36:42Z
tests/project/plugins.py: Removed this old style test
This is sufficiently covered by other tests in tests/format/project.py
-
c2500610
by Tristan Van Berkom
at 2018-04-06T08:36:42Z
tests/format/project.py: Added tests for loading of invalid project names
-
a2bc2a1c
by Tristan Van Berkom
at 2018-04-06T08:36:42Z
tests/format/options.py: Added tests for invalid option name symbols
-
21050433
by Tristan Van Berkom
at 2018-04-06T08:51:16Z
tests/format/options.py: Added tests for invalid variable names in options
-
06b1920b
by Tristan Van Berkom
at 2018-04-06T08:51:16Z
doc/source/projectconf.rst: Properly document the project name.
This is a part of issue #339
-
23edfe5d
by Tristan Van Berkom
at 2018-04-06T08:51:16Z
doc/source/projectconf.rst: Document restrictions on option and option variable names.
-
c55dad4b
by Tristan Van Berkom
at 2018-04-06T11:45:13Z
data/userconfig.yaml: Change default logging to print full shas at init and bst show
This may be obnoxious for `bst show` purposes, which will now also print
the full artifact cache keys instead of nicely abbreviated ones, but it is a
more appropriate default for the heading of a build session.
This fixes issue #343
-
74c60178
by Chandan Singh
at 2018-04-07T09:42:25Z
_frontend/cli.py: Add option to close multiple workspaces
At present, it is only possible to close workspaces for elements one at
a time. This can become slightly tedious process when you have multiple
workspaces open and you want to close all of them, maybe because you
just finished working on a set of related elements.
Instead of accepting a single element, accept a list of elements as
argument for `bst workspace close`. Additionally, add `-a`/`--all`
option to close all workspaces.
Fixes #337 - Add option to close all workspaces.
-
2ca11fde
by Tristan Van Berkom
at 2018-04-07T10:02:13Z
_frontend/cli.py: Remove --no-checkout option for `bst workspace reset`
This option in `bst workspace reset` is just pointless.
-
3ba544b8
by Tristan Maat
at 2018-04-07T10:05:10Z
Allow 'None' as a default_value for _yaml.node_get
-
60dbf19f
by Tristan Van Berkom
at 2018-04-07T10:30:47Z
Complete the work started to allow None as default in _yaml.node_get()
This completes the work which was started in commit
3ba544b80f9f268be8ffe62fc8589b30212ec4a2 which only went half
way towards updating all the source code to be consistent and use
the new semantic which allows None values.
-
59064042
by Tristan Van Berkom
at 2018-04-08T08:23:50Z
_project.py: Remove BST_WORKSPACE_FORMAT_VERSION
This is now defined in _workspaces.py
-
9be2dc5a
by Tristan Van Berkom
at 2018-04-08T08:25:21Z
_versions.py: Added new file just to hold basic symbolic versions
This is where we're going to store BST_CORE_ARTIFACT_VERSION
and BST_FORMAT_VERSION from now on.
This was a little bit weirdly defined before, and now we need to
at least have BST_FORMAT_VERSION available from the frontend/cli
without onerous imports (we need to import it there, but dont want
to slow down load time for bash completion runs).
-
b7ec278d
by Tristan Van Berkom
at 2018-04-08T10:59:31Z
_yaml.py: Allow None for provenance argument in _yaml.assert_symbol_name()
Since we now also use this to validate user input on the command line.
-
5de99191
by Tristan Van Berkom
at 2018-04-08T12:56:33Z
_frontend/cli.py, _frontend/app.py: Implemented new `bst init` command.
This comes with an interactive mode unless the project name is specified
on the command line.
This fixes issue #342
-
337b7a31
by Tristan Van Berkom
at 2018-04-08T12:57:01Z
tests/frontend/init.py: New test to test edge cases for new `bst init` command.
-
96af6dd5
by Tristan Van Berkom
at 2018-04-08T12:57:01Z
More specific exceptions when a project.conf is missing.
Since we want to react and start an interactive session when the
project.conf is missing, we need a more specific error to catch.
-
1f57e598
by Tristan Van Berkom
at 2018-04-08T12:57:01Z
_frontend/app.py: Automatically launch interactive `bst init` when project.conf is absent
When running a command where a project.conf does not exist, ask the
user if they would like to interactively create a project in the
said directory.
This is a part of issue #342
-
6d7f86fe
by Tristan Van Berkom
at 2018-04-08T13:06:34Z
NEWS: Adding news entry for new `bst init` command
-
e0a8b9e5
by Tristan Van Berkom
at 2018-04-08T13:55:03Z
_versions.py: Fixed copyright year on newly added file.
Oops.
-
8bfc7371
by Jim MacArthur
at 2018-04-09T09:49:27Z
_ostree.py: Mention the remote URL when we fail to fetch remote refs
-
68cee1c7
by Tristan Van Berkom
at 2018-04-09T10:25:36Z
tests/frontend/workspace.py: Fixed test_build to make the right assertion
This was removing a file from the workspace, building, checking out,
and then asserting that the file is *still gone* in the workspace,
ignoring the same file in the checkout.
-
66cf08fa
by Tristan Van Berkom
at 2018-04-09T10:25:36Z
element.py: Cache source consistency logic and refactor workspace logic into Element
Workspaces are now element wide, so consistency edge cases must
be handled at the element level instead of the source level.
-
26f7f0b8
by Tristan Van Berkom
at 2018-04-09T10:25:36Z
element.py: Factored out pointless extra Element._workspaced() method
-
62346702
by Tristan Van Berkom
at 2018-04-09T10:25:36Z
element.py: Manage scheduled tracking state in Element
This removes the scheduled state of tracking from Sources, as
this is really an element wide thing.
To be consistent with assembly, now this comes with:
o Element._schedule_tracking()
o Element._tracking_done()
o Element.__tracking_scheduled
o Element.__tracking_done
Updated the TrackQueue() to call Element._tracking_done() similarly
to how we have BuildQueue() call Element._assemble_done().
-
0fbb550e
by Tristan Van Berkom
at 2018-04-09T10:25:36Z
element.py, source.py: Removing knowledge of assemble scheduling state from source
And considering the workspace related edge cases in Element instead of Source.
-
67d22d76
by Tristan Van Berkom
at 2018-04-09T10:25:36Z
element.py, source.py: Element consumes the rest of workspace logic.
And Source no longer has any __workspace handle.
-
9e74988e
by Tristan Van Berkom
at 2018-04-09T11:24:34Z
_workspaces.py: Fix cache key calculation regression
This was regressed in the refactor done in commit f761140f
-
b8b41724
by Tristan Van Berkom
at 2018-04-09T11:24:34Z
tests/frontend/workspace.py: Test that we detect modifications made to a workspace
This was previously only working for added or removed files and
broken for modified files.
-
8da99651
by Tristan Van Berkom
at 2018-04-10T08:01:51Z
element.py: Removed useless __workspace pointer
I added this in the last refactor and forgot to remove it.
-
be6b353d
by Tristan Van Berkom
at 2018-04-10T12:01:55Z
_workspaces.py: Remove knowledge of Elements completely
This makes workspaces more cleanly separated from everything else.
o Removed some methods from Workspace()
o Added Element._open_workspace() to initialize workspaces on
sources
o Cleanup some code in the pipeline
o Have the App() call Element._open_workspace() instead of Workspace.open()
-
5a36d04e
by Tristan Van Berkom
at 2018-04-10T12:02:15Z
_workspaces.py: Add generic serialization/deserialization
Also streamline the instantiation code paths to layer the yaml
parsing on top of simple dictionary deserialization.
-
888f0b9f
by Tristan Van Berkom
at 2018-04-10T12:02:15Z
_workspaces.py: Added Workspaces.update_workspace()
This takes a serialized workspace dictionary as understood
by Workspace.from_dict() and created by Workspace.to_dict()
Further, this adds a Workspace.differs() method to compare
the state of two workspace instances.
-
0b5809c4
by Tristan Van Berkom
at 2018-04-10T12:11:54Z
utils.py: Added _is_main_process()
A helper function to identify if we are running in the main process
or not.
-
a9cbb0f7
by Tristan Van Berkom
at 2018-04-10T12:11:54Z
Serialize workspace modifications in the main process.
This patch makes the child process send any workspace state back
to the main process and saves it there directly before processing
the result of a build job, such that workspace modifications in
child tasks work transparently and no special care needs to be taken
to save them except when doing so in the main process.
Also this removes the line where we update workspace data at staging
time.
This fixes issue #352
-
a867f293
by Tristan Van Berkom
at 2018-04-10T12:11:54Z
_workspaces.py: Assert that configuration is only saved in the main process.
-
37d97414
by Jim MacArthur
at 2018-04-10T12:50:53Z
_frontend/widget.py: Correct log line if logdir is empty
-
cb386651
by Tristan Maat
at 2018-04-11T06:49:22Z
HACKING.rst: Add integration and pytest notes
-
d46fbbcb
by Tristan Van Berkom
at 2018-04-11T09:42:56Z
element.py: Preserve workspace state in failed build sandboxes.
As reported in regression #346, since we started mounting the workspaces
we now fail to debug build failures for workspaces, the shell command
no longer sees the workspaces files to debug.
As the failed sysroot represents a very particular build failure, it
is incorrect to attempt to remount a workspace again after a failed
build, as the workspace files may have changed since the build.
Instead, in the case of a build failure on a workspaced element, we
copy the files from the workspace in place (while automatically preserving
the mtimes and everything, as utils.safe_copy() does).
When we implement failed build artifacts, this case will have to be
handled in a very similar way, too.
This fixes issue #346
-
a1564c4a
by Tristan Van Berkom
at 2018-04-11T09:42:56Z
tests/integration/shell.py: Test that workspaced files are visible in a bst shell
Test both in regular `bst shell --build`, and on a failed build sysroot
with `bst shell --sysroot`, the latter being the semantic used when debugging
a failed build.
This guards against regressions of issue #346
-
5217359f
by Javier Jardón
at 2018-04-11T13:58:10Z
doc/source/install.rst: Update list of base requirements
-
274e1831
by Javier Jardón
at 2018-04-11T13:58:10Z
source/install.rst: Update ArchLinux installation instructions
-
6ad88ecb
by Tristan Van Berkom
at 2018-04-11T14:10:54Z
element.py: Restructure artifact metadata
o Store the artifact.yaml into 4 separate files now
o Only load on demand what is needed at a given time
o Add local caching for what was loaded, ensuring we never redundantly load metadata
This breaks artifact format and will require an artifact revision
This should improve performance for issue #294
-
c94f1264
by Tristan Van Berkom
at 2018-04-11T14:10:55Z
element.py, source.py: Cleanup how Source cache keys are calculated.
Recently after a refactor we kept the Source adding workspace keys
to the source keys because, now clean this up to have the workspace
key added directly in the Element cache key calculation.
This breaks cache keys.
-
acfe2494
by Tristan Van Berkom
at 2018-04-11T14:10:55Z
buildstream/_versions.py: Increment BST_CORE_ARTIFACT_VERSION
Now that we've restructured the artifact metadata into
separate files, we need to rev the artifact version.
-
be10c324
by Tristan Van Berkom
at 2018-04-12T12:18:13Z
_frontend/status.py: Fixed status widgets to show full element names.
-
95d1dafc
by Tristan Van Berkom
at 2018-04-12T12:37:24Z
_frontend/widget.py: Fixed regression in logfile abbreviations.
Added required size_request() method to new MessageOrLogFile() widget.
This came up in merge request !377
-
fece8cc8
by Tristan Van Berkom
at 2018-04-12T12:39:06Z
_frontend/cli.py, _pipeline.py: Add options for cross junction tracking.
This patch makes cross junction tracking disabled by default, which
was the initial intention when landing project.refs but never got around
to doing this (intended to get addressing of junctioned elements via
command line sorted first, but didnt happen).
This adds the following options to enable cross-junction tracking:
o bst build -J / --track-cross-junctions
o bst fetch -J / --track-cross-junctions
o bst track -J / --cross-junctions
This also fixes `bst fetch --track` which had a bug, it was avoiding
to track and fetch elements which are in a `cached` consistency state,
which is wrong when `--track` is specified.
This also updates some test cases which were broken by
this change.
This fixes issue #354
-
337fc965
by Tristan Van Berkom
at 2018-04-12T12:39:06Z
NEWS: Added news entry detailing that cross-junction tracking is disabled by default
-
e3e72616
by Richard Maw
at 2018-04-12T13:25:25Z
mount: Wrap yields in context managers with try-finally
The terminator context will only clean up on a signal,
so if another exception causes context manager cleanup
then unmount won't be called unless it's part of another context manager
or is wrapped in a try block's except or finally.
Everywhere else's unmounts are handled by delegating to another context manager
but these were what needed to be fixed.
The change in buildstream/_fuse/mount.py would cause lockups
since the build worker process still having a subprocess
blocked its termination from completing
which in turn caused the pipeline manager process to block indefinitely on it.
-
4aa482ae
by Tristan Van Berkom
at 2018-04-12T15:01:36Z
_pipeline.py: Fix inconsistent element error to print element fullnames.
-
39c4cd17
by Tristan Van Berkom
at 2018-04-12T15:01:36Z
Fix disaster while making cross junction tracking optional.
This disaster was introduced in fece8cc81e8d8412e32c6667682a33e7d2f9dafe
When doing `bst build --track`, we were:
o first scheduling every element to be tracked
o later filtering out the cross junction elements
o finally asserting consistency state, which would trigger
an error because we previously scheduled for tracking.
Fixed this by moving all code which resolves elements to track
into Pipeline.initialize(), and removing special element list handling
from the individual build/fetch/track commands.
-
522d6538
by Tristan Van Berkom
at 2018-04-12T15:01:36Z
_scheduler/trackqueue.py: Mark skipped elements as tracked.
This ensures their state will be updated, it is especially important
for sourceless elements which are scheduled to be tracked, like stack elements.
This fixes a regression from my previous refactor or Sources
which added Element._tracking_done()
-
7c9713ad
by Richard Maw
at 2018-04-12T18:03:09Z
frontend: capture errors for later use
This will be used to provide an error summary before the pipeline summary.
-
30af44e8
by Richard Maw
at 2018-04-12T18:03:09Z
frontend: Use textwrap.indent to indent
The intent is more obvious by using an existing module.
-
7b0a9656
by Richard Maw
at 2018-04-12T18:03:09Z
frontend: Summarise build log output in --no-verbose mode
-
bea028a8
by Richard Maw
at 2018-04-12T18:03:09Z
frontend: Control indentations of multi-line values
-
fc6d192d
by Richard Maw
at 2018-04-12T18:03:09Z
frontend: Redisplay failure messages in result summary
It's more convenient than having to search back through all the output
to find out what the cause of failure was.
-
eb522a4f
by Richard Maw
at 2018-04-12T18:03:09Z
tests: Check that output includes log files of failed builds
-
d94d47c5
by Richard Maw
at 2018-04-12T18:03:09Z
NEWS: Mention failed job summary
-
f1567355
by Javier Jardón
at 2018-04-12T22:09:00Z
.gitlab-ci.yml: Create template for linux-tests job
-
9bc2bb04
by Javier Jardón
at 2018-04-12T22:09:00Z
.gitlab-ci.yml: Run tests in Fedora:27 as well
-
1af6f442
by Javier Jardón
at 2018-04-12T22:09:00Z
.gitlab-ci.yml: Change jobs from <distro>-tests to tests-<distro>
So they show in order nicely in the gitlab CI UI
-
8378f5dc
by Javier Jardón
at 2018-04-12T22:15:33Z
.gitlab-ci.yml: Fix coverage job
-
63b7c821
by Tristan Van Berkom
at 2018-04-13T06:01:37Z
.gitlab-ci.yml: Show which coverage reports are getting combined in CI
This extra line shows which reports will be combined, which helps us
to more quickly debug problems in the coverage job of the .gitlab-ci.yml
-
3b8dd43e
by Tristan Van Berkom
at 2018-04-13T10:32:53Z
plugin.py: Documentation improvements.
Adding "Abstract Methods" section indicating what implementors
have to implement.
Also fixed some inconsistencies, and moved the abstract methods
to the top of the class.
-
1ea74544
by Tristan Van Berkom
at 2018-04-13T10:32:53Z
element.py: Documentation improvements
Added heading section describing the abstract methods, and
moving the abstract methods to the top of the class.
-
03bead6c
by Tristan Van Berkom
at 2018-04-13T10:32:53Z
source.py: Enhanced documentation
Added new Abstract Methods section here, and rearranged sources
such that abstract methods are on top.
-
596264d1
by Tristan Van Berkom
at 2018-04-13T10:36:27Z
buildelement.py: Documentation improvements
Document here in terms of what the BuildElement does to implement
the abstract Element methods.
-
299df233
by Tristan Maat
at 2018-04-13T11:51:17Z
Add element.prepare method
This is one of the tasks of #209
-
ccb6acc1
by Tristan Maat
at 2018-04-13T11:51:17Z
integration/workspace.py: Test that configure commands run only once
-
d1b14086
by Tristan Maat
at 2018-04-13T11:51:17Z
tests/frontend/workspace.py: Automatically update version
-
5632d291
by Tristan Maat
at 2018-04-13T11:51:17Z
tests/frontend/workspace.py: Test new workspace format version
-
2cec9c27
by Tristan Maat
at 2018-04-13T11:54:10Z
Update plugin documentation
-
cb702588
by Tristan Maat
at 2018-04-13T12:02:51Z
Add NEWS entry
-
a4927ad3
by Tristan Van Berkom
at 2018-04-14T08:32:09Z
tests/frontend/show.py: Removing some unused variables
-
ae8543c3
by Tristan Van Berkom
at 2018-04-14T08:32:09Z
tests/format/variables.py: Ported from old style tests
-
188d819d
by Tristan Van Berkom
at 2018-04-14T08:32:09Z
buildelement.py: Adhere to policy on private symbols
This is a part of issue #285
-
d45e12f7
by Tristan Van Berkom
at 2018-04-14T09:13:27Z
source.py: Adhere to policy on private symbols
This is a part of issue #285
-
3ef81d7f
by Tristan Van Berkom
at 2018-04-14T09:14:12Z
buildelement.py: Use Element.get_variable() instead of poking at private thing
This is the only place where Element._get_variables() was used, which we'll
now happily remove - also Element implementations in general should not
have to use private API.
-
7db09e2c
by Tristan Van Berkom
at 2018-04-14T10:19:51Z
element.py: Adhere to policy on private symbols
This involves a lot of reordering of function in the Element class.
This is a part of issue #285
-
476526fc
by Tristan Van Berkom
at 2018-04-14T10:23:00Z
element.py: Rename _get_full_display_key() -> _get_display_key()
The extra "full" was a bit redundant here, the Element does not
export any "less than full" display key accessor, so lets use
a more simple name for this.
-
1094d62b
by Tristan Van Berkom
at 2018-04-14T10:45:09Z
_artifactcache/ostreecache.py: Extracting a missing artifact is a bug
Raise an assertion here, not an ArtifactError.
-
d603051e
by Tristan Van Berkom
at 2018-04-14T10:45:40Z
_artifactcache/tarcache.py: Extracting a missing artifact is a bug
Raise an assertion here, not an ArtifactError.
-
d41940f5
by Abderrahim Kitouni
at 2018-04-14T13:53:36Z
plugins/elements/cmake.yaml: allow using ninja instead of make (#279)
This uses the build tool mode of cmake to have a single command that can call
either make or ninja.
I've also modified the tests to take the new commands into account
-
f6f4738c
by Tristan Van Berkom
at 2018-04-15T10:04:07Z
_frontend/app.py: Adhere to policy on private symbols
This is a part of issue #285
-
06da7a02
by Tristan Van Berkom
at 2018-04-15T11:10:01Z
_frontend/profile.py: Adhere to policy on private symbols
This is a part of issue #285
-
219c7d29
by Tristan Van Berkom
at 2018-04-15T11:10:01Z
_frontend/status.py: Adhere to policy on private symbols
This is a part of issue #285
-
e769beca
by Tristan Van Berkom
at 2018-04-15T11:10:01Z
_frontend/widget.py: Adhere to policy on private symbols
This is a part of issue #285
-
f2edff31
by Tristan Van Berkom
at 2018-04-15T11:48:44Z
buildstream/plugin.py, doc/source/projectconf.rst: Changed policy for core plugin format revisioning
The policy for format revisioning of core plugins maintained in BuildStream
now changes such that we revision all plugins under the same core format version.
This means that format extensions in plugins should be revisioned in
the global _versions.BST_FORMAT_VERSION along with the core format, this
simplifies parameterization of project.conf for usage of core plugins.
This did not really require any code support as our plugins have never
been revisioned before.
-
43e09ccf
by Tristan Van Berkom
at 2018-04-15T11:50:01Z
_versions.py: Bump BST_FORMAT_VERSION for new cmake format extension
With commit d41940f516498f827967b8e5d311ce6accb88f56, the cmake plugin
now supports a new `generator` option which allows one to specify whether
to use `Unix Makefiles` (default) or `Ninja` (optional).
This requires a format version bump if people want to be sure that
the feature is supported.
-
075b9819
by Tristan Van Berkom
at 2018-04-15T11:52:56Z
NEWS: Adding news entry for cmake plugin enhancement.
-
938ec1f4
by Tristan Van Berkom
at 2018-04-16T06:15:30Z
doc/source/format.rst: Some enhancements in how we document dependencies
* Added link target in the project.conf documentation for the element-path
* List elements in examples without the leading `elements/` path, this
is misleading and predates the existence of the element-path
* Specify "element path relative" instead of "project relative", this
was also outdated. Use these opportunities to link back to the element
path project.conf docs section
* Document dependency attributes differently
- Use a list of attributes
- Link back to the first example when speaking of shorthand, instead
of duplication the example in two places
- Enhanced description of how junction attributes are used
- Note that ordering in dependency declaration lists is not meaningful
This is an incorporation of Javier Jardón's patch for issue #358
This fixes issue #358.
-
5cedd894
by Tristan Van Berkom
at 2018-04-16T06:50:56Z
element.py: Document new Element.prepare() method as available since 1.2
-
7c2a43d1
by Tristan Van Berkom
at 2018-04-16T06:53:17Z
element.py: Document new BST_FORBID_SOURCES and BST_FORBID_RDEPENDS as available since 1.2
Also use any() for the check on the generators, instead of expanding the
whole list exhaustively and checking if the list is not empty.
-
ca2331c3
by Tristan Van Berkom
at 2018-04-16T07:45:04Z
source.py, element.py, _pipeline.py: Streamling preflighting.
Instead of having the pipeline preflight all sources separately
from elements, have the element preflight it's sources.
This is in order to simplify the shared code path for the pipeline
and the loader to use for instantiating elements.
Also updated tests to expect the new ElementError and SourceError
instead of the PipelineError which was raised for preflighting before.
-
cd90fbde
by Tristan Van Berkom
at 2018-04-16T09:26:05Z
Clean up element/source instantiation code paths.
This removes the extra `kind` parameter from all of the related
codepaths, it is redundant since the `kind` attribute is already
stored on the MetaElement and MetaSource objects.
-
b4f0a52a
by Tristan Van Berkom
at 2018-04-16T10:59:47Z
element.py, _pipeline.py: Moved instantiation codepath to Element class methods.
This will allow the instantiation codepath to be shared by the Loader
which also needs to instantiate elements for junctions.
-
d02a1b4e
by Tristan Van Berkom
at 2018-04-16T11:34:40Z
_loader.py: Use shared element instantiation codepaths for junction loading.
The consequently fixes issue #292, and you can now use workspaces
to work on junctioned projects.
-
e48f2f82
by Tristan Van Berkom
at 2018-04-16T12:14:37Z
tests/frontend/buildcheckout.py: Added regression tests for workspaced junctions
This guards against regressions of issue #292
-
827a1294
by Tristan Van Berkom
at 2018-04-16T12:52:04Z
_pipeline.py: Stop printing warning when a build plan does not use some existing workspaces
Fixes issue #360
-
eb0ad4d4
by Tristan Van Berkom
at 2018-04-16T13:30:54Z
.gitlab-ci.yml: Perform some python code analysis with radon
This adds a new job in the prepare stage which can be viewed in
the gitlab CI, and also produces an artifacts with the json metrics.
-
a33ac81e
by Tristan Van Berkom
at 2018-04-16T13:58:26Z
.gitlab-ci.yml: Add coverage regex
-
86587bf9
by Javier Jardón
at 2018-04-16T13:58:26Z
README.rst: Add coverage badge
-
9cf8d35f
by Tristan Van Berkom
at 2018-04-17T07:02:09Z
_frontend: Fix error messaging for closing workspaces
This fixes issue #182 again
-
c9b3aad7
by Tristan Van Berkom
at 2018-04-17T07:24:40Z
_frontend: Earlier assertion for `bst workspace open` when directory is not empty
This just raises the error to the user that the checkout directory
where they intend to create a workspace in is not empty, a little
bit earlier, without bothering to initialize the pipeline first.
-
548c03f5
by devcurmudgeon
at 2018-04-17T07:47:16Z
Update README.rst with more detail
-
4fc2da9a
by Tristan Van Berkom
at 2018-04-17T08:31:48Z
element.py: Fix force opening of workspaces.
This was broken because we let the Source objects initialize workspaces
directly in the target workspace directory, where files might already
exist.
Instead, initialize the workspace in a tempdir and hardlink the files
from there.
This fixes issue #364
-
098ee3cf
by Tristan Van Berkom
at 2018-04-17T08:31:48Z
tests/frontend/workspace.py: Added tests for force opening workspaces
Guard against regressions of issue #364
-
226880ee
by Javier Jardón
at 2018-04-17T08:49:59Z
README.rst: Point to new location of x86image example
-
880e1913
by Paul Sherwood
at 2018-04-17T12:36:46Z
Fix typo, add inspiration projects
-
6c23e337
by Chandan Singh
at 2018-04-17T13:01:22Z
refactor: Do not assume there is only one workspace target in app.py
While working with workspaces in _frontend/app.py, we currently assume
that there is only workspace in the pippeline. This limits our ability
to support multiple workspaces in a given command.
Remove this assumption from _frontend/app.py which will allow for the
possibility of supporting multiple workspaces from _frontend/cli.py in
future. This commit does not change the behavior of these commands
though as the target is instead passed as an argument.
-
b264430d
by Chandan Singh
at 2018-04-17T13:01:22Z
_frontend/cli.py: Add option to reset multiple workspaces
!357 added support for closing multiple workspaces. Similarly, also
allow `bst workspace reset` to work on multiple workspaces, with `--all`
as a helper to reset all open workspaces.
-
78a86f60
by Chandan Singh
at 2018-04-17T14:53:17Z
NEWS: workspace close/reset support multiple elements
-
fb6687b6
by Tristan Van Berkom
at 2018-04-17T15:55:01Z
_loader package: Creating a new sub package to hold the loader related things.
-
5f3da731
by Tristan Van Berkom
at 2018-04-17T15:55:01Z
_loader package: Splitting up the loader code into separate pieces
This also refactors the loader code to honor private symbol
naming policy.
This is a part of issue #285
-
1159bbc8
by Tristan Van Berkom
at 2018-04-17T15:55:01Z
_context.py: Removing unused _platform private variable
-
ea7d6ed2
by Tristan Van Berkom
at 2018-04-17T15:55:01Z
_context.py: Make `fetch_subprojects` public.
This is actually used by the Loader and is not private.
This is a part of #285
-
8027b30d
by James Ennis
at 2018-04-17T16:52:27Z
index.rst: remove captions
-
f0b350f1
by James Ennis
at 2018-04-17T16:52:27Z
main_install.rst: New file with install, docker and artifacts
We now have a main installing page with three sections:
1. How to install buildstream onto your machine.
2. How to run buildstream inside docker image.
3. How to install an artifact server
-
4a49cedb
by James Ennis
at 2018-04-17T16:52:27Z
main_authoring.rst: move to using buildstream
-
5d2f6ec6
by James Ennis
at 2018-04-17T16:52:27Z
Add a general documentation section
-
02119f19
by James Ennis
at 2018-04-17T16:52:27Z
index.rst: Remove unnecessary toctree blocks
-
58f8e6bc
by James Ennis
at 2018-04-17T16:52:27Z
Consistent titling
-
516daa5c
by James Ennis
at 2018-04-17T16:52:27Z
invoking.rst: renamed to commands.rst (anchors also changed)
-
5b5c87bf
by James Ennis
at 2018-04-17T16:52:27Z
config.rst: Renamed to user_config.rst and anchors changed
-
e4cea3da
by James Ennis
at 2018-04-17T16:52:27Z
core_framework.rst: New file containing content that was in main_core.rst
-
9a3f008e
by James Ennis
at 2018-04-17T16:52:27Z
main_core.rst: Change title and moved authoring, sandboxing and cachekeys documentation here
-
974bd246
by Tristan Van Berkom
at 2018-04-18T03:44:50Z
_scheduler: Move job.shutdown() calling responsibility inside of Job.
This was being called by Queue if Job succeeds, or inside Job if
Job fails and retries, lets just keep this inside of Job.
-
835e5475
by Tristan Van Berkom
at 2018-04-18T04:49:40Z
_scheduler: Slightly changing the Job / Queue API contracts
For the Job:
o The action_cb, complete_cb and max_retries are now passed
into the constructor, and the Job.spawn() API has no arguments.
o The complete_cb() signature has changed to take a success
boolean instead of a returncode integer, and also now receives
the result directly.
For the Queue:
o Adapted to new Job API contract changes
o Changed the Queue.done() method to now take a success boolean
instead of a returncode integer
Updated Queue implementations to handle the success boolean instead
of the returncode integer.
-
6a4949c2
by Tristan Van Berkom
at 2018-04-18T06:04:32Z
_scheduler/job.py: Adhere to policy on private symbols
This also removes an illegal peek into element._Element__environment
and uses the public Element.get_environment() accessor instead, removing
the need to also sanitize the returned dictionary.
Further, this reduces the amount of data passed between processes
in asyncio callbacks.
This is a part of issue #285
-
494fdd65
by Tristan Van Berkom
at 2018-04-18T06:18:43Z
_scheduler: Adding Queue.dequeue_ready() to avoid peeking into private queue data
And micro-optimizing the scheduler use a generator _expression_ with any()
to check the result instead of creating a list.
-
3b447405
by Tristan Van Berkom
at 2018-04-18T06:44:48Z
_scheduler/queue.py: Adhere to policy on private symbols
And change the API contract a bit more, now the Queue object
takes the scheduler in the constructor and the Queue.attach()
method is removed.
This is a part of issue #285
-
853c54eb
by Tristan Van Berkom
at 2018-04-18T09:38:40Z
_scheduler/job.py: Don't mess with scheduler loop when forking
Instead of unregistering the mainloop handling of SIGTSTP, block
it (along with SIGTERM) while forking, clear the signal handlers
and then unblock them in the child process; let the parent handle
SIGTSTP after unblocking in the main process.
-
268340a5
by Tristan Van Berkom
at 2018-04-18T11:02:25Z
_scheduler/scheduler.py: Adhere to policy on private symbols
Also added Scheduler.jobs_suspended() context manager to
use in the App instead of exposing Scheduler.suspend_jobs()
and Scheduler.resume_jobs() along with signal callback connect
and disconnect APIs, this keeps things more private in the
scheduler.
This is a part of issue #285
-
e18b7e5b
by Tristan Van Berkom
at 2018-04-18T11:02:25Z
_scheduler/fetchqueue.py: Adhere to policy on private symbols
This is a part of issue #285
-
ee7e89d2
by Tristan Van Berkom
at 2018-04-18T14:13:21Z
HACKING.rst: Clarify policy that related issues must be mentioned in commit messages.
This was somehow less than obvious.
-
fd9ee860
by James Ennis
at 2018-04-18T14:16:02Z
HACKING.rst: Include Documentation Formatting Policy
-
149d0859
by James Ennis
at 2018-04-18T14:16:02Z
HACKING.rst: move location of useful links
-
39a7c1f9
by Tristan Van Berkom
at 2018-04-18T14:16:55Z
HACKING.rst: Fixing profiling section to follow rst formatting policy
Two empty lines before a section title, no empty line after the section title
-
ae1d5093
by Javier Jardón
at 2018-04-18T14:19:00Z
README.rst: Add pipeline status badge
-
499c6f9d
by Richard Maw
at 2018-04-18T14:50:04Z
frontend: Log which elements resolved new keys
It can be difficult to pick out important information in all the messages,
so it's convenient to have classes of them collected into one place.
One such class of important information is when the cache key of an element changes,
such as when element's source is tracked or cached from a workspace,
since it can be important to know what the cache key is for that artifact.
Fixes issue #252
-
a850b8ed
by Richard Maw
at 2018-04-18T14:50:33Z
Update NEWS
-
cd75869f
by Javier Jardón
at 2018-04-18T15:25:10Z
Add about page
-
899c3ce0
by Javier Jardón
at 2018-04-18T15:25:10Z
doc/source/index.rst: Replace welcome paragraph
-
64069c8c
by Tristan Van Berkom
at 2018-04-19T06:11:47Z
_pipeline.py: Added PipelineSelection
Part of a slow, ongoing refactor to unmangle the pipeline into
something which just creates pipelines of elements for a centerpiece
to process.
This also renames Pipeline.deps_elements() -> Pipeline.get_selection()
-
67437803
by Tristan Van Berkom
at 2018-04-19T06:11:47Z
_pipeline.py, _frontend/app.py: Added track_selection initialization argument
This informs the pipeline what PipelineSelection mode to use
for constructing the list of elements to track.
-
d73d75c4
by Tristan Van Berkom
at 2018-04-19T06:11:47Z
_frontend/cli.py: Set the track_selection argument to the deps parameter
Tell the pipeline to only track either 'none' or 'all'
PipelineSelection modes.
This fixes issue #367
-
670487be
by Tristan Van Berkom
at 2018-04-19T06:11:47Z
tests/frontend/track.py: Added test for `bst track --deps none`
This guards against regressions of issue #367
-
6fbc81e7
by Tristan Van Berkom
at 2018-04-19T06:38:09Z
buildstream/_artifactcache/pushreceive.py: Fixing unused variables
-
480876af
by Tristan Van Berkom
at 2018-04-19T06:38:09Z
buildstream/_context.py: Fixing unused variables
-
6004943e
by Tristan Van Berkom
at 2018-04-19T06:38:09Z
buildstream/_frontend/app.py: Fixing unused variables
-
dc30af8a
by Tristan Van Berkom
at 2018-04-19T06:38:09Z
buildstream/_frontend/status.py: Fixing unused variables
-
ec2648cb
by Tristan Van Berkom
at 2018-04-19T06:38:09Z
buildstream/_loader/loader.py: Fixing unused variables
-
cb3a2149
by Tristan Van Berkom
at 2018-04-19T06:38:09Z
buildstream/_options/optionpool.py: Fixing unused variables
-
a8c31ff3
by Tristan Van Berkom
at 2018-04-19T06:38:09Z
buildstream/element.py: Fixing unused variables
-
f5b99559
by Tristan Van Berkom
at 2018-04-19T06:38:09Z
buildstream/plugin.py: Fixing unused variables
-
849d66e0
by Tristan Van Berkom
at 2018-04-19T06:38:09Z
buildstream/plugins/sources/_downloadablefilesource.py: Fixing unused variables
-
0a718d86
by Tristan Van Berkom
at 2018-04-19T06:38:09Z
buildstream/sandbox/_mount.py: Fixing unused variables
-
0830323d
by Tristan Van Berkom
at 2018-04-19T06:38:09Z
buildstream/utils.py: Fixing unused variables
-
c1c09e36
by Tristan Van Berkom
at 2018-04-19T06:38:20Z
.pylintrc: Enable linting for unused variables
-
78bd7f56
by devcurmudgeon
at 2018-04-19T11:11:09Z
Add example formats
-
61889ed5
by Tristan Van Berkom
at 2018-04-20T05:32:05Z
plugins: Disable attribute-defined-outside-init pylint error
Plugins set their attributes in configure(), because the
constructor is not public API.
-
671a7412
by Tristan Van Berkom
at 2018-04-20T05:34:04Z
_context.py: Properly declare and document log_message_format in the constructor
-
be5b26c3
by Tristan Van Berkom
at 2018-04-20T05:35:43Z
_pipeline.py: Declare tracking related members in the constructor
-
1fcfd000
by Tristan Van Berkom
at 2018-04-20T05:37:39Z
_artifactcache/pushreceive.py: Fixed ProcessWithPipes to declare attributes in constructor
-
2282af27
by Tristan Van Berkom
at 2018-04-20T05:40:46Z
_scheduler/job.py: Disable attribute-defined-outside-init lint error
This is in a derived Process from the standard lib, we add this
here because we are unsure about the constructor signature.
-
5f378fea
by Tristan Van Berkom
at 2018-04-20T05:41:04Z
.pylintrc: Enable attribute-defined-outside-init messages
This will give us an error if an instance attribute is ever
declared outside of the constructor, which usually constitutes
either a bug or a violation of the coding standard, rendering
code more difficult to read.
-
1b7b51ac
by milloni
at 2018-04-20T10:50:06Z
setup.py: Assert Bubblewrap version
The required version is 0.1.2 based on the fact that we're using
--hostname and --remount-ro.
-
7854fc50
by milloni
at 2018-04-20T10:52:38Z
doc/source/install.rst: Mention bwrap version requirements
-
aab0229b
by Tristan Maat
at 2018-04-20T11:00:46Z
deb.py: Make pylint stop complaining about arpy
-
0213102c
by Tristan Maat
at 2018-04-20T11:03:30Z
HACKING.rst: Add a note about arpy being required for docs
-
1598d35e
by Tristan Van Berkom
at 2018-04-23T06:59:16Z
doc/source/index.rst: Make main documentation title sober again.
Drop the happy welcome phrase with exclamation point.
-
f7713400
by Tristan Van Berkom
at 2018-04-23T07:37:02Z
tests/pipeline/preflight-error: Fixing typo in error string formatting
-
3199d357
by Tristan Van Berkom
at 2018-04-23T08:19:58Z
Overwrite sys.excepthook to handle exceptions in the main application.
This uses the existing messaging system to report errors in the main
application as a BUG type. It requires the use of a global_app variable
which isn't ideal; this may be replaced in future. This partially addresses
issue #197.
Theoretically, an exception could occur before Scheduler.loop is set up,
hence the check for it when terminating all jobs.
NOTE: This was originally submitted by Jim MacArthur, and manually
reapplied after some refactoring took place.
-
4dd72d6c
by Javier Jardón
at 2018-04-23T11:13:35Z
Revert "doc/source/install.rst: Mention bwrap version requirements"
Seems this was not propperly rebased; libostree and bubblewrap requirements
are already there.
Also the paragraph about docker was removed in
commit f0b350f158ed14c97613dc22b83ed89759b8d255
This reverts commit 7854fc5037204474d16618c657a1cd1ca12c888e.
-
c939d5f9
by Javier Jardón
at 2018-04-23T11:13:35Z
doc/source/install.rst: minimum bubblewrap version is 0.1.2
-
2fe1010a
by Tristan Van Berkom
at 2018-04-23T13:00:28Z
doc/source/install.rst: Removing blank line which appeared below title
Sections have 2 blank lines before them, and no blank line after them.
-
a18fcf0c
by Jim MacArthur
at 2018-04-23T13:03:27Z
Add artifact cache receive profiling domain
_artifactcache/pushreceive.py: Wrap OSTreeReceiver.do_run in a
profiling domain.
_profile.py: Add 'ARTIFACT_RECEIVE' domain.
-
1cd3728c
by Jim MacArthur
at 2018-04-23T13:03:27Z
HACKING.rst: Add a section on BST_PROFILE and the artifact cache.
-
15789951
by Tristan Van Berkom
at 2018-04-23T13:04:17Z
HACKING.rst: Fixing formatting of titles.
Titles have 2 blank lines before them, and no blank lines after them.
-
75ebcf56
by Tristan Maat
at 2018-04-23T13:10:18Z
bst-here: Add '-p' flag to upgrade buildstream (Issue #291)
-
4759e2ad
by Sam Thursfield
at 2018-04-23T13:37:06Z
plugins/elements/compose.py: Use sets instead of lists where appropriate
There is no significant order for the lists of added, removed and
modified files, so use an unordered set() to store the data.
-
d423732f
by Sam Thursfield
at 2018-04-23T13:37:06Z
plugins/elements/compose.py: Only calculate snapshot when needed
This is an optimisation for the case where the compose element doesn't
do any splitting, and also brings 2 related code fragments closer to
each other.
-
cb10e2bd
by Sam Thursfield
at 2018-04-23T13:37:06Z
plugins/elements/compose.py: Avoid losing files inside directory symlinks
The logic for determining which files were removed by integration
commands was broken when dealing with files staged within symlink
directories.
This rather weird scenario is only possible because of the way
BuildStream layers artifacts. If artifact 1 contains a symlink from
`/sbin` to `/usr/sbin`, and artifact 2 is staged on top and contains
a file `/sbin/init`, then the resulting filesystem contains a file at
`/usr/sbin/init`.
The manifest used by the compose element is generated from the contents
of the individual artifacts, so it lists the original paths such as
`/sbin/init`, but would would not contain `/usr/sbin/init` as nothing
has processed the symlinks.
The path `/sbin/init` is valid inside the composed tree, but filesystem
traversals that don't follow symlinks will not report that path in their
results. The compose plugin would look for `/sbin/init` in the results
of `utils.list_relative_paths()`, find it missing, and would act as if
some integration command had removed the file. This meant it would not
end up in the results.
To fix this, I have inverted the logic that processes the results of the
integration commands. We now work through every path in the manifest
and check it against the results of the integration commands, rather
than the other way around, and if any path from the manifest doesn't
appear in the snapshot we assume that it has staged in a different
location due to symlinks.
See: https://gitlab.com/BuildStream/buildstream/issues/270
-
3ec1cab1
by Sam Thursfield
at 2018-04-23T13:37:06Z
Add compose-symlinks testcase
This is a regression test for the issue raised here:
https://gitlab.com/BuildStream/buildstream/issues/270
-
caa52411
by Sam Thursfield
at 2018-04-23T13:37:06Z
tests/testutils/integration.py: Avoid inconsistent symlink handling
The output of walk_dir() seemed to be inconsistent in how it traversed
symlinks. Presumably this is to do with differences in how the filesystem
return files. If we do an in-place sort of the list of files and directories
that we get, os.walk() will honour that order which should make the output
stable.
-
84862708
by Javier Jardón
at 2018-04-24T01:45:08Z
doc/source/install.rst: Update install instruction for Debian strech
-
dabaf601
by Javier Jardón
at 2018-04-24T01:45:08Z
doc/source/install.rst: Update build instructions for Debian Testing/Sid
-
fbcf4ad4
by Javier Jardón
at 2018-04-24T01:45:08Z
doc/source/install.rst: Update build instructions for Fedora
-
4be5f1f6
by Javier Jardón
at 2018-04-24T01:45:08Z
doc/source/install.rst: Add fuse to the list of dependencies
See #358
-
07ac1bfa
by Javier Jardón
at 2018-04-24T01:45:08Z
doc/source/install.rst: Add requirements to use the bst cache
See #358
-
b6a64313
by Javier Jardón
at 2018-04-25T08:22:53Z
Move curent before_script: commands to the only jobs where they are actually needed
-
ae927b81
by Javier Jardón
at 2018-04-25T08:29:55Z
.gitlab-ci.yml: Add job to analyze project code quality with Code Climate CLI
See #431
-
60029b31
by Javier Jardón
at 2018-04-25T08:29:55Z
.gitlab-ci.yml: Move radon job to post stage
-
38ac4992
by Tristan Van Berkom
at 2018-04-25T13:29:05Z
_projectrefs.py: Adhere to policy on private symbols
A late fix for issue #285
-
7caecc68
by Tristan Van Berkom
at 2018-04-25T14:26:42Z
_loader: Give the loaded MetaSource objects the kind of the owning element
This is needed so that Sources can derive whether they belong
to a junction or not, which is needed for separating where
junction refs are stored.
-
719a3fc3
by Tristan Van Berkom
at 2018-04-25T14:26:42Z
Load and save junctioned source refs from/to junction.refs
o _projectrefs.py: Additional constructor option to choose the base name
o _project.py: Load two ProjectRefs objects, one for the junctions
o source.py: Load and save junctioned source refs with the appropriate ProjectRefs object
o tests: Updated some tests to expect junctions to be stored in junction.refs
This fixes issue #361
-
52da8751
by Tristan Van Berkom
at 2018-04-25T14:32:47Z
doc: Clarify that junction sources are stored separately from project.refs
-
54633e92
by Javier Jardón
at 2018-04-25T16:16:18Z
.gitlab-ci.yml: Run test in current Debian stable (stretch)
-
4be462d3
by Tristan Van Berkom
at 2018-04-26T05:17:44Z
Use versioneer instead of setuptools_scm
Using setuptools_scm had a couple of bad problems:
o Unexpected versioning semantics, setuptools_scm would
increment the micro version by itself in the case that
we derive a version number from something that is not a tag,
making the assumption that we are "leading up to" the next
micro version.
People mostly dont expect this.
o When installing in developer mode, i.e. with `pip3 install --user -e .`,
then we were always picking the generated version at install time
and never again dynamically resolving it.
Many of our users install this way and update through git, so it's
important that we report more precise versions all the time.
This commit needs to make a series of changes at the same time:
o Adds versioneer.py to the toplevel, this is used by setup.py
for various activities.
This is modified only to inform the linter to skip
o Adds buildstream/_version.py, which is generated by versioneer
and gives us the machinery to automatically derive the correct version
This is modified only to inform the linter to skip
o Adds a .gitattributes file which informs git to substitute
the buildstream/_version.py file, this is just to ensure that
the versioning output would work if ever we used `git archive`
to release a tarball.
o Modifies setup.py and setup.cfg for versioneer
o Modifies utils.py and _frontend/cli.py such as to avoid importing
the derived version when running bash completion mode, we dont
derive the version at completion time because this can result
in running a subprocess (when running in developer install mode)
and is an undesirable overhead.
o Updates tests/frontend/version.py to expect changed version output
-
16e719a9
by Tristan Van Berkom
at 2018-04-26T05:23:45Z
NEWS: Added news entry for versioning fixes
-
b5c59295
by Tristan Van Berkom
at 2018-04-26T05:47:17Z
element.py: Added BST_FORBID_BDEPENDS to compliment BST_FORBID_RDEPENDS
-
14aa2590
by Tristan Van Berkom
at 2018-04-26T05:47:17Z
plugins/elements/junction.py: Forbid dependencies
Move this logic into the junction element itself, instead
of special case erroring for this in the loader.
-
edfcd0f6
by Tristan Van Berkom
at 2018-04-26T05:47:17Z
_loader.py: Removing special case error for junctions depending on elements
Leave this error to be handled by preflight.
Updated test case to expect the new ElementError instead of a LoadError
-
0b35585b
by Tristan Van Berkom
at 2018-04-26T05:55:17Z
_versions.py: Bumping format version for changes project.refs behavior
If we want to depend on being able to revision junction.refs and
project.refs separately, then we are better off just considering the
project.refs feature as available since the new version 8.
This will not harm projects which depended on it since version 5 instead.
-
78ad3b77
by Tristan Van Berkom
at 2018-04-26T05:57:57Z
doc/source/projectconf.rst: Documenting ref-storage as available since format version 8
-
d3a991a5
by Tristan Van Berkom
at 2018-04-26T06:11:43Z
setup.py: Stop installing test cases.
As recommended by Valentin David in issue #332.
-
24028499
by Tristan Van Berkom
at 2018-04-26T06:40:13Z
man: Updated man pages for 1.1.3 release
-
7bb59282
by Tristan Van Berkom
at 2018-04-26T06:42:27Z
README.rst: Removed 'covers many programming languages' from the About BuildStream
This is rather innacurate, you can build software in any programming languange
given that you have provided the required resources for this in the runtime
you are using.
-
06ae434a
by Tristan Van Berkom
at 2018-04-26T06:43:52Z
README.rst: Fixed formatting
No empty lines after a section title, 2 empty lines before a section title.
-
d1c3d705
by Jürg Billeter
at 2018-04-30T09:03:43Z
_artifactcache/pushreceive.py: Fix commit object check in send_info()
Fixes #325.
-
6f1d1552
by Jürg Billeter
at 2018-04-30T09:03:43Z
_artifactcache/pushreceive.py: Do not return True for skipped push
-
cb9f318b
by Jürg Billeter
at 2018-04-30T09:06:10Z
element.py: Print info message when artifact was actually pushed
This matches the pull code path.
-
0916d81e
by Jürg Billeter
at 2018-04-30T09:06:10Z
tests/testutils/runcli.py: Improve detection of pulled/pushed elements
-
f00a435c
by Phillip Smyth
at 2018-05-01T11:34:19Z
_artifactcache/pushreceive.py: Modified incorrect error message
changed encode_message push exception from
'Command must by GLib.Variant'
to
'Command must be PushCommand'
-
eceb7c98
by Jürg Billeter
at 2018-05-03T14:06:55Z
element.py: Fix buildable check in non-strict mode
Ensure that the strong cache key of each build dependency is available
before an element is built. Otherwise the strong cache key of the
element cannot be calculated and caching the artifact produces an
AssertionError.
In non-strict mode an element's strong cache key may not be available
yet even though an artifact is available in the local cache. This can
happen if the pull job is still pending as the remote cache may have an
artifact that matches the strict cache key, which is preferred over a
locally cached artifact with a weak cache key match.
Fixes #383.
-
494f18fe
by James Ennis
at 2018-05-04T09:24:41Z
commands.rst: Split up commands to easily allow for further description
An introduction for this section was also added
-
451b05fc
by Valentin David
at 2018-05-06T06:47:17Z
Fix provenance in error message for undefined variables.
-
745d0647
by Valentin David
at 2018-05-06T06:47:17Z
tests/format/variables.py: Add a test for undefined variable error message
-
53bff7d6
by James Ennis
at 2018-05-07T10:25:52Z
app.py: Ensure an elements sub-dir is created upon project initialisation
-
2e252e9d
by Chandan Singh
at 2018-05-07T11:21:32Z
bst-here: Fix typo in help text
-
6ffca067
by Chandan Singh
at 2018-05-07T11:21:32Z
bst-here: Allow users to specify Docker image
Currently, the name of the Docker image is hardcoded in bst-here script.
This makes it harder for users to override it, which may be needed for
various reasons (custom plugins, private Docker registries etc.)
Add `-i` option to allow users to specify the base image. When `-i` is
not provided, default to `BST_HERE_IMAGE` environment variable if it's
set and otherwise to the current image -
`buildstream/buildstream-fedora`.
Also, re-order the command-line options in help text and source code in
alphabetical order to maintain sanity as the number of options is slowly
growing.
Part of #378.
-
49176039
by Chandan Singh
at 2018-05-07T11:21:32Z
bst-here: Allow users to specify additional volumes to mount
One may want to mount additional volumes to preserve certain directories
or to share some data between the host and the container. Allow users to
do so by providing a `-v` option that passes its arguments to
corresponding `-v`/`--volume` option for `docker run` command.
Part of #378.
-
e6049105
by Javier Jardón
at 2018-05-07T11:40:54Z
.gitlab-ci.yml: Remove redundant declaration of dependencies:
"artifacts from all previous stages are passed by default."
https://docs.gitlab.com/ee/ci/yaml/#dependencies
-
03823d12
by milloni
at 2018-05-07T13:51:16Z
_site.py: Add check_bwrap_version() function
Lazily parse the version of bwrap the first time the function is called.
On subsequent calls, used cached version info.
See: #373
-
f8952d6b
by milloni
at 2018-05-07T13:51:16Z
Replace bwrap checks with calls to check_bwrap_version
See: #373
-
bbb894bd
by Tristan Van Berkom
at 2018-05-07T18:59:38Z
tests/format/variables.py: Removed testing of stderr
We have machine readable errors for this purpose, and the
strings happen to change causing tests to break if we test the specific
UI (reported error strings are UI).
-
2390c814
by Tristan Van Berkom
at 2018-05-07T18:59:38Z
_stream.py: New Stream object, main calling interface for BuildStream core
This is the first part of the pipeline refactor, at this stage
all calling interfaces remain the same, except that invocation
of the scheduler has been moved from Pipline to Stream.
-
11dffaef
by Tristan Van Berkom
at 2018-05-07T18:59:38Z
_stream.py: Add StreamError exception
Use Stream error for Stream errors.
-
76c260b0
by Tristan Van Berkom
at 2018-05-07T18:59:38Z
_stream.py: Absorb workspace functionality from App.
-
c9f67f1e
by Tristan Van Berkom
at 2018-05-07T18:59:38Z
_frontend: Early logging initialization
o This makes logging independent from the Pipeline()
o Removed size_request Widget() method, add context to Widget() initializer
o Make the Status() widget derive anything it needs through the Context()
-
541cd760
by Tristan Van Berkom
at 2018-05-07T18:59:38Z
_stream.py, _frontend: Call Stream() APIs with CLI arguments directly.
This shifts the whole responsibility of interpreting command line
targets etc to the Stream() object itself. With this commit, the
Pipeline() truly becomes slaved to the Stream().
-
c81fb2da
by Tristan Van Berkom
at 2018-05-07T18:59:38Z
Moving 'fetch_subprojects' configuration to stream <--> loader
This was previously decided in CLI, but knowledge of what to initialize
has been moved to Stream().
Now there is no more point to store this configuration in the Context,
we just have the Stream() decide it when asking the Pipeline() to
invoke the Loader().
-
a542c818
by Tristan Van Berkom
at 2018-05-07T18:59:38Z
_frontend/app.py: Remove partially_initialized()
There is no more need for this distinction.
-
b8e15706
by Tristan Van Berkom
at 2018-05-07T18:59:38Z
_artifactcache: Added ArtifactCache.setup_remotes()
This removes some additional initialization code from Pipeline().
Some symbols have changed here, the initialization is now called
from Stream(), and a test case was also adjusted for this.
-
5bdc0a79
by Tristan Van Berkom
at 2018-05-07T18:59:38Z
_stream.py, _pipeline.py: Refactoring of the pipeline itself
Here the pipeline becomes essentially stateless, some dangling
state remains to be factored out because of frontend accesses
which will be changed in a later commit.
Essentially, the Pipeline.load() method no longer has any knowledge
of the specific purposes of the loaded targets, and now takes
a list of target groups and returns a corresponding list of element
groups.
The Stream() business logic methods now use other pipeline helper
methods to create and filter lists from the loaded target elements.
The Stream() also finally absorbs the Scheduler frontend facing
APIs. However Queues are still exposed on the Stream object for
logging purposes and through callbacks such that the frontend can
retry elements.
-
1ec80edc
by Tristan Van Berkom
at 2018-05-07T18:59:38Z
_frontend/cli.py: Fetch all elements when tracking a build plan
It makes not sense to type `bst fetch --track --deps all <targets>`,
because tracking will inevitably modify the build plan.
Stream initialization will not cope with this either, instead of
silently doing something which does not make any sense, we add an
assertion that this should not happen.
Unfortunately since `plan` is the default deps type for `bst fetch`,
this is likely to happen so it's important to correct.
This patch adds a warning in the case tracking of the build plan
elements is requested, and converts the request to track all elements
instead.
-
32c30766
by Tristan Van Berkom
at 2018-05-10T06:59:47Z
_frontend/app.py: Fixed ordering of initialization sequence.
We need the logging handler setup before creating the Stream(),
as the Stream() will expect logging to be already functional.
-
8985da07
by Valentin David
at 2018-05-10T11:33:12Z
buildstream/plugins/sources/_downloadablefilesource.py: Store etag along with cache.
Fixes #377.
-
edf3e029
by Tristan Van Berkom
at 2018-05-10T12:20:06Z
Add soft reset functionality for workspaces
Add `--soft` option to `bst workspace reset` which would allow uses to
reset workspace-related state without affecting its contents. This will
be useful in case when an user wants to re-run configure-commands for a
workspaced element.
Patch originally by Chandan Singh, rebased against recent refactor.
Fixes #375.
-
b2b365fb
by Chandan Singh
at 2018-05-11T01:01:46Z
_project.py: Remove unused internal function _extract_plugin_paths()
For reference, this method was added in
commit c41f1093d83eb32606f81005227542699f756b0a, but since
commit 4912ed5f8922b47c1a16c3752eb92a3f1dea76b2 it has been unused.
-
e1420437
by Jürg Billeter
at 2018-05-11T05:57:37Z
_artifactcache/ostreecache.py: Fix global remotes
Counter-intuitively, Python list += mutates the list. Use explicit
copy() and extend() instead of += to avoid adding project-specific
remotes to the global remote list.
-
6d71826e
by Jürg Billeter
at 2018-05-11T05:57:37Z
_pipeline.py: Remove unused ignore_cache parameter from _Planner
-
37e5362e
by Jürg Billeter
at 2018-05-11T05:57:37Z
_pipeline.py: Allow pulling strict artifacts in non-strict mode
Remotely cached artifacts matching the strict cache key take precedence
over locally cached artifacts matching only the weak cache key. However,
locally cached artifacts were excluded from the build plan, which means
that BuildStream never even checked whether the strict artifact is
available in the remote artifact cache.
This changes planning to keep cached elements in the build plan in
non-strict mode if a remote artifact cache is used.
-
df17f602
by Jürg Billeter
at 2018-05-11T05:57:37Z
tests: Do not rely on 'downloadable' status
This is in preparation for moving away from summary files.
-
da4af798
by Jürg Billeter
at 2018-05-11T05:57:37Z
_frontend/cli.py: Remove bst show --downloadable option
This is in preparation for moving away from summary files.
-
4e512529
by Jürg Billeter
at 2018-05-11T05:57:37Z
_stream.py: Remove unused downloadable parameter from load_selection()
-
db503a42
by Jürg Billeter
at 2018-05-11T05:57:37Z
_artifactcache: Add bool return value to pull()
Calling pull() for a potentially unavailable artifact is no longer
considered an error.
-
e2c150f3
by Jürg Billeter
at 2018-05-11T05:57:37Z
_artifactcache: Add element paramater to has_fetch_remotes()
-
17fd0b24
by Jürg Billeter
at 2018-05-11T06:01:12Z
element.py: Do not query remote artifact caches ahead of pull/push
-
095ce5a5
by Jürg Billeter
at 2018-05-11T06:01:12Z
_artifactcache/artifactcache.py: Remove unused methods
-
31ae2f55
by Jürg Billeter
at 2018-05-11T06:01:12Z
_artifactcache/ostreecache.py: Do not use summary file
-
6ba62c57
by Jürg Billeter
at 2018-05-11T06:01:12Z
doc/source/artifacts.rst: Drop section about summary file updates
Summary files are no longer used.
-
b78df1e2
by Jürg Billeter
at 2018-05-11T06:01:12Z
_ostree.py: Remove unused function list_remote_refs()
-
270da060
by Jürg Billeter
at 2018-05-11T06:01:12Z
Do not pull/fetch/build elements that are not required
For `bst build --deps plan`, do not process elements in pull/fetch/build
queues until they are requested by a reverse dependency.
-
3d9491dd
by Jürg Billeter
at 2018-05-11T08:19:54Z
_stream.py: Do not force `PipelineSelection.ALL` for build with tracking
With the dynamic plan using `_set_required()` we can avoid
pulling/fetching/building unneeded elements even if elements are being
tracked.
-
01a02a9a
by Tristan Van Berkom
at 2018-05-11T08:45:09Z
_workspaces.py: Use file mtime for workspace cache keys instead of checksumming
The rationale for this is basically:
o A workspace is completely local
o A cache key for a workspace is used to determine if the
workspace has changed or not
o Within reason, one should not expect buildstream to detect
a change without a file's mtime having been modified
On my machine, it takes about 1 minute to checksum 11GB of WebKit checkout,
that is annoyingly a long time. With this change, it takes only 5 seconds.
Not perfect, but it's a start.
This is related to issues #294, #295 and #392
-
b9dea666
by Chandan Singh
at 2018-05-11T11:29:45Z
bst-init: Ensure --element-path is respected by the command
Previously "elements" was hard-coded as the path for the elements
directory whereas it was supposed to be configurable via the
`element_path` option to `init_project()`. This led to incorrect
behavior when `bst init` was run `--element-path` option.
Also, extend tests to test the creation of elements directory.
Fixes #398.
-
cb24a1d8
by Tristan Van Berkom
at 2018-05-16T06:18:07Z
doc/source/projectconf.rst: Added link anchors for project option types
-
cb076de8
by Tristan Van Berkom
at 2018-05-16T06:18:07Z
doc/source/projectconf.rst: Added link anchor for source aliases
-
bb8bd1cf
by albfan
at 2018-05-16T07:51:31Z
doc: Add first example, building on a flatpak SDK
This adds:
o A ToC area for adding examples
o The instructive example page for the first example
o The example project under doc/examples
o The corresponding integration test in tests/examples
-
b7e75da3
by Tristan Van Berkom
at 2018-05-16T07:51:31Z
tests/examples/flatpak-autotools.py: Workaround setuptools bug
Until the setuptools bug is fixed, symlinks are not included
in source distributions - this works around the problem until which
point we can use a setuptools version without the bug.
-
b98791cb
by Tristan Van Berkom
at 2018-05-16T07:51:31Z
doc/source/examples.rst: Rearranged ToC for examples
We want one example per file, not a huge file full of different examples.
-
e6f59b63
by Tristan Van Berkom
at 2018-05-16T07:51:31Z
doc/examples/flatpak-autotools/README.md: Removing
This is redundant with doc/source/examples_flatpak_base.rst, lets
please only document things once.
-
c205991e
by Tristan Van Berkom
at 2018-05-16T07:51:31Z
doc/source/examples_flatpak_autotools.rst: Enhanced example
This has now changed to:
* Have explanations of the project.conf and each element
in the example, explaining what they are for
* Have links into the reference for the specific features
this example uses, such that the reader can get familiar
with the reference manual from example windows
-
e023beb5
by Tristan Van Berkom
at 2018-05-17T05:46:46Z
_frontend: Notify failures when on linux
Opens the door to platform specific frontend features,
and implements a platform specific "notify" method.
This is based on Valentin David's patch on merge request 447,
and this fixes issue #385.
-
84a57b2f
by Tristan Van Berkom
at 2018-05-17T10:56:04Z
_frontend/linuxapp.py: Fixed crash in previous commit
Commit e023beb56b180316a58f409d48f158e9dc1ece95 introduced
a crash with an invalid access to os.environ, this fixes it.
-
314c25d8
by Chandan Singh
at 2018-05-17T13:21:09Z
element.py: Fix consistency of workspaced elements when ref is missing
Fixes #393.
-
ec16561f
by Jonathan Maw
at 2018-05-17T15:45:50Z
tests: Add workspace tests for filters
-
8316a1fe
by Jonathan Maw
at 2018-05-17T15:45:50Z
tests: Add track tests for the filter element
-
38dc2dda
by Jonathan Maw
at 2018-05-17T15:45:50Z
element.py: Add _get_source_element() method
-
6e2e976c
by Jonathan Maw
at 2018-05-17T15:45:50Z
filter.py: Redirect _get_source_element() calls to its build depend
We do this because trying to open/close/reset a workspace on a filter
element doesn't make sense, but is probably meant for the element that
the filter element filters.
-
c09be483
by Jonathan Maw
at 2018-05-17T15:45:50Z
Redirect elements when performing tracking and workspace commands
i.e. when an element is specified, it may be replaced with its source element.
-
206a7ee8
by Jonathan Maw
at 2018-05-21T09:59:45Z
NEWS: Add item for element redirection
-
77da5945
by toscalix
at 2018-05-22T14:19:19Z
bst bug template
-
3749e44e
by toscalix
at 2018-05-22T14:21:31Z
bst merge request template
-
b69e6482
by toscalix
at 2018-05-22T14:25:22Z
correction :
-
4d92c106
by toscalix
at 2018-05-22T14:27:29Z
correction :
-
a06778aa
by James Ennis
at 2018-05-23T14:45:48Z
junction.py: Include note regarding explicit tracking
-
9b261f56
by toscalix
at 2018-05-24T19:07:24Z
bst_task.md: default template also as option
-
a4cd9d7c
by toscalix
at 2018-05-24T19:11:27Z
Merge branch 'master' of https://gitlab.com/BuildStream/buildstream
bst_task.md : default template also as option.
This is the default template. It is neccessary to include it in this directory to have it as option which is required in special cases.
This fix issue https://gitlab.com/BuildStream/nosoftware/alignment/issues/12
-
c0de75e2
by albfan
at 2018-05-25T14:35:18Z
.gitignore: Ignore autogenerated docs
-
4708ee6b
by Antoine Wacheux
at 2018-05-31T12:57:51Z
_artifactcache/ostreecache.py: Fix artifact cache initialization result tuple
In case of failure, the tuple contained 4 elements instead of 3, causing
BuildStream to crash.
-
065f5ac7
by Tristan Maat
at 2018-06-05T08:47:33Z
_context.py: Normalize user-defined paths
-
279dcb40
by Tristan Maat
at 2018-06-05T08:47:33Z
tests/context/context.py: Test setting XDG_CACHE_HOME
-
fe24fc3b
by Gökçen Nurlu
at 2018-06-05T16:23:22Z
Add test to verify cleanup behaviour after bwrap
This adds `sandbox-bwrap/test-cleanup.bst` to test the cleanup behaviour in
`sandbox/_sandboxbwrap.py`: There already exists a non-empty `/tmp` folder and
BuildStream should not try to remove it after a command is executed with bwrap.
-
75fe8037
by Gökçen Nurlu
at 2018-06-05T16:23:22Z
_sandboxbwrap.py: Fix post-bwrap cleanup behaviour
The cleanup was supposed not to remove folders (`/dev`, `/tmp`, `/proc`) if
they already existed before bwrap but it did the opposite: it tried to remove
them if they existed before, and didn't remove them if they were created during
bwrap. This was caused by a `not` clause, and this removes it.
Fixes #379
-
8d88b52a
by Phillip Smyth
at 2018-06-05T18:00:03Z
utils.py: Correcting a typo in safe_remove's comment
-
1d694b28
by Chandan Singh
at 2018-06-05T19:34:21Z
_artifactcache/pushreceive.py: Add Click type for CLI argument 'repo'
The CLI for `bst-artifact-receive` expects a `repo` argument, which is
supposed to be a directory, but Click currently expects it to be just
any string. This results in stack traces like the one below when the
argument provided is not a directory:
$ ~/.local/bin/bst-artifact-receive --pull-url http://foo foobaz
Traceback (most recent call last):
File "/root/.local/bin/bst-artifact-receive", line 8, in <module>
sys.exit(receive_main())
...
File "/src/buildstream/buildstream/_artifactcache/pushreceive.py", line 581, in __init__
self.repo.open(None)
GLib.Error: g-io-error-quark: /src/buildstream/43fref: opendir(/src/buildstream/foobaz): No such file or directory (1)
Add types for this argument such that it throws better error messages
when it receives bad arguments. With the Click types added, it will
instead fail with messages like these:
$ ~/.local/bin/bst-artifact-receive --pull-url http://foo foobaz
Usage: bst-artifact-receive [OPTIONS] REPO
Error: Invalid value for "repo": Directory "foobaz" does not exist.
$ ~/.local/bin/bst-artifact-receive --pull-url http://foo setup.py
Usage: bst-artifact-receive [OPTIONS] REPO
Error: Invalid value for "repo": Directory "setup.py" is a file.
Fixes #409.
-
7f9216b3
by Tristan Van Berkom
at 2018-06-06T17:20:24Z
_frontend/app.py: Remove unused variable at global scope
-
5dc8ab98
by Ed Baunton
at 2018-06-06T17:56:59Z
Add a kind for Make
-
b36db258
by Tristan Van Berkom
at 2018-06-06T18:50:54Z
doc/source/authoring.rst: Adding `make` element to the docs
-
5ddec56f
by Tristan Van Berkom
at 2018-06-06T18:54:03Z
_versions.py: Bump format version to 9
For addition of new `make` plugin
-
17fa7ba4
by Tristan Van Berkom
at 2018-06-06T18:54:27Z
make plugin: Ammended documentation to note it's since version.
-
0f2fd8c8
by Tristan Van Berkom
at 2018-06-06T18:55:56Z
NEWS: Mentioning new `make` build element
-
55dc3b27
by Tristan Van Berkom
at 2018-06-06T18:59:00Z
make build element: Add support for PREFIX
-
7df95654
by Chandan Singh
at 2018-06-06T21:27:30Z
_loader/loader.py: Report element-path when failing to load elements
It can be confusing, especially to new BuildStream users, that the CLI
expects targets to be specified relative to element-path and not the
current directory. Previously, the CLI would give a generic message
stating that the file could not be found but it was not obvious that it
was looking in the `element-path` directory.
Explicitly print the element-path in the summary. Also, try to check if
the specified element exists in the elements directory and print a hint
to use the element-path relative paths if that's the case.
Fixes #396.
This is is also related to #341. This commit aims to tackle that issue
by trying to educate users about element-path.
-
a5ff465d
by Chandan Singh
at 2018-06-06T22:10:49Z
_project.py: Allow running bst commands from subdirectories of project root
When initializing the project, BuildStream will continue searching for
project.conf in parent directories in case it is not found in the
current directory.
Fixes #368.
-
69e59443
by Chandan Singh
at 2018-06-06T22:10:49Z
_frontend/cli.py: Try to autocomplete element paths when running from a subdirectory
The previous commit added support for running bst commands form
subdirectories of the project root. Make autocomplete also work in a
similar way.
-
e36001f9
by Ed Baunton
at 2018-06-07T13:43:27Z
Make `bst help` work
-
b25c31ea
by Ed Baunton
at 2018-06-07T17:34:27Z
Implement bst help
-
8234e9c7
by Tristan Van Berkom
at 2018-06-07T20:14:11Z
_frontend/cli.py: Allow specifying commands in `bst help`
o This supports deeply nested commands as well as shallow commands
o Automated support for bash completions included
-
9c65b908
by Tristan Van Berkom
at 2018-06-07T20:14:11Z
tests/completions: Added test case for custom `bst help` completions
-
4632cb03
by Tristan Maat
at 2018-06-07T20:35:51Z
_ostree.py: Reintroduce remove()
-
60a29f68
by Tristan Maat
at 2018-06-07T20:35:51Z
_ostree.py: Introduce _list_all_refs() and list_artifacts()
The unused list_remote_refs() function has also been removed as
part of this commit.
-
b7191fda
by James Ennis
at 2018-06-07T20:35:51Z
pushreceive.py: Ensure there is a repopath
-
58adbe0b
by James Ennis
at 2018-06-07T20:41:03Z
pushreceive.py: Remove LRP artifacts from cache, introduce clean_up_cache()
This fixes #136
-
8a0c0a9a
by James Ennis
at 2018-06-07T20:41:33Z
element_generators.py: Add a utility function to create arbitrary size elements
New file consisting of functions that allow us to generate elements
on the fly
__init__.py now includes create_element_size()
-
ed0df6b5
by James Ennis
at 2018-06-07T20:41:33Z
push.py: Add tests to test remote cache expiry
The tests include a new environment variable: BST_CACHE_QUOTA.
This variable is used in receive_main() in pushreceive.py.
Test names: test_artifact_expires, test_large_artifact_is_not_cached_remotely
test_recently_pulled_artifact_does_not_expire: marked as xfail until
we implement LRU expiry in remote share
-
b8a52cbd
by James Ennis
at 2018-06-07T20:41:33Z
pushreceive.py: Add comments to code and name variables more sensibly
-
b823a616
by James Ennis
at 2018-06-07T20:41:33Z
pushreceive.py: Ensure huge artifacts are not pushed
-
a231d41b
by James Ennis
at 2018-06-07T20:41:33Z
pushreceive.py: Abstract the buffer_
-
de194dad
by Tristan Van Berkom
at 2018-06-07T20:41:33Z
_artifactcache/pushreceive.py: Cleanup reported error when receiving oversized artifacts
This user facing string was redundantly declared in two places, only
the message when catching the error was ever printed.
-
8f2bf4e6
by Tristan Van Berkom
at 2018-06-08T19:48:11Z
autotools plugin: Dont regenerate existing configure scripts
This closes #256
-
af10c1ba
by Valentin David
at 2018-06-08T21:07:22Z
Interpret names as colon separated junction path in loader.
'a.bst:b.bst' gets interpreted as 'b.bst' from junction 'a.bst'.
Part of #359.
-
ccec163b
by Valentin David
at 2018-06-08T21:07:22Z
Reword uses of project in Workspaces.
Make it clear we expect the top-level project here as we use it to
resolve paths relative to project directory.
-
130bfbb8
by Valentin David
at 2018-06-08T21:07:22Z
Handle cross junction elements in workspaces.
Workspaces are now index by colon separated junction path. This
now allows to create workspaces for elements in external projects.
Workspaces are owned by context instead of root project. However
it is initialized once top-level project is registered as we need
to resolve paths relatively to this top-level project.
Part of #359.
-
acde3ba8
by Valentin David
at 2018-06-08T21:07:22Z
Allow tracking dependencies within sub-projects.
--track-cross-junctions now concerns crossing junctions rather than
forbidding elements in sub-project to be tracked.
Part of #359.
-
71b78794
by Tristan Van Berkom
at 2018-06-09T19:48:42Z
doc/source/index.rst: Use only one level depth ToC on main page
The main page has too much information on it otherwise, we want
a friendly, not overwhelming first page to our docs.
-
055b77e8
by Tristan Van Berkom
at 2018-06-09T21:14:10Z
doc: Added plugins as ToC elements instead of orphaned links
o Now the page titles are declared in plugins, allowing for
a more descriptive ToC
o Makefile and plugin.rsttemplate updated to not produce the title,
to no longer use `:orphan:` for plugin pages, and to ignore any
private modules in the plugin directories.
o Interestingly, now the docs will fail to build if you add
a new plugin and forget to add it to the documentation.
-
5f794829
by Tristan Van Berkom
at 2018-06-09T21:23:23Z
doc/source/main_core.rst: Use a hidden toctree to hide away some things
Sphinx generates some library style module index, we just include
it in a hidden toctree and avoid using it altogether.
-
96c219d0
by Tristan Van Berkom
at 2018-06-09T21:36:07Z
doc/source/core_framework.rst: Use a toctree instead of links
-
1e98ecb2
by Tristan Van Berkom
at 2018-06-09T22:00:24Z
doc/source/index.rst: Add resources directly at the bottom of the main page
This is nice to have on the main page, and is only a few links, dont
like having a whole toplevel ToC entry for this.
-
77dd1091
by Tristan Van Berkom
at 2018-06-09T22:08:49Z
doc: Split out cache keys and sandboxing writings into a sub section
-
53653d29
by Tristan Van Berkom
at 2018-06-09T22:09:50Z
doc/source/authoring.rst: Removed unneeded link anchor from here
-
52412db4
by Tristan Van Berkom
at 2018-06-09T22:18:28Z
.gitlab-ci.yml: Stop depending on specific version of sphinx
This branch fixes #312 by using a hidden toctree to include
the buildstream package and reducing the amount of allowed :orphan:
pages.
-
8e6f1a9b
by Tristan Van Berkom
at 2018-06-09T23:44:25Z
doc: Stop generating the modules index
We still have a few unused artifacts in the docs generation,
this is just one less.
-
99fb2d53
by Tristan Van Berkom
at 2018-06-09T23:45:41Z
doc/examples/flatpak-autotools: Use consistent project name
This was named autotools-flatpak, changed to flatpak-autotools.
-
710e1fd4
by Tristan Van Berkom
at 2018-06-09T23:48:09Z
doc/source/examples_flatpak_autotools.rst: Added some links to the example project on gitlab.
-
4af8112d
by Tristan Van Berkom
at 2018-06-10T00:11:07Z
doc/source/examples.rst: Use a flat ToC here
Here we're really listing examples, a ToC with depth is
not great here.
-
d0dc9e64
by Tristan Van Berkom
at 2018-06-10T00:21:47Z
doc/source/main_using.rst: Reversed ToC here
Seems that the "commands" is taking a lot of space such that
we can't see the other sections here easily, that is alright
if "commands" remains at the end.
-
ea775fa3
by Tristan Van Berkom
at 2018-06-10T01:12:37Z
doc: Removed some unused link targets
-
9f77cb66
by Tristan Maat
at 2018-06-11T18:16:33Z
Handle missing tags in git repositories correctly
Fixes issue #380
-
e112a88f
by Tristan Van Berkom
at 2018-06-12T21:38:25Z
doc/bst2html.py: Added bst2html.py
This baby runs bst and captures the output with colors enabled
and then generates some html we can include in documentation.
These can be generated in CI continuously and used in the documentation.
-
52f70a0d
by Tristan Van Berkom
at 2018-06-12T21:38:26Z
doc/Makefile: Run bst2html.py to generate .html files from .run files
If you need an example output of bst to put in the documentation,
just add a .run file to the doc/examples directory and it will result
in a similarly named .html file in doc/source/examples.
-
050cf2eb
by Tristan Van Berkom
at 2018-06-12T21:38:26Z
doc/sessions: Added run files describing scenarios to build
The Makefile uses these to run some scenarios which are
later included by the documentation directly.
-
c900d42e
by Tristan Van Berkom
at 2018-06-12T21:38:26Z
doc/source/examples_flatpak_autotools.rst: Using generated examples
Show the commands at work in this example.
-
4dfc8607
by Tristan Van Berkom
at 2018-06-12T21:38:26Z
doc/source/examples.rst: Restructuring individual examples into an examples subdirectory
-
19dddf82
by Tristan Van Berkom
at 2018-06-12T21:38:26Z
doc/source/sessions: Committing generated session files.
This is only to make it easier for people who just want to
build docs locally and not regenerate the session files.
The session snapshot html files are always generated in CI every time.
-
f3b19f2c
by Tristan Van Berkom
at 2018-06-12T21:38:26Z
HACKING.rst: Added guidelines for adding examples
And some instructions about generating `bst` output for documentation
-
d9da078d
by Tristan Van Berkom
at 2018-06-12T21:38:26Z
.gitlab-ci.yml: Speed up docs build by setting up BST_SOURCE_CACHE
Use the gitlab cache for caching sources needed for building projects
in order to collect sample output for documentation pages.
-
53bc7272
by Tristan Van Berkom
at 2018-06-13T02:41:15Z
doc: Don't allow setting a height on the generated session html
This was a bad idea and doesnt play well with mobile UIs, better
off to just include the whole thing even if it's long, and let
the backing page handle vertical scrolling.
-
9d7296eb
by Tristan Van Berkom
at 2018-06-13T04:24:27Z
doc: Overhaul of page names and titles
o Giving main pages simple word titles
This makes the main page:
* About
* Installing
* Using
* Reference
* Contributing
o Now named all rst files with their parent page name as a prefix.
o Also changed some titles to make overall consistent titles.
-
ba018efe
by Chandan Singh
at 2018-06-13T20:24:15Z
contrib/bst-here: Fix command/arg in usage instructions
As we can only accept arguments when a command is specified, make it
clear in the usage instructions.
-
fa73abe4
by Chandan Singh
at 2018-06-13T20:24:15Z
contrib/bst-here: Remove redundant create_volume_if_not_exists() method
This method doesn't really do anything as this is already the default
behavior of `docker volume create` so remove it and always call
`docker volume create` directly. This command will always print the name
of the volume on STDOUT which is not very interesting so silence that.
(If it errors out for some reason, that output will go to STDERR so the
user should still be able to see that.)
-
6da05577
by Tristan Van Berkom
at 2018-06-14T03:12:53Z
doc: Improve the new console output html generator
Before we were creating one description file for each output,
making it easier to declare a make rule for it - but the result
was that we would have to build things more and it takes a
long time.
Instead, now we have session files which describe a series of commands
to run in a session, and each command optionally produces an output file.
-
5ba5415e
by Tristan Van Berkom
at 2018-06-14T22:22:03Z
doc/Makefile: Fixed loop over session files
This list needs to not be quoted.
-
a01a5cc8
by Tristan Van Berkom
at 2018-06-16T17:27:49Z
doc/bst2html.py: Add support for `fake-output` when running commands.
When specifying a fake-output string, we don't really run the command
or assume it was a `bst` command, and we pretend that `fake-output`
was the output of the command.
Specifying an empty string explicitly enables the behavior too
for faking a command that has no stdout/stderr.
This also adds the "remove-files" hack allowing the session scripts
to remove files before executing commands (kind of unsure if we're
gonna keep this...)
-
b592a80b
by Tristan Van Berkom
at 2018-06-16T19:44:56Z
doc/bst2html.py, doc/Makefile: Added --force option
If --force is not specified, then we'll skip session files in
the case that all of the outputs exist.
Now setting BST_FORCE_SESSION_REBUILD when building the docs
will cause the session files to be rebuilt regardless of whether
they exist or not.
The .gitlab-ci.yml was also changed to use this and force rebuilds.
-
1b88e2c6
by Tristan Van Berkom
at 2018-06-16T20:14:04Z
doc: Adding part 1 of the getting started tutorial
o doc/Makefile: Added new directory to collect rst files from
o doc/examples/first-project: Added the "first-project" example
project.
o doc/source/sessions/first-project-*.html: Added the generated
snippets
o doc/source/using_tutorial.rst: Added the new main tutorial page
o doc/source/tutorial/first-project.rst: Added part 1 of the tutorial here
o tests/examples/first-project.py: Added test for the example project
This is largely based on an example by Javier Jardón, which was
submitted at https://gitlab.com/BuildStream/buildstream/merge_requests/323
Fixes #103
-
6fa3f922
by Tristan Van Berkom
at 2018-06-16T20:14:04Z
doc/Makefile: Stage stored sessions from session-stored
Separate the revisioned provisional session html files such
that the git tree does not become dirty as a result of a
documentation build process - which messes up the docs version
number and the version number printed in some command line output.
-
3f560378
by Tristan Van Berkom
at 2018-06-18T00:58:20Z
doc/source/tutorial/first-project.rst: Adding links
Linking out to the relevant invoking pages for the command line
reference, and adding a link anchor here for use by the next chapter.
-
73b93002
by Tristan Van Berkom
at 2018-06-18T01:37:22Z
doc: Adding part 2 of the getting started tutorial
o doc/examples/running-commands: New example project of a `manual` build element
o doc/sessions/running-commands.run: New session file to capture bst output
o doc/source/sessions-stored: Added new generated sessions
o doc/source/tutorial/running-commands.rst: New tutorial entry describing how
commands are run in the sandbox
o tests/examples/running-commands.py: Test case validating the tutorial's assertions
-
72fbaa1c
by Tristan Van Berkom
at 2018-06-18T19:01:14Z
doc/source/tutorial/running-commands.rst: Adding summary
And adding some link anchors needed by the incomming chapter.
-
b4105e8d
by Tristan Van Berkom
at 2018-06-18T19:17:52Z
doc: Adding part 3 of the getting started tutorial: autotools element
This part of the tutorial uses a lot of the work from Phil Dawson
and James Ennis, and uses their example submitted on merge request
499 as a basis to introduce the user to yaml composition and variable
resolution.
This is a part of issue #103
-
9b81f958
by Tristan Van Berkom
at 2018-06-18T19:18:19Z
doc/source/using_tutorial.rst: Use a numbered ToC for the tutorial
-
48b4cb5c
by Tristan Van Berkom
at 2018-06-19T00:19:09Z
doc/examples/autotools/project.conf: Correcting project name here
-
5b6441fa
by Tristan Van Berkom
at 2018-06-19T02:41:50Z
doc: Use consistent titles when referring to files in an example project
Use the following form across the board:
``elements/foo.bst``
~~~~~~~~~~~~~~~~~~~~
.. literalinclude:: ../path/to/foo.bst
:language: yaml
Always use an example project relative path, too.
-
bb223156
by Tristan Van Berkom
at 2018-06-19T02:47:46Z
doc/source/examples/flatpak-autotools.rst: Reordering of titles.
Place the titles of literally included `bst` files directly before
the includes, and moved all related text to start below the included
file for each section.
-
4016bec1
by Gökçen Nurlu
at 2018-06-19T04:41:24Z
Remove shebangs from python files
Fixes #424
-
4f168b9b
by Daniel Playle
at 2018-06-20T22:05:19Z
Restrict version of pylint
pylint >2 is not compatible with pytest_pylint in its current form. As
such, allowing any version of pylint for testing results in a failure.
This commit restricts down the allowable versions of pylint to those
that are both compatible with pytest_pylint, and also offer the feature
set that we require.
See https://gitlab.com/BuildStream/buildstream/issues/427 for further
details.
-
49fb3636
by Phil Dawson
at 2018-06-21T23:32:46Z
MANIFEST.in: Fix typo when including BuildStream.doap
Correct includsion of buildstream.doap which does not exist
to 'include BuildStream.doap'.
This commit resolves issue #430
-
411dd100
by Patrick Martin
at 2018-06-22T15:41:34Z
doc/source/index.rst: fix tiny, but impactful typo
Fixes #435
-
d9a433a7
by Javier Jardón
at 2018-06-22T17:03:44Z
BuildStream depends on host tools for Source plugins
-
b5d91794
by Javier Jardón
at 2018-06-22T17:03:44Z
Source plugin tar depends on host's lzip
Issue #353
-
7d97c6d3
by Javier Jardón
at 2018-06-22T17:03:44Z
Source plugin bzr depends on host's bzr
Issue #353
-
3b1e869b
by Javier Jardón
at 2018-06-22T17:03:44Z
Source plugin git depends on host's git
Issue #353
-
be92cc8d
by Javier Jardón
at 2018-06-22T17:03:44Z
Source plugin patch depends on host's patch
Issue #353
-
e90098e0
by Javier Jardón
at 2018-06-22T17:03:44Z
Source plugin deb depends on host's arpy python package
Issue #353
-
4f1d5a1c
by Tristan Van Berkom
at 2018-06-22T17:05:39Z
doc/source/core_plugins.rst, doc/source/install_main.rst: Fixing link anchor name
In core_plugins.rst, we are already using _plugins, _plugins_build_elements,
so lets call this one _plugins_sources to be consistent.
-
10d21ff0
by Valentin David
at 2018-06-23T01:17:40Z
Fix element check for BST_FORBID_BDEPENDS
-
6641bcd6
by Tristan Van Berkom
at 2018-06-25T07:04:58Z
doc/source/main_using.rst: Updating headline for this page.
The purpose of this page has changed with time, better to clarify
this in the headline of the page.
-
6d4cbe0c
by Tristan Van Berkom
at 2018-06-25T07:04:58Z
doc/source/format_declaring.rst: Improving linkage to other parts of the manual
Adding a couple of important links to relevant material.
-
4b499ba3
by Tristan Van Berkom
at 2018-06-25T07:04:58Z
doc/source/tutorial/autotools.rst: Consistent wording of "chapter"
We've been calling these tutorials "chapters", let's not start
also calling them "sections".
-
1d84bb80
by Tristan Van Berkom
at 2018-06-25T07:04:58Z
doc/source/tutorial/running-commands.rst: Added tip about using `--` in `bst shell`
-
a25d683e
by Tristan Van Berkom
at 2018-06-25T07:04:58Z
doc: Adding part 4 of the getting started tutorial: integration commands
This new section talks about how integration commands work
and shows them at work.
-
91d87e3c
by Tristan Van Berkom
at 2018-06-26T23:40:28Z
_scheduler/job.py: Added long comment
This explains the nature of a complicated asyncio callback,
which I've looked up on multiple occasions and is not available
in python online docs (only in the source can you follow it).
-
463698ec
by Francisco Redondo Marchena
at 2018-06-28T14:18:10Z
Add error message when running commands on directories
Issue #446
-
48848f4e
by James Ennis
at 2018-06-29T08:45:12Z
loader.py: Check whether the dir specified is also a <dir>.bst file
- Slight modification to the wording of existing error message.
- Closes #446
-
aaf52d03
by Tristan Maat
at 2018-06-29T15:56:20Z
cli.py: Make buildstream check element paths instead of click
This is to avoid inconsistencies when dealing with paths inside an
elements directory
-
a85aaee6
by Tiago Gomes
at 2018-07-02T14:45:04Z
Fix documentation typo
-
9067e269
by Tiago Gomes
at 2018-07-02T14:45:04Z
Provide better error message on missing commands
Before running a command in the sandbox, check its existence and fail
early if it does not.
This fixes issue #289.
-
c5fe9465
by Jürg Billeter
at 2018-07-08T12:33:46Z
_signals.py: Guard against use in non-main thread
-
3d1e23d6
by Jürg Billeter
at 2018-07-09T13:44:49Z
tests: Remove unneeded ArtifactShare.update_summary() method
The OSTree summary file is no longer used.
-
5f4b9377
by Jürg Billeter
at 2018-07-09T13:44:49Z
_artifactcache/artifactcache.py: Update remote init error message
initialize_remotes() no longer fetches remote refs.
-
9defbb62
by Jürg Billeter
at 2018-07-09T13:44:49Z
tests/frontend/push.py: Add missing skip annotation for non-Linux
-
bc5a40e3
by Phillip Smyth
at 2018-07-11T11:06:40Z
Move _list_dir_contents to __init__.py
-
ddeac63a
by Jonathan Maw
at 2018-07-16T12:19:14Z
tests: Fix filter tests not checking whether files should be missing.
They weren't actually catching it if you checked-out the entire depended
element, instead of just the specified split domains
-
4c6512d6
by Jonathan Maw
at 2018-07-16T16:12:08Z
Only redirect elements for workspace and track operations
It was redirecting for checkout operations
-
fa2eaba2
by Jürg Billeter
at 2018-07-17T05:56:40Z
tests: Use context manager for ArtifactShare
-
ba4581f8
by Jürg Billeter
at 2018-07-17T05:56:40Z
tests/testutils/artifactshare.py: Add support for statvfs mocking
-
8cd81636
by Jürg Billeter
at 2018-07-17T05:56:40Z
tests/frontend/push.py: Use ArtifactShare statvfs mocking
This makes it unnecessary to update the free space in the mock object in
the middle of tests.
-
9b63f6f2
by Jürg Billeter
at 2018-07-17T05:56:40Z
.gitlab-ci.yml: Update images to include protobuf and grpcio
-
1a2ee26e
by Jürg Billeter
at 2018-07-17T05:56:40Z
setup.py: Add grpcio dependency and support for code generation
This allows code generation with ./setup.py build_grpc
-
b585388e
by Jürg Billeter
at 2018-07-17T05:56:40Z
HACKING.rst: Add note about protocol buffers and code generation
-
383e0586
by Jürg Billeter
at 2018-07-17T05:56:40Z
Import Google proto dependencies for the Remote Execution API
This imports protos from https://github.com/googleapis/googleapis/ and
the modules generated with ./setup.py build_grpc.
-
73fe9af1
by Jürg Billeter
at 2018-07-17T05:56:40Z
Import protos for the Bazel Remote Execution API
This imports protos from https://github.com/bazelbuild/remote-apis/ and
the modules generated with ./setup.py build_grpc.
-
df9a4949
by Jürg Billeter
at 2018-07-17T05:56:40Z
remote_execution.proto: Add proposed symlink support
https://github.com/bazelbuild/remote-apis/pull/18/
-
f13bef56
by Jürg Billeter
at 2018-07-17T05:56:40Z
_artifactcache: Add CAS artifact cache
Content Addressable Storage specified in the Remote Execution API.
Fixes #387.
-
a3bdfc18
by Jürg Billeter
at 2018-07-17T05:56:40Z
_artifactcache/cascache.py: Add prune() method
-
687b9a8b
by Jürg Billeter
at 2018-07-17T05:56:40Z
_artifactcache/cascache.py: Add remove() method
-
bed6c800
by Jürg Billeter
at 2018-07-17T05:56:40Z
_artifactcache/cascache.py: Add list_artifacts() method
-
8a0fe273
by Jürg Billeter
at 2018-07-17T05:56:40Z
Add proto for BuildStream reference storage service
-
72284b59
by Jürg Billeter
at 2018-07-17T05:56:40Z
_artifactcache/cascache.py: Add remote cache support
-
ff8703c9
by Jürg Billeter
at 2018-07-17T05:56:40Z
_artifactcache: Add CAS artifact server
-
971606ae
by Jürg Billeter
at 2018-07-17T05:56:40Z
_artifactcache/casserver.py: Add cache cleanup based on pushreceive
-
4b4c5268
by Jürg Billeter
at 2018-07-17T05:56:40Z
_artifactcache/casserver.py: Add update_mtime parameter to resolve_ref()
-
9b879015
by Jürg Billeter
at 2018-07-17T05:56:40Z
_artifactcache/casserver.py: Update artifact ref mtime on access
This makes cache cleanup LRU.
-
8de8ef1f
by Jürg Billeter
at 2018-07-17T05:56:40Z
_platform: Use CAS artifact cache
-
a161c746
by Jürg Billeter
at 2018-07-17T05:56:40Z
tests/testutils/artifactshare.py: Use CAS artifact server
-
d0346e89
by Jürg Billeter
at 2018-07-17T05:56:40Z
tests/cachekey: Update expected cache keys after switch to CAS
-
05a1a25d
by Jürg Billeter
at 2018-07-17T05:56:40Z
tests: Test push/pull on all platforms
-
6fd3f523
by Jürg Billeter
at 2018-07-17T05:56:40Z
tests/frontend/push.py: Remove xfail mark from LRU cache test
The CAS server now supports LRU.
-
b87c696f
by Jürg Billeter
at 2018-07-17T05:56:40Z
tests/frontend/pull.py: Add pull test for missing blobs on the server
-
99846137
by Jürg Billeter
at 2018-07-17T05:56:40Z
tests/integration/workspace.py: Test incremental build on all platforms
-
e35098d3
by Jürg Billeter
at 2018-07-17T05:56:40Z
doc/source/artifacts.rst: Update documentation for CAS artifact server
-
5a7d49dc
by Jürg Billeter
at 2018-07-17T05:56:40Z
Remove tar artifact cache
No longer used.
-
1f8b4aa2
by Jürg Billeter
at 2018-07-17T05:56:40Z
Remove OSTree artifact cache
No longer used.
Fixes #134, #138, #148, #217, #268, #276, #443, #460.
-
d87df668
by Jürg Billeter
at 2018-07-17T05:56:40Z
NEWS: Add news entry for CAS-based artifact cache
-
7acc64e4
by Jürg Billeter
at 2018-07-17T05:56:40Z
element.py: Do not use ArtifactCache.can_diff()
The only existing artifact cache implementation always returns True.
-
f2484fe4
by Jürg Billeter
at 2018-07-17T05:56:40Z
_artifactcache: Remove unused method can_diff()
-
f770ab1c
by Jürg Billeter
at 2018-07-17T08:40:16Z
element.py: Include fail-on-overlap setting in cache key
Fixes #473.
-
7e9282c9
by Phillip Smyth
at 2018-07-17T12:53:55Z
buildstream/_frontend/cli.py: Added a `--deps` flag to `bst checkout`
buildstream/_stream.py: Added deps param to _prepare_sandbox function call
buildstream/element.py: Added deps param and logic to _prepare_sandbox function
-
2797d1fd
by Phillip Smyth
at 2018-07-17T12:53:55Z
tests/frontend/buildcheckout.py: Added tests for "Add a `--deps` flag to `bst checkout`"
-
70a83ef8
by William Salmon
at 2018-07-17T14:04:16Z
Adding a helpful link to the example
-
e4f8fb07
by devcurmudgeon
at 2018-07-17T15:07:05Z
Fix 'main install' to be explicit that it is for Linux distros only
-
87c103d8
by Jürg Billeter
at 2018-07-17T15:07:56Z
_frontend/cli.py: Fix help text for `bst checkout --deps`
-
4c09b686
by Jürg Billeter
at 2018-07-17T17:31:32Z
_artifactcache/cascache.py: Fix prune()
_reachable_refs_dir() failed to add directory digests to the set of
reachable objects.
-
adedd867
by Tristan Maat
at 2018-07-18T05:11:03Z
Bump required python version to 3.5
-
b8543f8a
by Tristan Maat
at 2018-07-18T05:11:03Z
_exceptions.py: Add `detail` to ArtifactErrors
-
fc79ad2c
by Tristan Maat
at 2018-07-18T05:11:03Z
utils.py: Allow `list_relative_paths` to list directories
-
4f9da15d
by Tristan Maat
at 2018-07-18T05:11:03Z
_scheduler/*queue.py: Move queues to a subdirectory
-
24925634
by Tristan Maat
at 2018-07-18T05:45:59Z
Make Jobs abstract and element-independent
-
33984448
by Tristan Maat
at 2018-07-18T05:45:59Z
Add cache_quota to user config
-
1ec5c7b1
by Tristan Maat
at 2018-07-18T05:45:59Z
Make elements keep track of their built artifact size
-
7229d2e5
by Tristan Maat
at 2018-07-18T05:45:59Z
Compute the artifact cache size after each build/pull
-
dc17de38
by Tristan Maat
at 2018-07-18T06:07:24Z
Clean the artifact cache when we hit the cache quota
When the cache quota is hit, we will remove any elements not required
for the current build, until our cache is only filled halfway.
-
6ff12e5e
by Tristan Maat
at 2018-07-18T06:07:24Z
tests/artifactcache/expiry.py: Add expiry tests
-
308d59be
by Tristan Maat
at 2018-07-18T06:07:24Z
NEWS: Add news about cache expiry
-
a950a985
by Tristan Van Berkom
at 2018-07-18T09:59:03Z
_context.py: Adding apis for message recording and task logging.
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()
-
d835c37f
by Tristan Van Berkom
at 2018-07-18T09:59:03Z
Refactor: Use new logging mechanism from Context
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.
-
26b9f6fa
by Tristan Van Berkom
at 2018-07-18T11:52:43Z
_stream.py: Clarifying ambiguous FIXME comment about required artifacts
-
3814905a
by Daniel Playle
at 2018-07-18T12:08:24Z
Reorder app.py imports
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.
-
48f66a3c
by Chandan Singh
at 2018-07-18T18:03:31Z
.gitlab-ci.yml: Use testsuite images for running tests
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
https://gitlab.com/BuildStream/buildstream-docker-images/issues/8.
-
1016dcb4
by Josh Smith
at 2018-07-19T12:52:21Z
scheduler.py: Correct some anomalies within the docstrings
-
709b9bca
by Francisco Redondo Marchena
at 2018-07-19T14:03:12Z
source-bundle: Enable --except option
Before this option was listed in help but was ignored when
creating the source-bundle.
Issue #468
-
96d07153
by Jordan Petridis
at 2018-07-19T23:54:39Z
Docs: Update the required build packages for fedora based systems.
`ruamel.yaml` seems to require `Python.h` header file to build.
`python3-devel` is what provides it for Fedora.
-
93a77c1d
by Javier Jardón
at 2018-07-19T23:58:28Z
Docs: Update the required build packages for the rest of the systems
Also remove the recomendation to install psutil as we need to build
other python modules anyway (like ruamel)
Completes 96d07153b7817cdaeda57dd163eed52b2b1b31e8
-
57e0d1c5
by William Salmon
at 2018-07-20T00:03:06Z
Added dependency to the Docs
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
-
1b6688eb
by Javier Jardón
at 2018-07-20T00:07:23Z
install_linux_distro.rst: document plugins installed by default
-
fc63b972
by Javier Jardón
at 2018-07-20T00:12:50Z
install_linux_distro.rst: Document plugins deps for the rest of the systems
-
790fb40b
by Tiago Gomes
at 2018-07-20T09:07:01Z
Update checkout man page for new --deps option
-
9c1f024b
by Tiago Gomes
at 2018-07-20T09:07:01Z
Add support for creating a tarball on bst checkout
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.
-
0ddbf0e0
by Tristan Van Berkom
at 2018-07-20T11:52:00Z
setup.py: Specify minimum required version of pytest-cov plugin
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).
-
6158ee5a
by Sam Thursfield
at 2018-07-20T13:17:14Z
Fix crash when --debug is passed
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.
-
f484ab4f
by Phillip Smyth
at 2018-07-20T14:29:44Z
Updating .bzr plugin to omit the .bzr dir
Fixes issue #455
-
b662f175
by Tristan Van Berkom
at 2018-07-20T14:29:44Z
git source plugin: Omit the .git directory completely.
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
-
80effb5c
by Tristan Van Berkom
at 2018-07-22T08:30:40Z
HACKING.rst: No longer requiring issue numbers in commit messages.
Instead, we are enabling the merge commit feature in gitlab and
hopefully reducing some of the friction in review this way.
-
c7124c3d
by Tristan Van Berkom
at 2018-07-22T09:46:05Z
HACKING.rst: Added convention for naming of branches in merge requests.
-
282b1092
by Tristan Van Berkom
at 2018-07-23T08:47:36Z
plugins/sources/git.py: Use --shared instead of --hardlinks
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
-
fe0df616
by Tristan Van Berkom
at 2018-07-23T09:20:44Z
Merge branch 'tristan/git-stage-with-shared-clone' into 'master'
plugins/sources/git.py: Use --shared instead of --hardlinks
Closes #488
See merge request BuildStream/buildstream!557
-
6559db4c
by Josh Smith
at 2018-07-23T09:22:39Z
element.py: Make Element._get_brief_display_key() available to Internal API
This change will allow for more detailed info messages throughout
the CASCache.
-
6b82e476
by Josh Smith
at 2018-07-23T09:22:39Z
cascache.py: Add push info detailing which remote is being pushed to
Work towards fixing issue #275
-
1d36df25
by Josh Smith
at 2018-07-23T09:22:39Z
cascache.py: Add pull info detailing which remote is being pulled from
Work towards fixing issue #275
-
364706f3
by Tristan Van Berkom
at 2018-07-23T09:57:02Z
Merge branch 'Qinusty/275' into 'master'
Indicate where artifacts are going to and coming from in the log
Closes #275
See merge request BuildStream/buildstream!553
-
e70237a5
by Phillip Smyth
at 2018-07-23T13:26:47Z
Adding caching build trees
buildstream/element.py: Adding build tree to cache
buildstream/_versions.py: Bumping BST_CORE_ARTIFACT_VERSION
-
335afb5b
by Tristan Van Berkom
at 2018-07-23T14:07:07Z
Merge branch 'caching_build_trees_limited' into 'master'
Adding caching build trees (limited)
See merge request BuildStream/buildstream!560
-
60290f31
by Javier Jardón
at 2018-07-23T15:29:37Z
doc/source/install_linux_distro.rst: buildstream doesn't depend on ostree or pygobject anymore
-
de162e43
by Javier Jardón
at 2018-07-24T11:58:16Z
Merge branch 'jjardon/ostree_repo' into 'master'
doc/source/install_linux_distro.rst: buildstream doesn't hard depend on ostree or pygobject anymore
Closes #492
See merge request BuildStream/buildstream!558
-
6106d657
by Josh Smith
at 2018-07-25T10:50:14Z
cascache.py: Remove misleading info message
This addresses issue #501.
-
4a637d63
by Jonathan Maw
at 2018-07-25T12:05:19Z
Merge branch 'Qinusty/501' into 'master'
Remove misleading info message
See merge request BuildStream/buildstream!567
-
a0ad985f
by Phil Dawson
at 2018-07-25T13:03:23Z
tests/frontend/show.py: Add test case for maximum recursion depth being exceeded
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
-
95b4eae4
by Phil Dawson
at 2018-07-25T13:03:23Z
app.py: Handle exception thrown when recursion limit is exceeded
Because the RecursionError exception was introduced in Python 3.5, until we
drop support for for Python 3.4, we must use RuntimeError.
-
889bf238
by Jim MacArthur
at 2018-07-25T13:43:21Z
Merge branch 'phil/203-BuildStream-crashes-when-dependency-tree-too-deep' into 'master'
Phil/203 BuildStream crashes when dependency tree too deep
See merge request BuildStream/buildstream!512
-
54fee6c8
by Phillip Smyth
at 2018-07-25T14:15:36Z
_stream.py: Added functionality for workspace open -f
tests/frontend/workspace.py: Added tests
-
f62b6cb7
by Jonathan Maw
at 2018-07-25T15:01:33Z
Merge branch 'bst_workspace_open_force_does_nothing' into 'master'
_stream.py: Added functionality for workspace open -f
See merge request BuildStream/buildstream!549
-
c049d021
by Ed Baunton
at 2018-07-25T19:43:51Z
Add remote source plugin
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
-
bd1196ef
by Ed Baunton
at 2018-07-26T13:22:52Z
Provide explicit reason for SourceError exception on path
When the user provides a path for the filename parameter, provide a reason
-
9a46c16f
by Ed Baunton
at 2018-07-26T14:06:52Z
Merge branch 'edbaunton/remote-source' into 'master'
Add remote source plugin
Closes #163
See merge request BuildStream/buildstream!541
-
7ceacfea
by William Salmon
at 2018-07-26T14:32:49Z
Documentation typos and fixes
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.
-
8c9fd9e4
by Javier Jardón
at 2018-07-26T15:32:16Z
Merge branch 'willsalmon/documentation_form_notes' into 'master'
Documentation typos and fixes
See merge request BuildStream/buildstream!569
-
9ebd7fe1
by Josh Smith
at 2018-07-27T04:41:26Z
_exceptions.py: Modify BstError API to allow optional retry
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.
-
ca224425
by Josh Smith
at 2018-07-27T04:41:26Z
_downloadablefilesource.py: Update network errors to be temporary
This follows the change in 67ecd97a05279a3b7570ad59f05bf0a5973ef04c.
-
0a7cfcdf
by Josh Smith
at 2018-07-27T04:41:26Z
tests/sources: deb, tar and zip all test for retry behaviour
This is following 5d6418a06a3a0262df5f6b9e6e1a36578515fd4a where
DownloadableFileSource was modified to raise 'temporary'
errors when relating to file downloading.
-
9b2bc78f
by Josh Smith
at 2018-07-27T04:41:26Z
cascache.py: Update cache push/pull errors to be temporary
Further work needs to be done for the current grpc exceptions which are reraised.
-
4986527f
by Josh Smith
at 2018-07-27T04:41:26Z
plugin.py: Extend Plugin.call() API
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()
-
a9a1048e
by Josh Smith
at 2018-07-27T04:41:26Z
git.py: Update git plugin to fail temporarily on clone failures
The git plugin will now make use of the fail_temporarily parameter
to Plugin.call(), allowing failures to trigger a retry.
-
aa071cb6
by Tristan Van Berkom
at 2018-07-27T06:13:53Z
Merge branch 'tristan/temporary-failures' into 'master'
Temorary failures
Closes #397
See merge request BuildStream/buildstream!574
-
4d86e7c5
by Tristan Van Berkom
at 2018-07-27T06:43:48Z
element.py, source.py, plugin.py: Adjusting API version since annotations.
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.
-
fb222ba1
by Josh Smith
at 2018-07-27T08:50:45Z
cascache.py: Raise ArtifactError on grpc error
This aims to fix issue #502.
-
48916b8a
by Tristan Maat
at 2018-07-27T10:22:41Z
Merge branch 'Qinusty/502' into 'master'
cascache.py: Raise ArtifactError on grpc error
Closes #502
See merge request BuildStream/buildstream!576
-
23e080b9
by James Ennis
at 2018-07-27T11:13:50Z
README.md: Minor corrections
-
196cfffc
by James Ennis
at 2018-07-27T11:13:50Z
README.md: Direct users towards the tutorial before existing projects:
This patch also removes displaying the projects that live within
the buildstream-examples repository, as we wish to deprecate this
repo and migrate the two examples.
- #438 and #439
In addition to this, both examples do not 'build' in their current
state.
-
2b93574e
by James Ennis
at 2018-07-27T11:13:50Z
main_install.rst: Add note to refer Windows and macOS users to docker
-
63e2320e
by Josh Smith
at 2018-07-27T11:16:55Z
.gitignore: Ignore .pytest_cache/
-
6ea97b17
by Javier Jardón
at 2018-07-27T11:54:20Z
Merge branch 'jennis/doc_improvements' into 'master'
Refer readers to our tutorial before referring them to existing bst projects
See merge request BuildStream/buildstream!578
-
8b46e874
by Jonathan Maw
at 2018-07-27T12:24:56Z
project: Parse and store mirrors
-
a2e9c62a
by Jonathan Maw
at 2018-07-27T12:24:56Z
Move _ALIAS_SEPARATOR into utils
The separator is useful in source files other than _project.py
-
7c993ac0
by Jonathan Maw
at 2018-07-27T12:24:56Z
source: Store the url aliases or use an override
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.
-
2889003c
by Jonathan Maw
at 2018-07-27T12:24:56Z
source: When fetching, try to fetch from mirrors first
**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
-
f81e8e7b
by Jonathan Maw
at 2018-07-27T12:24:56Z
Set default mirror via command-line or user config
In user config (buildstream.conf), it is set with the "default-mirror"
field.
On the command-line, it is set with "--default-mirror"
-
755ed898
by Jonathan Maw
at 2018-07-27T12:24:56Z
Add mirrored source tracking
-
19c01a56
by Jonathan Maw
at 2018-07-27T12:24:56Z
bzr.py: Improve mirror support
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.
-
84872141
by Jonathan Maw
at 2018-07-27T12:24:56Z
git.py: Improve mirror support
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.
-
bd51a0b2
by Jonathan Maw
at 2018-07-27T12:24:56Z
testutils: Add a helper to copy a testutils repo
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.
-
909120ab
by Jonathan Maw
at 2018-07-27T12:24:56Z
tests: Add mirrored fetching and tracking tests
-
1cbc2e17
by Jonathan Maw
at 2018-07-27T12:24:56Z
doc: Add documentation for source mirroring
-
202d9d26
by Jonathan Maw
at 2018-07-27T12:24:56Z
NEWS: Add item for source mirroring
-
2b23898d
by Jonathan Maw
at 2018-07-27T12:24:56Z
doc: Add tutorials for setting up git and tar mirrors
-
bd4d0355
by Jonathan Maw
at 2018-07-27T13:08:00Z
Merge branch '328-support-for-downloading-sources-from-mirrors' into 'master'
Resolve "Support for downloading sources from mirrors"
Closes #328
See merge request BuildStream/buildstream!404
-
cb4693b2
by Josh Smith
at 2018-07-27T14:00:26Z
Merge branch 'Qinusty/pytest_cache_gitignore'
-
8a96679a
by Josh Smith
at 2018-07-27T14:01:07Z
Merge branch 'master' of gitlab.com:BuildStream/buildstream
-
f5c8ff61
by Josh Smith
at 2018-07-27T14:10:45Z
_context.py: Cache size is now restricted to available disk space
This address issue #491.
When attempting to run buildstream with a configuration specifying
a cache quota larger than your available disk space, buildstream
will alert the user and exit.
Note:
This takes into consideration your current cache usage and
therefore restricts the overall size of your artifact cache folder.
-
32ddb544
by Qinusty
at 2018-07-27T14:57:30Z
Merge branch 'Qinusty/491' into 'master'
Cache quota is now restricted to available disk space
See merge request BuildStream/buildstream!563
-
cb8c99e5
by Tristan Maat
at 2018-07-29T07:52:06Z
buildelement.py: Only display one activity message (#507)
-
08b7562b
by Tristan Van Berkom
at 2018-07-29T10:23:43Z
Merge branch '507-some-log-lines-appear-to-be-duplicates' into 'master'
Resolve "Some log lines appear to be duplicates"
Closes #507
See merge request BuildStream/buildstream!573
-
3b7158b3
by Tristan Van Berkom
at 2018-07-29T10:25:02Z
source.py: Bring down since version for source mirroring APIs
Since we have now backported this to `bst-1.2`, the APIs have
been introduced in 1.2 and not 1.4
-
e84f8b24
by Tristan Van Berkom
at 2018-07-29T10:25:02Z
NEWS: Bring down since version of backported features to 1.1.5
These features will be released in 1.1.5 since they have been
backported, lets reflect this in the NEWS file in master.
Also this adds the backported `remote` plugin to the NEWS
-
df18d38c
by Tristan Van Berkom
at 2018-07-29T10:26:08Z
git.py: Handle concurrent download completions properly
Use os.rename() to rename the cloned temporary repository into
place in the source cache, and issue a STATUS message when discarding
a duplicate clone, in the case where the same repository is cloned
twice in parallel.
The problem with using shutil.move() is that it will create the source
directory in a subdirectory of the destination when the destination
exists, so it's behavior depends on whether the destination exists.
This shutil.move() behavior has so far hidden the race condition
where a duplicate repo is created in a subdirectory, as you need
to have three concurrent downloads of the same repo in order to
trigger the error.
This fixes issue #503
-
92714b03
by Tristan Van Berkom
at 2018-07-29T11:18:52Z
Merge branch 'tristan/fix-spurious-errors' into 'master'
git.py: Handle concurrent download completions properly
Closes #503
See merge request BuildStream/buildstream!583
-
8568d272
by Phil Dawson
at 2018-07-30T07:58:07Z
examples: add project demonstrating a junction element
This is part of the work towards #437.
-
efa24e7e
by Phil Dawson
at 2018-07-30T07:58:07Z
junctions.run: Add terminal session output for junctions walkthrough.
This is part of the work towards #437.
-
bf175bf7
by Phil Dawson
at 2018-07-30T07:58:07Z
junction-elements.rst: Add junctions walkthrough
This is part of the work towards #437.
-
e8931048
by James Ennis
at 2018-07-30T07:58:07Z
using_advanced_features.rst: Added file
-
b4f25190
by Phil Dawson
at 2018-07-30T07:58:07Z
tests/examples/junctions.py: Add tests for junctions walkthrough
This is part of the work towards issue #437.
-
aff76ae9
by Phil Dawson
at 2018-07-30T09:15:49Z
Merge branch 'phil/437-junction-tutorial' into 'master'
Phil/437 junction tutorial
See merge request BuildStream/buildstream!550
-
c313ad17
by Tom Pollard
at 2018-07-30T10:57:49Z
widget.py: Limit failure summary to currently failing elements
Change widget.py print_summary() to only print the failure
messages of elements in the Failure Summary that failed on the
current try.
-
4a3def5c
by Tristan Maat
at 2018-07-30T11:47:21Z
Merge branch 'tpollard/386' into 'master'
widget.py: Limit failure summary to currently failing elements
See merge request BuildStream/buildstream!561
-
34015a26
by Tristan Maat
at 2018-07-30T12:19:45Z
HACKING.rst: Add note about asking for dev permissions
-
ae47a72b
by Tristan Van Berkom
at 2018-07-30T13:11:34Z
Merge branch 'tlater/ask-for-dev-permissions' into 'master'
HACKING.rst: Add note about asking for dev permissions
See merge request BuildStream/buildstream!587
-
695c0cb0
by Phil Dawson
at 2018-07-30T16:07:36Z
junction-elements.rst: Add missing language specifier to literalinclude
A missing language specifier on a literal include directive results in yaml
being rendered as python code. This commit adds the :language: tag to that
directive.
-
fcb87b0a
by Phil Dawson
at 2018-07-30T16:53:37Z
Merge branch 'phil/fixup-junctions-tutorial' into 'master'
junction-elements.rst: Add missing language specifier to literalinclude
See merge request BuildStream/buildstream!591
-
3d308894
by Richard Maw
at 2018-07-31T16:31:36Z
element.py: Cache the result of checking whether an artifact is cached weakly
Normally we'd only need it in the case of scheduling a weakly cached build,
but to allow caching of failed builds we need to be able to distinguish
between cached successes and cached failures
for both strong and weak cache keys.
To allow other cache lookup codepaths to look up via the weak key
requires changes through the call stack to consult which key to use,
and cache invalidation of the saved state when it changes.
-
b3a68e28
by Richard Maw
at 2018-07-31T16:31:36Z
element.py: Add metadata to distinguish between successful and failed builds
This just puts the metadata in place,
we're adding code paths to add failed builds later.
-
f4573df3
by Richard Maw
at 2018-07-31T16:31:36Z
Convert call-sites of Element._cached() that assume success
When we later add cached failures it needs to not treat them as successes.
-
553df108
by Richard Maw
at 2018-07-31T16:31:36Z
_frontend/widget.py: Render cached failures differently to successes
-
d14d8ee2
by Richard Maw
at 2018-07-31T16:32:35Z
Cache failed builds
This creates an artifact when element assembly fails too,
and if it's the right kind of exception uses the now-included install directory
similarly to if it had returned successfully.
If there's a failure during install the artifact contains any installed files,
but may contain nothing at all.
-
d83122bb
by Richard Maw
at 2018-07-31T16:32:35Z
_scheduler/queues/buildqueue.py: Skip rebuilding cached failures
This flags up a failure and if run in an interactive prompt
permits the user to attempt a rebuild.
-
78944e9a
by Richard Maw
at 2018-07-31T16:32:35Z
tests: Add tests for cached behaviours
-
3fa79d8d
by Richard Maw
at 2018-07-31T16:32:35Z
_scheduler/queues: Add failed builds to "done" queue
This allows the scheduler to move jobs from the current queue to the next.
As a result of this change later queues than the build queue
mustn't skip a cached failure, so the logic is specialised to build queues only.
-
e8cd43dc
by Richard Maw
at 2018-07-31T16:32:58Z
NEWS: Describe caching of failures
Closes #76.
-
88cd61ea
by knownexus
at 2018-07-31T16:32:58Z
Added the missing `_get_build_log` function
-
4fc1f5d1
by Phillip Smyth
at 2018-07-31T17:17:34Z
Merge branch 'richardmaw/cache-fail' into 'master'
Store failed builds in the cache
Closes #76
See merge request BuildStream/buildstream!475
-
6cd3df09
by Phil Dawson
at 2018-08-01T08:05:45Z
doc/sessions: Add terminal sessions for use in workspaces tutorial
This is part of the the work towards issue #437
-
8c0522ad
by Phil Dawson
at 2018-08-01T08:05:45Z
Add project for workspaces tutorial
This is part of the work towards issue #437
-
dc60b713
by Phil Dawson
at 2018-08-01T08:05:45Z
tutorials: Add workspaces tutorial
This is part of the work towards issue #437
-
bf8c3dfb
by Phil Dawson
at 2018-08-01T08:05:45Z
testutils/patch.py: Add methods for applying and removing patches
-
b69783d4
by Phil Dawson
at 2018-08-01T08:05:45Z
tests/examples/developing.py: Add tests for workspaces walkthrough
-
480565c2
by Phil Dawson
at 2018-08-01T09:04:26Z
Merge branch 'phil/437-workspaces-tutorial' into 'master'
Phil/437 workspaces tutorial
Closes #437
See merge request BuildStream/buildstream!519
-
87edf67e
by Martin Blanchard
at 2018-08-01T11:07:05Z
complete.py: Ensure paths get completed from 'element-path'
Element paths should always be completed from the root element folder
defined by the element-path key in project.conf. Fix complete_path() to
always search into its given base_directory argument.
See issue BuildStream/buildstream#448
-
d10e4668
by Phillip Smyth
at 2018-08-01T12:05:40Z
Merge branch 'mablanch/448-autocompletion-broken-defaults' into 'master'
Fix autocompletion for elements in sub-folders
See merge request BuildStream/buildstream!592
-
6aedc57b
by Jim MacArthur
at 2018-08-01T12:07:32Z
Add BST_VIRTUAL_DIRECTORY flag for element plugins
-
1d3af84d
by Jim MacArthur
at 2018-08-01T12:07:32Z
utils.py: add getmtime() and magic_timestamp
magic_timestamp is moved into file scope so other classes
can use it.
-
4397e45a
by Jim MacArthur
at 2018-08-01T12:07:32Z
Sandbox.py: Rename __root to _root.
This is to allow to allow its use by subclasses.
Since access to get_directories is now blocked for some plugins,
and the subclasses of Sandbox do not have configuration defined
by YAML files, they need another way to get at the root directory.
-
9bf343cf
by Jim MacArthur
at 2018-08-01T12:07:32Z
Add the virtual directory class 'Directory' and one implementation.
buildstream/storage/Directory.py: New file.
buildstream/storage/_filebaseddirectory.py: New file.
buildstream/_exceptions.py: New VIRTUAL_FS exception source.
-
f124dfec
by Jim MacArthur
at 2018-08-01T12:07:32Z
storage: Add __init__.py
-
42bdce0b
by Jim MacArthur
at 2018-08-01T12:07:32Z
sandbox.py: Add function to get virtual directory.
-
fe1a3428
by Jim MacArthur
at 2018-08-01T12:07:33Z
_stream.py: Convert to virtual directories.
This removes _add_directory_to_tarfile since it is now implemented in
_filebaseddirectory.py.
-
849724ce
by Jim MacArthur
at 2018-08-01T12:07:33Z
element.py: Conversion to use virtual directories
-
270325b4
by Jim MacArthur
at 2018-08-01T12:07:33Z
plugins/elements/compose.py: Convert to virtual directories
-
a8c71ba4
by Jim MacArthur
at 2018-08-01T12:07:33Z
plugins/elements/import.py: Convert to virtual directories
-
4e6a9049
by Jim MacArthur
at 2018-08-01T12:07:33Z
sandbox: Remove instances of get_directory
sandbox/_mount.py, sandbox/_sandboxbwrap.py:
Remove instances of get_directory
-
e69f2b23
by Jim MacArthur
at 2018-08-01T12:07:33Z
plugins/elements/stack.py: Convert to virtual directories
-
6877b6fc
by Jim MacArthur
at 2018-08-01T12:07:33Z
scriptelement.py: Convert to virtual directories
-
8edf1f80
by Jim MacArthur
at 2018-08-01T12:07:33Z
compose.py: Remove unused getmtime()
-
02c6c846
by Jim MacArthur
at 2018-08-01T12:07:33Z
sandbox.py: Use _root in _has_command
This will need more attention when we bring in another virtual
directory backend, however, we've said it is acceptable for the
sandbox itself to access the underlying directory, and this is
the best fix in the meantime.
-
eabc3899
by Jim MacArthur
at 2018-08-01T13:16:04Z
Merge branch 'jmac/virtual_directories' into 'master'
Abstract directory class and filesystem-backed implementation
See merge request BuildStream/buildstream!445
-
60ddb193
by Josh Smith
at 2018-08-01T14:17:17Z
message.py: MessagesType.SKIPPED added
-
0756c615
by Josh Smith
at 2018-08-01T14:17:17Z
cascache.py: Display SKIPPED message for each remote skipped
-
62a250fe
by Qinusty
at 2018-08-01T15:01:25Z
Merge branch 'Qinusty/481' into 'master'
Add SKIPPED message type for actions being skipped
See merge request BuildStream/buildstream!562
-
00ddcbd7
by Martin Blanchard
at 2018-08-01T15:16:33Z
element.py: Raise an exception on unbuilt element checkout
Trying to checkout an element that has no cached artifacts should be and
handled failure. See BuildStream/buildstream#447.
-
4c739e2a
by Martin Blanchard
at 2018-08-01T15:16:33Z
_stream.py: Print details on checkout failure
-
4a4fed7a
by Qinusty
at 2018-08-01T16:14:50Z
Merge branch 'mablanch/447-stack-trace-checkout' into 'master'
Handle checkout failure for unbuilt elements
See merge request BuildStream/buildstream!590
-
547d20b2
by Phil Dawson
at 2018-08-01T16:31:08Z
install_linux_distro.rst: Add install instructons for Ubuntu
This commit is part of the work required to resolve issue #436
-
592c9061
by Javier Jardón
at 2018-08-01T17:28:05Z
Merge branch 'phil/436-add-ubuntu-install-intructions' into 'master'
Add Ubuntu install intructions
Closes #436
See merge request BuildStream/buildstream!525
-
4d2e8a14
by Josh Smith
at 2018-08-02T09:12:16Z
HACKING.rst: Add running a single test example
-
039d43e4
by Tom Pollard
at 2018-08-02T10:02:08Z
Merge branch 'Qinusty/docs_changes' into 'master'
HACKING.rst: Add running a single test example
See merge request BuildStream/buildstream!597
-
e788bda4
by Tiago Gomes
at 2018-08-02T11:24:43Z
plugin: bake API to get and validate a project path
A project path is a path relative to a project directory.
A project path can not also refer to the parent directory in the first
path component, or point to symbolic links, fifos, sockets and
block/character devices.
-
33292be4
by Tiago Gomes
at 2018-08-02T11:24:43Z
local plugin: validate project paths
The autotools example had to be copied over inside of the junction
example, as referring to a path outside of the project directory is
now disallowed.
-
00f170b8
by Tiago Gomes
at 2018-08-02T11:24:43Z
patch plugin: validate project paths
-
4f0f4171
by Tiago Gomes
at 2018-08-02T11:24:43Z
ostree plugin: validate project paths
-
c4c0bb1e
by Tiago Gomes
at 2018-08-02T11:24:43Z
project: validate project paths (element-path)
-
385aa592
by Tiago Gomes
at 2018-08-02T11:24:43Z
project: validate project paths (local plugin paths)
-
731328ad
by Tiago Gomes
at 2018-08-02T11:24:43Z
tests: add generate_file_types testing function
-
b7362a32
by Tiago Gomes
at 2018-08-02T11:24:43Z
tests: add additional tests to local plugin
-
7e3944dc
by Tiago Gomes
at 2018-08-02T11:24:43Z
tests: add additional tests to patch plugin
-
9f0c8fcf
by Tiago Gomes
at 2018-08-02T11:24:43Z
tests: test local plugins and element-path paths
-
8656a65d
by Tiago Gomes
at 2018-08-02T12:10:29Z
Merge branch 'tiagogomes/issue-195' into 'master'
Add validation for project paths
See merge request BuildStream/buildstream!593
-
170f33a1
by Valentin David
at 2018-08-02T14:17:01Z
Move tests.frontend.generate_junction to test.testutils
-
3bae4aeb
by Valentin David
at 2018-08-02T14:17:01Z
Pass targets to Loader.load() instead of its constructor.
This is required to be able to build a Loader before the list
of targets is known.
-
483b0223
by Valentin David
at 2018-08-02T14:17:01Z
Make Project owner of Loader.
-
19cd954b
by Valentin David
at 2018-08-02T14:17:01Z
Refactor plugin factory creation
-
171e803f
by Valentin David
at 2018-08-02T14:18:10Z
Add support for include '(@)' in project.conf and .bst files
Fixes #331.
-
4e1160a9
by Valentin David
at 2018-08-02T15:17:03Z
Merge branch 'valentindavid/331_include' into 'master'
Add support for include in project.conf
Closes #331
See merge request BuildStream/buildstream!471
-
3782c15f
by Ed Baunton
at 2018-08-04T08:54:58Z
element.py (docs): dashes not underscores for build and install root
Fix small error in docs in relation to `get_variable` documentation.
-
f918205a
by Tristan Van Berkom
at 2018-08-04T10:08:21Z
Merge branch 'edbaunton/doc-typo' into 'master'
element.py (docs): dashes not underscores for build and install root
See merge request BuildStream/buildstream!577
-
f69a0287
by Mathieu Bridon
at 2018-08-04T21:02:10Z
doc: Build the docs without Buildstream installed
-
bc63f278
by Tristan Van Berkom
at 2018-08-05T10:07:46Z
__main__.py: Adding private entry point so we can run BuildStream without installing
This is needed to build docs without installing BuildStream.
-
1618f405
by Tristan Van Berkom
at 2018-08-05T10:07:46Z
doc: Fix junctions user guide to refer to doc/sessions, not doc/sessions-stored.
-
9e573eeb
by Tristan Van Berkom
at 2018-08-05T10:07:46Z
doc: Some modifications to the bst2html program
o Added feature to allow running shell commands
o Removed unused codepaths to launch bst commands through the script,
this program is anyway only used to parse and run the session files.
o Fixed previous patch to run BuildStream uninstalled with
the subprocess module, as running it in the same interpretor
causes a bunch of problems.
-
19d2a072
by Tristan Van Berkom
at 2018-08-05T10:07:46Z
doc/sessions/developing.run: Fix the session to actually run `patch` as a shell command
Since we added support for shell commands in bst2html, this can now be fixed.
This is a part of issue #553
-
9b937a97
by Tristan Van Berkom
at 2018-08-05T10:07:46Z
HACKING.rst: It is not longer required to install BuildStream to build the docs.
-
63b33d07
by Tristan Van Berkom
at 2018-08-05T10:57:03Z
Merge branch 'tristan/build-docs' into 'master'
Build documentation without installing
See merge request BuildStream/buildstream!605
-
942a06f4
by Mathieu Bridon
at 2018-08-06T09:53:03Z
doc: Mention the Fedora packages
These aren't official yet, but they should work.
-
c04b8421
by Mathieu Bridon
at 2018-08-06T10:53:57Z
Merge branch 'bochecha/fedora-packages' into 'master'
doc: Mention the Fedora packages
See merge request BuildStream/buildstream!604
-
12c79366
by toscalix
at 2018-08-06T10:56:40Z
removed space in task template so checkboxes work as expected
-
bd2b3d8d
by Agustin Benito Bethencourt
at 2018-08-06T11:49:12Z
Merge branch 'toscalix' into 'master'
removed space in task template so checkboxes work as expected
See merge request BuildStream/buildstream!588
-
d1b640d0
by James Ennis
at 2018-08-06T13:10:12Z
install_linux_distro.rst: Fix broken links
-
be163e8d
by Jonathan Maw
at 2018-08-06T14:01:58Z
Merge branch 'jennis/fix_links_in_docs' into 'master'
Fix two links in the installing docs
See merge request BuildStream/buildstream!610
-
4d6dbabe
by Tiago Gomes
at 2018-08-06T15:03:25Z
PullQueue: fix resource used
Improve fetchers, builders and pushers documentation.
Closes #550.
-
a8073264
by Tiago Gomes
at 2018-08-06T16:55:03Z
Merge branch 'tiagogomes/issue-550' into 'master'
PullQueue: fix resource used
Closes #550
See merge request BuildStream/buildstream!611
-
3d26ff6e
by Ed Baunton
at 2018-08-07T05:04:50Z
remote.py: Add support for marking downloaded files executable
Add an optional flag to make files executable after having downloaded them.
Instead of leaving the permissioning of downloaded file in remote.py up
to the user's umask; expressly set permissions to 0644 or 0755 if
executable.
Bump format version to 13.
-
60a552a5
by Tristan Van Berkom
at 2018-08-07T06:13:53Z
Merge branch 'edbaunton/executable-remote-source' into 'master'
remote.py: Add support for marking downloaded files executable
See merge request BuildStream/buildstream!581
-
01ff0177
by Javier Jardón
at 2018-08-07T07:29:30Z
source/install_linux_distro.rst: Make clearer ArchLinux packages available
-
9b469fe6
by Tristan Van Berkom
at 2018-08-07T09:12:46Z
Merge branch 'jjardon/doc_arch_releases' into 'master'
source/install_linux_distro.rst: Make clearer ArchLinux packages available
See merge request BuildStream/buildstream!613
-
289de2ef
by Adam Jones
at 2018-08-07T09:24:58Z
Add systemd service file examples to artifacts documentation
change code style to ini
-
e42325b9
by Javier Jardón
at 2018-08-07T10:29:46Z
Merge branch 'adamjones/systemd-cas' into 'master'
Include systemd file examples for google-cas cache
Closes #419
See merge request BuildStream/buildstream!524
-
6d349610
by Javier Jardón
at 2018-08-07T10:53:23Z
source/install_linux_distro.rst: Fix formatting
-
493d19d2
by James Ennis
at 2018-08-07T11:08:36Z
install_linux_distro.rst: Change install instructions for python-arpy package on Arch
- python-arpy is unobtainable via pacman
- Also a minor change to how we display install instructions
from Fedora's dnf package manager
-
fc9869e2
by James Ennis
at 2018-08-07T11:56:21Z
Merge branch 'jennis/change_arch_install_instructions' into 'master'
Change install instructions for python-arpy package on Arch
See merge request BuildStream/buildstream!614
-
42aa3999
by William Salmon
at 2018-08-07T13:41:02Z
Add warning to git track if track and ref are not present
This is to address https://gitlab.com/BuildStream/buildstream/issues/471 that
documented unhelpfull behavour when tracking git sources.
-
2ceb5dec
by Will Salmon
at 2018-08-07T14:46:36Z
Merge branch 'willsalmon/trackWarning' into 'master'
Add warning to git track if track and ref are not present
Closes #471
See merge request BuildStream/buildstream!580
-
eee4b674
by Jürg Billeter
at 2018-08-07T15:36:35Z
Revert "Restrict version of pylint"
This reverts commit 4f168b9b6a02216e2fae24d758ae6b778e545869.
The latest version of pytest_pylint works fine with pylint 2, which
means there is no longer a reason to restrict the pylint version.
pylint 2 is required for Python 3.7.
-
ea27e389
by Jürg Billeter
at 2018-08-07T15:36:35Z
_artifactcache/cascache.py: Fix for PEP 479 / Python 3.7
Do not rely on `StopIteration` bubbling up.
https://www.python.org/dev/peps/pep-0479/
-
fa5a59f0
by Jürg Billeter
at 2018-08-07T16:48:21Z
Merge branch 'juerg/python3.7' into 'master'
Python 3.7 support
See merge request BuildStream/buildstream!615
-
ed653fbc
by Chandan Singh
at 2018-08-08T00:06:28Z
.gitlab-ci.yml: Remove unused script "install.sh"
-
65f382f1
by Chandan Singh
at 2018-08-08T10:52:32Z
Merge branch 'chandan/remove-dead-code' into 'master'
.gitlab-ci.yml: Remove unused script "install.sh"
See merge request BuildStream/buildstream!617
-
c68dcab8
by Tiago Gomes
at 2018-08-09T09:18:43Z
cascache: move tmp directory one level up
The CAS uses a temp directory while manipulating the cache, temporary
files can be added and removed while adding artifacts to the cache here.
Since calculation of the cache size happens in parallel to artifact
cache additions, this causes race conditions in the size calculation
job, as we end up calling `stat` on temporary files which are being
removed in parallel.
Handle this by moving the temporary directory out of the way, and avoid
considering the tmp directory when calculating the cache size
-
35ab0335
by Tiago Gomes
at 2018-08-09T10:16:24Z
Merge branch 'tiagogomes/issue-520' into 'master'
Fix race condition when calculating disk usage
See merge request BuildStream/buildstream!600
-
8aa33e23
by Valentin David
at 2018-08-09T12:49:17Z
Keep original flags for create in SafeHardlinks.
When open(2) is used with flags O_CREAT|O_RDWR, the file descriptor
must be readable. Unfortunately O_RDWR was not passed which made
read fail with EBADF and mmap to signal SIGBUS.
This issue happened with man-db for example.
Fixes #143.
-
ef7810f3
by Valentin David
at 2018-08-09T14:06:50Z
Merge branch 'valentindavid/fuse-create-flags' into 'master'
Keep original flags for create in SafeHardlinks.
Closes #143
See merge request BuildStream/buildstream!624
-
2d061173
by Javier Jardón
at 2018-08-09T16:31:15Z
buildstream/_project.py:
Multiprocessing with n_jobs given by multiprocessing.cpu_count() is not optimal for
systems where not all CPU can be used (in particular, Docker, CI etc).
As suggested in the multiprocessing docs
(http://docs.python.org/3/library/multiprocessing.html#multiprocessing.cpu_count)
using len(os.sched_getaffinity(0)) might be better.
-
4e1488ee
by Javier Jardón
at 2018-08-09T16:31:15Z
buildstream/_project.py: Restrict max-jobs
even if the machine have mores cores available
Patch taken from YBD: https://gitlab.com/baserock/ybd/blob/master/ybd/app.py#L227
-
de955834
by Javier Jardón
at 2018-08-09T17:22:24Z
Merge branch 'jjardon/max-jobs' into 'master'
buildstream/_project.py: Restrict max-jobs
See merge request BuildStream/buildstream!620
-
97595585
by Jim MacArthur
at 2018-08-09T17:35:19Z
setup.py: Pin ruamel.yaml version to <= 0.15
-
a602365c
by Tristan Van Berkom
at 2018-08-09T20:03:52Z
Merge branch 'jmac/pin-ruamel-version' into 'master'
Pin ruamel.yaml version to <= 0.15
See merge request BuildStream/buildstream!630
-
db0478ab
by Phillip Smyth
at 2018-08-10T10:17:47Z
Implementing relative workspaces
This fixes #191
A note has been added to NEWS explaining backwards
compatibility issues
-
04cee9a9
by Phillip Smyth
at 2018-08-10T11:12:31Z
Merge branch 'relative_workspaces' into 'master'
Patch for issue #191 support relative workspaces
Closes #191
See merge request BuildStream/buildstream!504
-
5dcecbad
by Valentin David
at 2018-08-10T12:18:55Z
Set environment in bwrap command line instead of its environment
Fixes #498
-
2e8db54e
by Valentin David
at 2018-08-10T12:53:19Z
Merge branch 'valentindavid/498_bwrap_environment' into 'master'
Set environment in bwrap command line instead of its environment
Closes #498
See merge request BuildStream/buildstream!565
-
95920f48
by Chandan Singh
at 2018-08-11T15:46:05Z
Move development reqirements to dev-requirements.txt
In some cases, such as when working inside a virtual environment, it can
be desirable to install all dependencies for running tests using `pip`.
This is currently not possible since setuptools does not support
installing these dependencies in a virtual environment (by design).
(See https://stackoverflow.com/a/21003259.)
To circumvent this issue, move such requirements to
`dev-requirements.txt` file that can be used easily with
`pip install -r`. This also enables tests to be run directly using
`pytest`, which can be more convenient than `-addopts` approach when one
needs to add multiple options.
This will also be useful in creating better testuite images, and fix
some of the issues noticed in
https://gitlab.com/BuildStream/buildstream-docker-images/merge_requests/56.
-
a9f63c5e
by Javier Jardón
at 2018-08-11T16:53:39Z
Merge branch 'chandan/dev-requirements' into 'master'
Move development reqirements to dev-requirements.txt
See merge request BuildStream/buildstream!637
-
48c7c0a5
by Chandan Singh
at 2018-08-11T23:41:05Z
Fix typo in dev-requirements.txt
-
88115648
by Chandan Singh
at 2018-08-12T00:38:36Z
Merge branch 'chandan/fix-dev-reqs-typo' into 'master'
Fix typo in dev-requirements.txt
See merge request BuildStream/buildstream!641
-
0b8beb42
by Phil Dawson
at 2018-08-12T00:40:57Z
.gitlab-ci-yml: Add ubuntu 18.04 test
-
499df6a5
by Javier Jardón
at 2018-08-12T01:37:12Z
Merge branch 'phil/add-ubuntu-ci-job' into 'master'
.gitlab-ci-yml: Add ubuntu 18.04 test
See merge request BuildStream/buildstream!523
-
60c2873b
by Javier Jardón
at 2018-08-12T01:38:29Z
.gitlab-ci.yml: Run tests in fedora28 image
-
2f27d428
by Javier Jardón
at 2018-08-12T01:38:29Z
.gitlab-ci.yml: Use the same version of the docker image for all jobs
-
1819a288
by Javier Jardón
at 2018-08-12T03:37:04Z
dev-requirements.txt: Remove obsolete comments
This also fixes an error with pylint in setup.py:
setup.py:226:19: R1718: Consider using a set comprehension (consider-using-set-comprehension)
-
48c715e3
by Javier Jardón
at 2018-08-12T04:42:45Z
Merge branch 'jjardon/ci_fedora28' into 'master'
Add job to run tests in fedora 28
See merge request BuildStream/buildstream!643
-
ccf6e479
by Valentin David
at 2018-08-12T05:54:36Z
buildstream/plugins/sources/local.py: Make staging deterministic.
Instead of copying metadata on files staged by local, we manually set
mode to 0755 or 0644 depending on whether user execution was enabled
on source file.
This makes file modes deterministic independently on the way source
was distributed.
Non-deterministic mode copying all metadata can still be enabled by
disable 'deterministic' Boolean configuration on the plugin.
Fixes #527.
-
322cab58
by Valentin David
at 2018-08-12T05:54:36Z
Use deterministic umask when staging sources.
This fix is applied to plugins bzr, git, patch.
Fixes #543 #544 #555.
-
d08699bd
by Valentin David
at 2018-08-12T05:54:36Z
buildstream/plugins/sources/zip.py: Fix non-determism in staging.
Staging could end-up with file with different rights depending on the
umask. The extracted files need to get their access rights fixed.
-
70fb7f17
by Valentin David
at 2018-08-12T05:54:36Z
Add some integration tests for source plugin determinism.
-
67df3904
by Valentin David
at 2018-08-12T05:54:36Z
Bump BST_CORE_ARTIFACT_VERSION for deterministic source plugins
-
c1fdebb3
by Tristan Van Berkom
at 2018-08-12T06:59:46Z
Merge branch 'valentindavid/deterministic-source' into 'master'
Deterministic staging
Closes #543, #544, #555, and #527
See merge request BuildStream/buildstream!616
-
3e5aa8ff
by Chandan Singh
at 2018-08-12T10:57:15Z
doc: Fix install instructions for Fedora
`python3-arpy` package is not available on Fedora so it has to be
installed using `pip`. Update instructions accordingly.
For reference, here is a pipeline that failed when trying to install
`arpy` using current instructions:
https://gitlab.com/BuildStream/buildstream-docker-images/-/jobs/88553245.
-
7a13c834
by Javier Jardón
at 2018-08-12T20:11:12Z
Merge branch 'chandan/update-fedora-install-docs' into 'master'
doc: Fix install instructions for Fedora
See merge request BuildStream/buildstream!640
-
c2cc62e7
by Chandan Singh
at 2018-08-13T00:17:21Z
remote source: Add cachekey test
Add cachekey tests for the recently added `remote` source plugin to
ensure that future changes do not break API compatibility.
-
a791e09c
by Tristan Van Berkom
at 2018-08-13T07:43:52Z
Merge branch 'chandan/remote-source-cachekey-test' into 'master'
remote source: Add cachekey test
See merge request BuildStream/buildstream!636
-
353a6cc2
by Valentin David
at 2018-08-13T09:29:40Z
Fix tracking of junctions used in project.conf.
Stream._load() now returns early without resolving build pipeline when
only tracking. Resolving track pipelines does not require to fully
load project configurations when when elements to track are only
junctions.
However build pipelines require to fully load project
configurations. This might not be possible in the case a project
configuration includes a file from a junction that yet needs to be
tracked.
Fixes #565.
-
5a667107
by Tristan Van Berkom
at 2018-08-13T10:58:12Z
Merge branch 'valentindavid/fix_included_junction_track' into 'master'
Fix tracking of junctions used in project.conf
Closes #565
See merge request BuildStream/buildstream!619
-
6e759d8a
by Valentin David
at 2018-08-13T12:39:23Z
Set version of ruaml.yaml to strictly less than 0.15.52.
This allows to use version 0.15.51 rather than 0.15.0 which is
required for Python 3.
Fixes #571.
-
56f2b2e4
by Valentin David
at 2018-08-13T13:36:45Z
Merge branch 'valentindavid/ruamel-version' into 'master'
Set version of ruaml.yaml to at least 0.15.41 but strictly less than 0.15.52.
Closes #571
See merge request BuildStream/buildstream!646
-
4f6881d6
by Jürg Billeter
at 2018-08-14T08:14:32Z
NEWS: Move recent entries to a new 1.3.1 section
Caching failed builds and relative workspaces were not part of the 1.1.5
developer snapshot.
-
0c8d0b0b
by Jonathan Maw
at 2018-08-14T08:54:31Z
loader: Add 'build-depends' and 'runtime-depends' fields to elements
-
95798475
by Jonathan Maw
at 2018-08-14T08:54:31Z
tests: Add tests for loading builddeps and runtime deps
-
476fcfa6
by Jonathan Maw
at 2018-08-14T08:54:31Z
versions: Bump format version to 14
Format version raised because of a change to the core element format.
-
c51bbff3
by Jonathan Maw
at 2018-08-14T08:54:31Z
docs: Add documentation of build-depends and runtime-depends fields
-
45117239
by Jonathan Maw
at 2018-08-14T08:58:03Z
Add NEWS
-
9d074d7f
by Jonathan Maw
at 2018-08-14T11:52:59Z
Merge branch '463-make-dependency-type-default-to-build-2' into 'master'
Resolve "Make dependency type default to build"
Closes #463
See merge request BuildStream/buildstream!633
-
69c5ccde
by Valentin David
at 2018-08-14T13:31:03Z
buildstream/plugins/sources/git.py: Fix clone side effect in getting fetchers
We now delay refreshing submodules until we have a clone, that is after
we have fetched the main fetcher.
Fixes #537
-
820af29d
by Valentin David
at 2018-08-14T13:31:03Z
tests/frontend/mirror.py: Re-enable a test for git
-
ca349fb4
by Jonathan Maw
at 2018-08-14T13:31:03Z
tests: Test that fetching passes when upstream is absent
-
cb468469
by Jonathan Maw
at 2018-08-14T13:31:03Z
tests: Add a test of the git source with submodules
-
dab5bb14
by Valentin David
at 2018-08-14T13:31:03Z
Test git mirroring fallback on submodules when main repo is not mirrored.
-
1a3c4814
by Valentin David
at 2018-08-14T13:31:03Z
Test we can discovered submodules on fallback mirrored git repositories
-
c52f6f9a
by Tristan Van Berkom
at 2018-08-15T09:28:35Z
Merge branch 'valentindavid/fallback_mirror_git' into 'master'
Delay refreshing git submodule until we have a clone
Closes #537
See merge request BuildStream/buildstream!656
-
e6457725
by Josh Smith
at 2018-08-15T10:17:29Z
examples: Switch ftp.gnu.org to mirror
This should avoid current issues accessing the necessary sources which
are blocking CI currently.
-
9f675c64
by Qinusty
at 2018-08-15T11:15:08Z
Merge branch 'Qinusty/gnu-mirror' into 'master'
Fix CI - ftp.gnu.org unreachable
See merge request BuildStream/buildstream!665
-
f3d58233
by Josh Smith
at 2018-08-15T11:15:58Z
_project.py: Add fatal-warnings configuration item
This allows for users to configure fatal-warnings to be either a list of
warnings.
This commit deprecates the use of fail-on-overlap within project.conf,
this will now use the fatal-warnings configuration item.
element.py: Cache key calculation now takes into account all of the
fatal-warnings
tests: This modifys the tests/frontend/overlaps.py tests to support the
new fatal-warnings configuration. Backwards compatibility is also
tested for `fail-on-overlap`
_versions.py: BST_FORMAT_VERSION bumped to 15 for fatal-warnings
BST_CORE_ARTIFACT_VERSION bumpted to 5 for fatal-warnings
Fixes: #526
-
4669309e
by Josh Smith
at 2018-08-15T11:15:58Z
git.py: Add configurable warning for inconsistent-submodule
This follows the implementation of configurable warnings.
-
c9dd51f2
by Josh Smith
at 2018-08-15T11:15:58Z
docs: Add documentation for Configurable Warnings
This includes detailing the use of `fatal-warnings` within project.conf
-
03527d5a
by Josh Smith
at 2018-08-15T11:15:58Z
tests: Add tests for configurable warnings
This adds multiple tests for custom plugin warnings and core warnings,
providing checks for both cases which should cause warnings and errors
when configured as fatal.
Also adds tests for cache key calculations.
-
76f34a63
by Tristan Van Berkom
at 2018-08-15T12:16:04Z
Merge branch 'Qinusty/526-fail-on-warnings' into 'master'
Configurable Warnings
Closes #526
See merge request BuildStream/buildstream!627
-
8b84a51a
by Jürg Billeter
at 2018-08-15T13:02:32Z
_artifactcache/casserver.py: Fix resource_name format for blobs
Continue to accept requests from non-conforming BuildStream clients for
the time being to ease migration.
-
1202ef8a
by Jürg Billeter
at 2018-08-15T13:02:32Z
_artifactcache/cascache.py: Fix resource_name format for blobs
This requires an updated server.
Fixes #572.
-
6a9d737e
by Jürg Billeter
at 2018-08-15T13:02:32Z
_artifactcache/casserver.py: Improve ByteStream error handling
Replace assertions with gRPC error responses.
-
00762442
by Jürg Billeter
at 2018-08-15T14:13:08Z
Merge branch 'juerg/cas' into 'master'
CAS: Fix resource_name format for blobs
Closes #572
See merge request BuildStream/buildstream!660
-
88ccff6e
by Jim MacArthur
at 2018-08-15T14:33:05Z
Convert uses of external_directory to get_underlying_directory()
-
b84218a4
by Jim MacArthur
at 2018-08-15T14:33:05Z
_filebaseddirectory/directory.py: Move VirtualDirectoryError to Directory
-
3341948a
by Jim MacArthur
at 2018-08-15T14:33:05Z
Move KeyStrength enum out to element_enums.py
-
70f35b6c
by Jim MacArthur
at 2018-08-15T14:33:05Z
Initial implementation of _casbaseddirectory.py
-
ef8525c2
by Jim MacArthur
at 2018-08-15T14:33:05Z
Directory API: add mark_changed
-
00632108
by Jim MacArthur
at 2018-08-15T14:33:05Z
filebaseddirectory: Update index after descend
-
0213f68d
by Jim MacArthur
at 2018-08-15T14:33:05Z
Sandbox: Return a CasBasedDirectory when an environment variable is set
-
136deb2e
by Jim MacArthur
at 2018-08-15T14:33:05Z
Add basic storage test 'storage-test.py'
-
12920046
by Jim MacArthur
at 2018-08-15T17:03:26Z
Merge branch 'jmac/cas_virtual_directory' into 'master'
CAS-backed virtual directory implementation
See merge request BuildStream/buildstream!481
-
9d2442b2
by Chandan Singh
at 2018-08-15T17:29:07Z
Allow source plugins to access previous sources
Source plugin implementations can now specify that they need access to
previously staged sources by specifying
`BST_REQUIRES_PREVIOUS_SOURCES_TRACK` and/or
`BST_REQUIRES_PREVIOUS_SOURCES_FETCH`, corresponding to access at `track`
and `fetch` times respectively.
Fixes #381.
Replaces !505. For relevant discussion, see this discussion:
https://gitlab.com/BuildStream/buildstream/merge_requests/505#note_83780747
-
a7a82650
by Chandan Singh
at 2018-08-15T18:23:04Z
Add pip source plugin
`pip` source plugin can stage python packages that are either specified
directly in the element definition or picked up from `requirements.txt`
from previous sources. In order to support the latter use-case
(which is also the primary motivation for this plugin), this plugin
requires access to previous sources and hence is an example of a
Source Transform source.
Also, bump `BST_FORMAT_VERSION` as this patch adds a new core plugin.
-
4a2dd6af
by Chandan Singh
at 2018-08-15T18:58:58Z
Add NEWS entry for Source Transform and pip source
-
d4706096
by Chandan Singh
at 2018-08-15T20:21:01Z
Merge branch 'chandan/sourcetransform' into 'master'
Allow source plugins to access previous sources
Closes #381
See merge request BuildStream/buildstream!568
-
c0431f15
by Valentin David
at 2018-08-16T07:43:07Z
Fix ostree repository mirroring
Ostree mirrors were not sharing the same local repository, so it was
impossible the request refs from the right local repository when data
was fetched from a mirror rather than upstream.
Instead of having several repository with one remote each, we now
have one repository with several remotes.
This fixes #538.
-
04f83679
by Tristan Van Berkom
at 2018-08-16T08:54:27Z
Merge branch 'valentindavid/fallback_mirror_ostree' into 'master'
Fix ostree repository mirroring
Closes #538
See merge request BuildStream/buildstream!658
-
177c4264
by William Salmon
at 2018-08-16T09:52:38Z
Trying to mitigate a mtime granularity braking the cache tests
This patch mitigates the granularity of the mtimes used on the default
gitlab runners, Allowing the test suite to pass on these runners.
-
01c4ac57
by Tom Pollard
at 2018-08-16T11:01:45Z
Merge branch 'willsalmon/CacheExpiryTest' into 'master'
Trying to mitigate a file system issue
See merge request BuildStream/buildstream!595
-
0066d701
by Tiago Gomes
at 2018-08-16T12:33:01Z
Use http instead of https for the gnu ftp mirror
https seems broken on the Debian image:
START autotools/hello/42930621-fetch.499.log
START Fetching https://ftpmirror.gnu.org/gnu/automake/automake-1.16.tar.gz
FAILURE Fetching https://ftpmirror.gnu.org/gnu/automake/automake-1.16.tar.gz
FAILURE tar source at hello.bst [line 16 column 2]: Error mirroring https://ftpmirror.gnu.org/gnu/automake/automake-1.16.tar.gz: <urlopen error [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:720)>
-
898aa8a0
by Tiago Gomes
at 2018-08-16T13:43:06Z
Merge branch 'tiagogomes/disable-https-gnu-repo' into 'master'
Use http instead of https for the gnu ftp mirror
See merge request BuildStream/buildstream!676
-
b62c361c
by Tiago Gomes
at 2018-08-16T13:54:54Z
cascache: use errno module
os.errno does no longer work with Python 3.7
Closes #577.
-
1e3e2a93
by Tiago Gomes
at 2018-08-16T15:00:12Z
Merge branch 'tiagogomes/issue-577' into 'master'
cascache: use errno module
Closes #577
See merge request BuildStream/buildstream!674
-
10f27f3f
by Tristan Van Berkom
at 2018-08-17T06:20:40Z
_frontend/app.py: Notify session completions
Use the optionally implemented desktop notification method
to notify when a session completes.
Previously, this used to only notify when an interactive prompt
appears.
This is an attempt to fix #385
-
c102b92f
by Tristan Van Berkom
at 2018-08-17T08:52:07Z
Merge branch 'tristan/notifications' into 'master'
_frontend/app.py: Notify session completions
Closes #385
See merge request BuildStream/buildstream!672
-
9b6fac5a
by William Salmon
at 2018-08-17T09:48:01Z
Add Error to git and ostree sources configure
Raise a error at configure time if the track and ref properties are
not present in the sources.
This is to address https://gitlab.com/BuildStream/buildstream/issues/471
that documented unhelpful behaviour when tracking git sources. However
the issue was also identified in ostree.
-
d5ed4f45
by William Salmon
at 2018-08-17T09:49:23Z
Improve error message for build if there are refs missing
-
c43af4eb
by Will Salmon
at 2018-08-17T10:51:38Z
Merge branch 'willsalmon/APIFix' into 'master'
Updating the no track or ref fix to match the buildstream style
See merge request BuildStream/buildstream!628
-
7263ea8c
by Josh Smith
at 2018-08-17T13:19:23Z
job.py: Prevent terminated jobs retrying
Fixes #531: Jobs were retrying when terminated, this lead to the process
being spawned again and starting up fresh.
-
30f696f2
by Qinusty
at 2018-08-17T14:29:45Z
Merge branch 'Qinusty/531-fetch-retries-on-terminate' into 'master'
Prevent jobs retrying on terminate
Closes #531
See merge request BuildStream/buildstream!662
-
c15cb951
by Tristan Van Berkom
at 2018-08-20T10:19:03Z
setup.cfg: Add tests/integration/project to norecursedirs
This is causing pytest to try to import the recently added app1.py
from the pip related tests. This fails because it's not meant to be
imported outside of the sandbox environment.
-
372abed5
by Tristan Van Berkom
at 2018-08-20T11:47:53Z
Merge branch 'tristan/exclude-project-py-from-tests' into 'master'
setup.cfg: Add tests/integration/project to norecursedirs
See merge request BuildStream/buildstream!682
-
1f88a1e9
by Jonathan Maw
at 2018-08-20T12:36:02Z
Use ArtifactCache's get_cache_size when calculating the quota
It would have been more convenient to store the quota size in the
ArtifactCache, except that the scheduler needs the quota size and
doesn't have access to the ArtifactCache.
-
d9507a9e
by Jonathan Maw
at 2018-08-20T12:36:02Z
Fix get_cache_size to store it in the ArtifactCache, not the context
-
a9b81dc4
by Jonathan Maw
at 2018-08-20T12:36:02Z
artifactcache: Read and write cache size to disk
-
a67906e6
by Jonathan Maw
at 2018-08-20T13:06:51Z
Add tests that cache size works
-
92e34ccd
by Jonathan Maw
at 2018-08-20T16:27:18Z
Merge branch 'jonathan/cache-cache-size' into 'master'
Jonathan/cache cache size
See merge request BuildStream/buildstream!679
-
f1a619b5
by Jonathan Maw
at 2018-08-20T16:34:03Z
CASCache: Fix cell-var-from-loop linting error
-
ba74a128
by Jonathan Maw
at 2018-08-20T17:53:33Z
Merge branch 'jonathan/cascache-cell-var-from-loop' into 'master'
Jonathan/cascache cell var from loop
See merge request BuildStream/buildstream!686
-
18acd3ea
by Valentin David
at 2018-08-21T08:44:34Z
Fix broken indentation after tracking.
Issue was introduced by 171e803f (include directive) and the fix was
found courtesy of @Qinusty. This fixes also the include
feature. Because elements are to be serialized, the included fragments
need to use copy_tree when loaded.
Related to #470.
-
6bd688cf
by Valentin David
at 2018-08-21T08:44:34Z
buildstream/_includes.py: Fix caching of included fragments.
-
4cab18e3
by Qinusty
at 2018-08-21T09:38:39Z
Merge branch 'valentindavid/fix-broken-indentation-after-track' into 'master'
Fix broken indentation after track
See merge request BuildStream/buildstream!622
-
f3fbdac0
by Jonathan Maw
at 2018-08-21T11:33:34Z
Pipeline: Skip except_elements logic if no elements to except
-
3a4c147a
by Jonathan Maw
at 2018-08-21T12:43:41Z
Merge branch 'jonathan/faster-except-elements' into 'master'
Pipeline: Skip except_elements logic if no elements to except
See merge request BuildStream/buildstream!688
-
d1bd8c0b
by Chandan Singh
at 2018-08-21T12:46:57Z
.gitlab-ci.yml: Bump tags for testsuite images
These new images come with pinned versions of `pytest` and `pylint`:
- `pylint`: `== 2.1.1`
- `pytest`: `>= 3.7`
-
12d1cec2
by Chandan Singh
at 2018-08-21T12:46:57Z
dev-requirements.txt: Pin versions of pytest and pylint
These packages should only be updated as a deliberate change and the
code should be tested with the new versions to ensure that the test
still pass.
Any future updates should also happen in sync with the
buildstream-docker-images repository so that the testsuite base images
also enforce the same restrictions for the development requirements.
Replaces https://gitlab.com/BuildStream/buildstream/merge_requests/684.
-
320b9562
by Tristan Van Berkom
at 2018-08-21T13:57:00Z
Merge branch 'chandan/update-ci-tags' into 'master'
Restrict pylint/pytest versions and bump CI tags
See merge request BuildStream/buildstream!689
-
ef606229
by Josh Smith
at 2018-08-21T14:49:57Z
plugin.py: Stop printing None for fatal-warnings
Providing warn with detail=None (default) will no longer print None when
a fatal warning is triggered.
-
d8256c74
by Qinusty
at 2018-08-21T15:46:14Z
Merge branch 'Qinusty/598-fatal-warning-none-detail' into 'master'
Fatal warnings no longer print None when detail=None
See merge request BuildStream/buildstream!694
-
ab1caac1
by Chandan Singh
at 2018-08-21T23:47:32Z
setup.py: Add fields required for publishing on PyPi
Fill out those fields in `setup.py` that are required for publishing a
package on PyPi.
Part of https://gitlab.com/BuildStream/buildstream/issues/587.
-
81278f84
by Tristan Van Berkom
at 2018-08-22T05:23:33Z
Merge branch 'chandan/pypi-prep' into 'master'
setup.py: Add fields required for publishing on PyPi
See merge request BuildStream/buildstream!695
-
3d4e649d
by Tristan Van Berkom
at 2018-08-22T05:24:42Z
_frontend/linuxapp.py: Fix special casing around desktop notification escape sequence
Now we allow the notification to happen on any TERM
which starts with 'xterm' or 'vte', and we only do it
if the VTE_VERSION is >= 4600, where we know for sure that
VTE will not print garbage on the terminal.
Fixes #385
-
c8bafb68
by Tristan Van Berkom
at 2018-08-22T06:24:12Z
Merge branch 'tristan/notifications' into 'master'
_frontend/linuxapp.py: Fix special casing around desktop notification escape sequence
Closes #385
See merge request BuildStream/buildstream!692
-
eeaddbac
by William Salmon
at 2018-08-22T08:05:28Z
Catch Non Numeric versions
This patch just displays a better message than the default stack trace
but dose not try to fix the problem. A further patch will be created but
it effects versioneer so may take longer to land as it may need to go
via versioneer mainline.
-
e15f5fa3
by William Salmon
at 2018-08-22T08:05:28Z
Search for tags with the *.*.* patten for version
This has been done in a way that I hope might be able to be upstreamed
in to versioneer. This is not garanteed but it would be good if it
could be.
Please see https://github.com/warner/python-versioneer/pull/186 and
https://github.com/wsalmonct/python-versioneer/tree/feature/regexTags
for further details.
-
ff52ae18
by Will Salmon
at 2018-08-22T09:33:04Z
Merge branch 'willsalmon/versionTagRegrex' into 'master'
Search for tags with the *.*.* patten for version
See merge request BuildStream/buildstream!601
-
f4e51cf1
by Sam Thursfield
at 2018-08-22T10:38:41Z
Don't strip pathname from debug symbol files
When GDB looks for debug symbols it looks for the full path of the file
inside the configured debug-file-directory. For example, if the
debug-file-directory is set to a default of /usr/lib/debug, and you are
debugging /usr/bin/python3, GDB will look for its debug symbols at this
location: /usr/lib/debug/usr/bin/python3.
BuildStream has been putting all debug files inside /usr/lib/debug
under their $(basename), so in the above example GDB would fail to find
any debug symbols for /usr/bin/python3 because they would be in the
incorrect locatoin of /usr/lib/debug/python3.
-
5b79bbb7
by Tristan Van Berkom
at 2018-08-22T11:39:32Z
Merge branch 'tristan/debug-symbols-location' into 'master'
Don't strip pathname from debug symbol files
See merge request BuildStream/buildstream!697
-
91d62d2f
by Chandan Singh
at 2018-08-22T18:38:01Z
MANIFEST.in: Fix include for dev-requirements.txt
Currently, running any setuptools commands using `setup.py` generates a
warning like so:
warning: manifest_maker: MANIFEST.in, line 21: unknown action 'dev-requirements.txt'
The syntax is invalid and got accidentally introduced in !637 but it's a
shame that this is not a warning and no obvious way to make it an error
if there are invalid things in MANIFEST.in file.
-
cd0775eb
by Chandan Singh
at 2018-08-22T23:44:36Z
Merge branch 'chandan/fix-mainfest-dev-requirements' into 'master'
MANIFEST.in: Fix include for dev-requirements.txt
See merge request BuildStream/buildstream!704
-
b0d1aa83
by Tristan Van Berkom
at 2018-08-23T05:54:05Z
_frontend/linuxapp.py: Fixing fallout from !693
When fixing terminal notifications, I had introduced a bug
with accesses to `os.environ` which triggered KeyError, this
patch fixes it.
-
2215859c
by Valentin David
at 2018-08-23T06:40:19Z
Improve error message for deleted open workspaces
Fixes #576.
-
e37ac3bc
by Tristan Van Berkom
at 2018-08-23T07:45:49Z
Merge branch 'valentindavid/inconsistant-workspace' into 'master'
Improve error message for deleted open workspaces
Closes #576
See merge request BuildStream/buildstream!703
-
2ac654a8
by Valentin David
at 2018-08-23T08:02:50Z
Remove artifact extracts when artifact expires in cache
Fixes #561
-
176aa09f
by Tristan Van Berkom
at 2018-08-23T09:10:51Z
Merge branch 'valentindavid/extract-expiry' into 'master'
Remove artifact extracts when artifact expires in cache
Closes #561
See merge request BuildStream/buildstream!685
-
f1e3f10f
by Mathieu Bridon
at 2018-08-23T09:11:47Z
deps: Specify the minimum version required for blessings
Buildstream uses the Terminal.does_styling attribute, which was only
added in blessings 1.6.
Blessings helpfully returns an empty string when calling an nonexistent
attribute on the Terminal object, instead of failing.
Because Fedora has blessings 1.5, Buildstream thought that my terminal
couldn't handle styling, and just didn't print the status bar, silently.
Specifying the minimum version avoids this silent failure.
-
bea01531
by Tristan Van Berkom
at 2018-08-23T09:14:40Z
.gitlab-ci.yml: Avoid running tests in post-merge
-
da19bcf1
by Tristan Van Berkom
at 2018-08-23T09:14:40Z
README.rst: Removing the badges
Now that we only run pre-merge CI, it makes no sense to show a badge for
the coverage and pipeline status of the last run of master.
It would make sense to show a badge for the last pipeline which
was run for the last merge request that was merged to master, but
I don't see any feature to get that information.
-
8216ff8d
by Tristan Van Berkom
at 2018-08-23T10:13:23Z
Merge branch 'tristan/reduce-gitlab-ci' into 'master'
.gitlab-ci.yml: Avoid running tests in post-merge
See merge request BuildStream/buildstream!709
-
56096b60
by Chandan Singh
at 2018-08-24T02:12:03Z
.gitlab-ci.yml: Verify that source tarball installs correctly
Add a check to verify that the source distribution tarball that we
generate installs corrctly. It is useful to do this check as this is the
same tarball will be used when installing BuildStream via PyPI.
This check also happens indirectly in the coverage job where we install
BuildStream but this check makes it more explicit and will also cause
the CI to fail early if the tarball is not correct.
-
86e4729d
by Tristan Van Berkom
at 2018-08-24T06:42:03Z
Merge branch 'chandan/ci-sdist-test' into 'master'
.gitlab-ci.yml: Verify that source tarball installs correctly
See merge request BuildStream/buildstream!720
-
d88568ef
by Valentin David
at 2018-08-24T06:48:08Z
tests/integration/source-determinism.py: Use cli_integration.
-
f7ef151b
by Tristan Van Berkom
at 2018-08-24T07:36:19Z
Merge branch 'valentindavid/cli_integration_source_determinism' into 'master'
tests/integration/source-determinism.py: Use cli_integration.
See merge request BuildStream/buildstream!715
-
fa476d79
by Tristan Van Berkom
at 2018-08-24T07:55:43Z
tests/integration/project: Use the same alias for the alpine tarball
This makes the integration tests use the same 'alpine' alias for the
tests as we use in the examples, this avoids a redundant download
of an extra alpine tarball in integration tests.
This is a part of #603
-
255f9ee3
by Tristan Van Berkom
at 2018-08-24T08:39:19Z
Merge branch 'tristan/avoid-redundant-alpine' into 'master'
tests/integration/project: Use the same alias for the alpine tarball
See merge request BuildStream/buildstream!722
-
e1ed09aa
by Jim MacArthur
at 2018-08-24T09:51:27Z
element.py: chmod 777 directories if delete fails.
Staging may produce directories with less than 'rwx' permissions which
will cause tempfile to throw an exception on deleting the temporary
directory if not changed.
-
01fe504b
by James Ennis
at 2018-08-24T09:51:27Z
tar tests: Add tarball which contains a read-only dir
-
a3755c9a
by James Ennis
at 2018-08-24T09:51:27Z
tar.py: Add test for a tarball containing a read-only dir
-
1bfcca1a
by James Ennis
at 2018-08-24T10:31:41Z
Merge branch 'jmac/tempfile-extraction-bug' into 'master'
Correct crash after staging tars with read-only directories
See merge request BuildStream/buildstream!713
-
744925f3
by James Ennis
at 2018-08-24T10:34:57Z
HACKING.rst: Remove -k flag for individual tests as this is not required
-
dfee6d75
by James Ennis
at 2018-08-24T11:15:45Z
Merge branch 'jennis/correct_HACKING' into 'master'
'-k' flag not needed to run individual tests
See merge request BuildStream/buildstream!714
-
923bfaec
by Chandan Singh
at 2018-08-24T11:22:33Z
doc: Add instructions to install BuildStream via PyPI
Add instructions to install and update BuildStream python package via
PyPI, and also make it the recommended method.
Part of https://gitlab.com/BuildStream/buildstream/issues/587.
-
2c3a6ab8
by Chandan Singh
at 2018-08-24T12:01:56Z
Merge branch 'chandan/pip-install-instructions' into 'master'
doc: Add instructions to install BuildStream via PyPI
See merge request BuildStream/buildstream!717
-
f4745600
by Josh Smith
at 2018-08-24T12:20:05Z
setup.cfg: Show timing of the 20 slowest tests
This helps identifying what tests are slow or if the CI got stuck on
some of them
-
4c40a027
by Javier Jardón
at 2018-08-24T13:04:41Z
Merge branch 'jjardon/ci_show_timings' into 'master'
.gitlab-ci.yml: Show timing of the 20 slowest tests
See merge request BuildStream/buildstream!716
-
0301f74e
by Benjamin Schubert
at 2018-08-24T14:52:49Z
buildelement.py: remove double logging (again) as in #507
This was broken again by d14d8ee29b5fcaadcfd05934de71b46221243fcd,
this commits re-applies the fix from 12fea82e12a27eccb34ef4efbaa7c6874787eb4c
-
f991644c
by Qinusty
at 2018-08-24T15:33:48Z
Merge branch 'bschubert15/fix-double-log' into 'master'
buildelement.py: remove double logging (again) as in #507
See merge request BuildStream/buildstream!730
-
f4c2bf19
by Phil Dawson
at 2018-08-25T08:43:09Z
workspaces.rst: Move terminal sessions to doc/source/sessions-stored/
-
23b01f24
by Phil Dawson
at 2018-08-25T08:43:09Z
workspaces.rst: fix note which is not rendering correctly
-
369bec0c
by Tristan Van Berkom
at 2018-08-25T08:44:26Z
doc/source/developing/workspaces.rst: Some whitespace fixes
Some whitespace changes to follow the style regarding empty
lines between sections.
-
24cb3037
by Tristan Van Berkom
at 2018-08-25T09:10:53Z
.gitignore: Ignore doc/source/sessions directory of generated html files
A preventative measure against people committing the generated
html files to the wrong location.
-
4f8fe977
by Tristan Van Berkom
at 2018-08-25T09:10:53Z
HACKING.rst: Documenting the new "shell" configuration in the bst2html input file format
-
d819fb64
by Tristan Van Berkom
at 2018-08-25T11:41:15Z
Merge branch 'tristan/fixup-workspace-docs' into 'master'
Fixing some fallout in the workspace documentation additions
Closes #553
See merge request BuildStream/buildstream!732
-
ba675863
by Tristan Van Berkom
at 2018-08-25T11:42:08Z
doc/source/main_install.rst: Use one level depth toctree
This main section is just a choice of subsections, lets
make this more clear with a single level depth toctree.
-
52fce701
by Tristan Van Berkom
at 2018-08-25T11:42:08Z
doc/source/main_install.rst: Move the main install link target here
This is referred to from the artifact install guide, and was
previously pointing directly to the source install guide.
-
f7289b6b
by Tristan Van Berkom
at 2018-08-25T11:42:08Z
doc/source/install_source.rst: Splitting up install instructions
Instead of having all of this on one page, we now have a much
simpler page for installing on distros where BuildStream is packaged
and a separate page for installing distro specific system dependencies
and installing from source code (either from PyPI or git).
-
a1fa504d
by Tristan Van Berkom
at 2018-08-25T11:42:08Z
Add section about current releases
This is not ideal as the releases are hardcoded, but I think is better
than nothing until we got a solution to automate this
This commit was originally by Javier Jardón <jjardon gnome org> from
merge request !661, and then later reworked into an install guide refactor.
-
08632568
by Tristan Van Berkom
at 2018-08-25T11:42:08Z
doc/source/install_source.rst: Explain about release tag in git install instructions.
This obsoletes Laurence's explanation in merge request !657, and
is a part of the initiative of issue #528 to clarify which versions
users should be installing.
-
a7e046d5
by Tristan Van Berkom
at 2018-08-25T12:22:51Z
Merge branch 'tristan/install-guide-refactoring' into 'master'
Install guide refactoring
See merge request BuildStream/buildstream!733
-
c53d190b
by Javier Jardón
at 2018-08-26T06:04:58Z
doc/bst2html.py: Fix deprecation warning
This fixes the following:
"
/home/jjardon/buildstream/buildstream/doc/bst2html.py:32: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
from collections import Mapping
"
-
a9390efd
by Tristan Van Berkom
at 2018-08-26T07:27:50Z
Merge branch 'jjardon/doc_fix_deprecations' into 'master'
doc/bst2html.py: Fix deprecation warning
See merge request BuildStream/buildstream!727
-
5fb772b5
by Tristan Van Berkom
at 2018-08-26T07:30:58Z
.gitlab-ci.yml: Trying to fix code quality reports
This hasnt been working for a while, it might be because GitLab
doesnt quite grasp that we have multiple branches to merge MRs to,
or it might be because they have change the API and broken back compat
in some way.
See: https://docs.gitlab.com/ee/ci/examples/code_quality.html
-
fa696307
by Tristan Van Berkom
at 2018-08-26T08:10:59Z
Merge branch 'tristan/fix-code-quality' into 'master'
.gitlab-ci.yml: Trying to fix code quality reports
See merge request BuildStream/buildstream!735
-
0f329276
by Tristan Van Berkom
at 2018-08-26T08:11:56Z
README.rst: Use stronger language to follow the installation guide.
And also refer to the user guide section instead of directly to the
tutorial, the tutorial will still be the first section of the user
guide so this is a better link target for getting started.
This is related to #528
-
4b6f3d0d
by Tristan Van Berkom
at 2018-08-26T08:57:05Z
Merge branch 'tristan/readme-version' into 'master'
README.rst: Use stronger language to follow the installation guide.
See merge request BuildStream/buildstream!736
-
7c6e91f5
by Tristan Van Berkom
at 2018-08-27T06:51:20Z
Revert ".gitlab-ci.yml: Avoid running tests in post-merge"
This reverts commit bea01531b984522940562866e904c83e8f9aed50.
-
539963e3
by Tristan Van Berkom
at 2018-08-27T06:51:47Z
Revert "README.rst: Removing the badges"
This reverts commit da19bcf1de75bf930d0f233addc858b4073d0173.
-
5a5b6699
by Tristan Van Berkom
at 2018-08-27T06:53:55Z
.gitlab-ci.yml: Moving code_quality job into tests phase
This job always takes a long time and does not really depend
on the artifacts in the 'test' phase, moving it to the 'test'
phase will reduce overall CI time.
-
c6ba8932
by Tristan Van Berkom
at 2018-08-27T07:27:06Z
Merge branch 'tristan/restore-post-merge-CI' into 'master'
Tristan/restore post merge ci
See merge request BuildStream/buildstream!737
-
9cb69b0b
by Tristan Van Berkom
at 2018-08-27T07:46:22Z
doc/source/main_install.rst: Clarify that BuildStream cannot be run on Windows
The previous wording was misleading and caused one to think you can run
BuildStream on Windows, this commit fixes that and rewords the main section
heading to be a bit more abstract.
Fixes issue #608
-
8c7fadd8
by Tristan Van Berkom
at 2018-08-27T08:12:52Z
Merge branch 'tristan/install-guide-main' into 'master'
doc/source/main_install.rst: Clarify that BuildStream cannot be run on Windows
Closes #608
See merge request BuildStream/buildstream!739
-
ddbf7bc2
by Jürg Billeter
at 2018-08-28T08:56:06Z
element.py: Schedule assemble for key of workspaced elements
For uncached workspaced elements, assemble is required even just to
calculate the cache key. As dynamic scheduling relies on cache keys,
schedule assemble for uncached workspace elements even if they have not
been marked as required yet.
Fixes #461.
-
ffc556ff
by Valentin David
at 2018-08-28T09:01:05Z
tests/frontend/workspace.py: Add test for workspaced dependencies
This adds a regression test for #461.
-
dd90d53d
by Jürg Billeter
at 2018-08-28T09:01:05Z
element.py: Do not attempt to pull workspaced elements
-
6a5a8e7a
by Tristan Van Berkom
at 2018-08-28T11:29:22Z
Merge branch 'juerg/workspaced-dependencies' into 'master'
Fix key invalidation for workspaced dependencies
Closes #461
See merge request BuildStream/buildstream!740
-
6047a575
by Tristan Van Berkom
at 2018-08-28T13:41:36Z
tests/frontend/workspaces.py: Removing some redundant tests
Removed redundant tests from recently merged !740, this new
test does not need to run for every different source kind.
-
7535fda8
by Jürg Billeter
at 2018-08-28T14:25:35Z
Merge branch 'tristan/remove-redundant-test' into 'master'
tests/frontend/workspaces.py: Removing some redundant tests
See merge request BuildStream/buildstream!741
-
10eeb503
by Javier Jardón
at 2018-08-28T22:22:00Z
doc/source/conf.py: Fix E201, E202 warnings
-
d3c32ca2
by Javier Jardón
at 2018-08-28T22:22:00Z
doc/source/conf.py: Fix E402 warning
-
3ae5fd05
by Javier Jardón
at 2018-08-28T22:22:00Z
Fix E305 warnings
-
c6fb5ba7
by Javier Jardón
at 2018-08-28T22:22:00Z
Fix E741 warnings
-
c5eca59d
by Tristan Van Berkom
at 2018-08-29T10:45:33Z
Merge branch 'jjardon/pycodestyle_fixes' into 'master'
Some pycodestyle (PEP8) fixes
See merge request BuildStream/buildstream!746
-
63c6ee72
by Tristan Van Berkom
at 2018-08-29T10:46:30Z
doc: Adding badges.py release badge generator
This adds a step to the docs generation Makefile to generate
release.svg and snapshot.svg badges, modelled after the gitlab
badges.
This also adds the generated badges directory in docs to .gitignore
-
2d527052
by Tristan Van Berkom
at 2018-08-29T10:46:30Z
README.rst: Adding the release and snapshot badges to the readme
This is a part of #528
-
29e7eea8
by Tristan Van Berkom
at 2018-08-29T10:46:30Z
doc: Adding the release badges to the install page and the semantic versioning page
This is a part of #528
-
5d508779
by Tristan Van Berkom
at 2018-08-29T11:13:53Z
Merge branch 'tristan/docs-version-badge' into 'master'
Release badges
See merge request BuildStream/buildstream!742
-
323a5403
by Chandan Singh
at 2018-08-29T12:13:28Z
setup.py: Add more metadata useful for PyPI
- setup.py: List useful links using `project_urls`
- setup.py: Specify minumum python vresion using `python_requires`
`python_requires` is the new way of specifying requirements for python
version, as documented @
https://packaging.python.org/guides/distributing-packages-using-setuptools/#python-requires.
This will also make this requirement appear nicely on the PyPI project
page.
- setup.py: Add project classifiers
PyPI will use these classifiers to categorize projects while searching
or browsing. Full list of classifiers can be found at
https://pypi.org/classifiers.
-
5fc7b5ac
by Tristan Van Berkom
at 2018-08-29T12:37:08Z
Merge branch 'chandan/setup.py-metadata' into 'master'
setup.py: Add more metadata useful for PyPI
See merge request BuildStream/buildstream!718
-
42ad937d
by Josh Smith
at 2018-08-29T12:38:15Z
Prevent ValueError on URLs without an alias
Fixes #597
-
aa3a33b3
by Tristan Van Berkom
at 2018-08-29T13:03:58Z
Merge branch 'Qinusty/597-non-alias-url-fix' into 'master'
Fix ValueError traceback for URL without alias or URI scheme
Closes #597
See merge request BuildStream/buildstream!700
-
2a2a79de
by Valentin David
at 2018-08-29T14:11:48Z
Disable round-tripping when element is not modified
-
2df7607c
by Tristan Van Berkom
at 2018-08-29T14:43:55Z
Merge branch 'valentindavid/roundtripping_only_when_modified' into 'master'
Disable round-tripping when element is not modified
See merge request BuildStream/buildstream!748
-
c146dde5
by Benjamin Schubert
at 2018-08-29T16:00:24Z
Log not-found objects in the cache as SKIPPED
-
19e87afb
by Benjamin Schubert
at 2018-08-29T16:01:12Z
Add tests that not-found objects in cache are shown as SKIPPED
-
9cc5817f
by Qinusty
at 2018-08-29T16:25:48Z
Merge branch 'bschubert/log-missed-cache' into 'master'
Log not-found objects in the cache as SKIPPED
See merge request BuildStream/buildstream!729
-
3c8646e3
by Josh Smith
at 2018-08-29T16:34:22Z
Add cyclic check within variable resolution
This aims to address #600, this will raise an exception when a resolved
variable contains a reference to the variable.
-
d41c42d6
by Josh Smith
at 2018-08-29T16:34:22Z
Add tests for cyclic variables check
Note: This modifies the docker containers used for testing to supply the
pytest-timeout package.
-
c7b72c30
by Qinusty
at 2018-08-29T16:58:48Z
Merge branch 'Qinusty/600-recursive-variables' into 'master'
Add cyclic check within variable resolution
See merge request BuildStream/buildstream!712
-
d28e1353
by Tristan Van Berkom
at 2018-08-30T06:02:41Z
tests/plugins/filter.py: Don't run redundant tests
There is no reason that the filter element codepaths can behave
differently depending on the Source implementation used in the test,
as the Source implementation does not have any filter specific
virtual methods.
Removing the redundant tests and just performing these tests with the git source.
-
e77ae07a
by Tristan Van Berkom
at 2018-08-30T06:36:41Z
Merge branch 'tristan/reduce-filter-tests' into 'master'
tests/plugins/filter.py: Don't run redundant tests
See merge request BuildStream/buildstream!753
-
9ea40e2c
by Tristan Van Berkom
at 2018-08-30T06:38:13Z
tests/frontend/mirror.py: Reenable test_mirror_fetch_upstream_absent[ostree]
This test was skipped because of issue #538, but #538 was fixed
and the test was still not reenabled.
-
8aec1102
by Tristan Van Berkom
at 2018-08-30T07:06:17Z
Merge branch 'tristan/538-reenable-ostree-test' into 'master'
tests/frontend/mirror.py: Reenable test_mirror_fetch_upstream_absent[ostree]
See merge request BuildStream/buildstream!755
-
fcc17c82
by Tristan Van Berkom
at 2018-08-30T08:44:34Z
source.py: Stylistic changes in Source.__do_fetch()
Added some comments to make the flow easier to follow, and
removed an annoying 'success' variabled in favor of a for / else
loop statement.
-
60ad044a
by Tristan Van Berkom
at 2018-08-30T08:44:34Z
source.py: Move Source.mark_download_url() to the public methods.
This was sitting in the section for abstract methods, but this
is most definitely not an abstract method to be implemented by
Sources.
-
c339f917
by Tristan Van Berkom
at 2018-08-30T08:44:34Z
plugins/source/git.py: Fix formatting of url in tracking
This was displaying the aliased URL which is pretty useless,
use the translated URL for the timed activity.
-
26565f11
by Tristan Van Berkom
at 2018-08-30T09:12:28Z
Merge branch 'tristan/source-mirroring-changes' into 'master'
Minor code changes revolving around source mirroring
See merge request BuildStream/buildstream!758
-
a38d9163
by Valentin David
at 2018-08-30T10:26:57Z
Report processing errors from tracking
Failures to write files when tracking were not reported.
Fixes #533.
-
02138181
by Tristan Van Berkom
at 2018-08-30T11:36:00Z
Merge branch 'valentindavid/post_tracking_errors' into 'master'
Report processing errors from tracking
Closes #533
See merge request BuildStream/buildstream!747
-
d23d4f3e
by Tristan Van Berkom
at 2018-08-30T12:02:27Z
_artifactcache/artifactcache.py: Write the cache_size file atomically
This is causing issues while the size file is being read and written
simultaneously.
The proper fix will be to read/add/save the file atomically and that
will require locking, but this fix is a good stop gap to existing crashes.
-
bb6aa5a5
by Tristan Van Berkom
at 2018-08-30T12:27:55Z
Merge branch 'tristan/atomic-cache-size-file' into 'master'
_artifactcache/artifactcache.py: Write the cache_size file atomically
See merge request BuildStream/buildstream!762
-
680e4fe1
by knownexus
at 2018-08-30T13:37:55Z
Replacing string 'bzr' with value from host tools
-
8cd719eb
by Phillip Smyth
at 2018-08-30T15:47:06Z
Merge branch 'bzr_fix' into 'master'
Replacing string 'bzr' with value from host tools
See merge request BuildStream/buildstream!764
-
18d0bfb4
by Tom Pollard
at 2018-08-30T19:14:33Z
buildstream/_project.py: Report if project.conf is missing name
Explicitly check that project.conf contains a name. This resolves
the issue of the provenance check from _yaml.py incorrectly reporting
the offending file as the default_config_node projectconfig.yaml
when no name key exists in the pre_config_node dict.
-
95121148
by Tiago Gomes
at 2018-08-30T20:52:29Z
Merge branch 'tpollard/591' into 'master'
buildstream/_project.py: Report if project.conf is missing name
See merge request BuildStream/buildstream!680
-
775d3fca
by Tristan Van Berkom
at 2018-08-31T06:05:32Z
_project.py: Adding FIXME comment to address #591 properly
-
0682aa1c
by Josh Smith
at 2018-08-31T10:58:12Z
job.py: Modify retry messages to be FAIL
This adjusts the message handler for the child processes to no longer
override the message type.
This also removes the ability for unhandled non BstError exceptions to
retry.
-
68eff9ba
by Josh Smith
at 2018-08-31T10:58:20Z
tests: Modify tests to ensure retry FAILURE
-
9b18e1bf
by Tristan Van Berkom
at 2018-08-31T11:22:51Z
Merge branch 'Qinusty/retries-should-fail' into 'master'
Retries log as failures
See merge request BuildStream/buildstream!766
-
e2d8fedf
by Josh Smith
at 2018-08-31T15:53:43Z
scheduler.py: Move cache_size logs into folder
This prevents the cache_size.pid.log files from cluttering the root
log directory.
-
6805a2ab
by Tristan Van Berkom
at 2018-09-01T08:24:05Z
Merge branch 'Qinusty/cache-size-directory' into 'master'
Move cache_size.pid.log files into a subdirectory of logs
See merge request BuildStream/buildstream!769
-
f8b06acc
by Tristan Van Berkom
at 2018-09-02T09:33:39Z
source.py: Document Source.get_source_fetchers() to return an iterable
Also highlight the fact that the plugin can rely on the fetcher's
fetch() method getting called before consuming the next item in the
list, which is the magick behavior that the git plugin relies on.
This is a part of #620
-
559b6fbc
by Tristan Van Berkom
at 2018-09-02T09:34:10Z
source.py: Fixing docs link formatting to be consistent.
-
43ad22d7
by Tristan Van Berkom
at 2018-09-02T09:34:10Z
source.py: Documenting that marking download URLs is mandatory
A download URL must be interpreted by the core at `Plugin.configure()`
time, even if only employed later on.
This is a part of #620
-
16462e9c
by Tristan Van Berkom
at 2018-09-02T09:36:49Z
plugin.py: Added _configure() and _get_configuring() private APIs
Keeps track of whether the plugin is currently being configured.
Adjusted Element and Source classes to call _configure() in place
of calling configure() directly.
This is a part of #620
-
1f9c4147
by Tristan Van Berkom
at 2018-09-02T09:37:12Z
source.py: Added `primary` argument to URL marking APIs
The Source must now mention whether the marked or translated
URL is "primary" or not. Even when a Source may have multiple
URLs, the auxilliary URLs are derived from the primary one, not
only is this true for git, but it is mandated by our tracking
API which assumes there is a primary URL.
This adjusts the `git` source and the test `fetch_source.py` source
to behave properly and advertize it's primary URL properly.
This is a part of #620
-
f9b2f1a9
by Tristan Van Berkom
at 2018-09-02T09:37:21Z
source.py: Track marked URLs and assert they are marked during Plugin.configure()
This cannot test for unaliased URLs, as those can be discovered later
on outside of user provided element configuration; at least we
assert that if an alias was used, we have seen it at load time.
This will cause a BUG to occur for a plugin which marks an aliased
URL (or attempts to translate one) outside of `Plugin.configure()`,
if that URL was not previously seen.
This is a part of #620
-
88460cd2
by Tristan Van Berkom
at 2018-09-03T06:23:38Z
Merge branch 'tristan/source-fetcher-changes' into 'master'
Source fetcher changes
See merge request BuildStream/buildstream!772
-
2339f0c4
by Tom Pollard
at 2018-09-03T09:44:36Z
plugins/git.py: Warn if ref is not in given track
Add a helper function assert_ref_in_track to git.py GitMirror()
which is used when staging & initing the source workspace. It
checks the element's ref exists in the track (branch/tag) if it
has been specified, raising a warning if necessary. The warning makes
use of the warning token 'REF_NOT_IN_TRACK' from the configurable
CoreWarnings. If the element has been tracked with bst, it is assumed
that the value of ref exists in the track as it was generated from it
& as such is not asserted.
-
c96fec5d
by Tom Pollard
at 2018-09-03T09:44:36Z
tests/sources/git.py: Add tests for REF_NOT_IN_TRACK
Add tests that cover assert_ref_in_track & the configurable
CoreWarnings REF_NOT_IN_TRACK warnings token.
-
6a0cdedf
by Tom Pollard
at 2018-09-03T10:16:39Z
Merge branch 'tpollard/483' into 'master'
plugins/git.py: Warn if ref is not in given track
See merge request BuildStream/buildstream!564
-
9b327eb6
by Ben Brewer
at 2018-09-04T14:41:23Z
Improve documentation for artifact cache installation
Remove ambiguity about systemd service files being separate.
Add URL for more information about systemd service files.
Add note about public keys being mandatory for self-signed certs.
Make cert/key file naming consistent throughout document.
-
3e67e64a
by Javier Jardón
at 2018-09-04T16:43:13Z
Merge branch 'benbrewer/install-artifacts-doc-improvements' into 'master'
Improve documentation for artifact cache installation
See merge request BuildStream/buildstream!777
-
3409609e
by Daniel Silverstone
at 2018-09-04T16:55:51Z
jobs.py: Reduce FD leaks from queues and process objects
The garbage collector can take too long to get around to cleaning
up the Queue and Process instances in completed Job instances. As
such, FDs tend to leak and in very large projects this can result
in running out of FDs before a build, fetch, track, or other process
can complete. This patch reduces the chance of that by only creating
the queue when it's needed, and forcing the queue and process instances
to be deleted when the parent is finished with them.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
7b32e1ec
by Tristan Maat
at 2018-09-04T17:20:55Z
Merge branch 'danielsilverstone-ct/maybe-reduce-fd-leaks' into 'master'
jobs.py: Reduce FD leaks from queues and process objects
See merge request BuildStream/buildstream!778
-
936bb93a
by Jim MacArthur
at 2018-09-07T12:57:28Z
cascache.py: Preparation for remote execution
Refactor the push() and pull() implementations so that API additions
needed for remote-execution is made easier.
https://gitlab.com/BuildStream/buildstream/issues/454
-
b0f46545
by Martin Blanchard
at 2018-09-07T12:57:29Z
cascache.py: Introduce new push helpers
Add push_directory() and push_message() helpers along with a
verify_digest_pushed().
https://gitlab.com/BuildStream/buildstream/issues/454
-
50bf3139
by Martin Blanchard
at 2018-09-07T12:57:29Z
cascache.py: Introduce new pull helpers
Add a pull_tree() helper.
https://gitlab.com/BuildStream/buildstream/issues/454
-
853e0af7
by Martin Blanchard
at 2018-09-07T12:57:29Z
_casbaseddirectory.py: Add a method for hash recalculation
https://gitlab.com/BuildStream/buildstream/issues/454
-
e7659c29
by Jim MacArthur
at 2018-09-07T12:57:29Z
sandbox.py: Allow setting the virtual directory
This is for use after remote execution has finished, since remote
execution produces a new output directory rather than modifying
the initial directory.
https://gitlab.com/BuildStream/buildstream/issues/454
-
7306a954
by Jim MacArthur
at 2018-09-07T12:57:29Z
Add "remote-execution" project configuration option
This just adds one option, "remote-execution/url". Affects multiple files.
https://gitlab.com/BuildStream/buildstream/issues/454
-
c0ef7106
by Jim MacArthur
at 2018-09-07T12:57:29Z
format_project.rst: Document remote-execution option
https://gitlab.com/BuildStream/buildstream/issues/454
-
43651af0
by Jim MacArthur
at 2018-09-07T12:57:29Z
_sandboxremote.py: Implement the REAPI client
The remote execution client is implemented as a remote sandbox that
sends sources and build commands to a REAPI server and fetches results
once remotely executed. New file.
https://gitlab.com/BuildStream/buildstream/issues/454
-
da53c005
by Jim MacArthur
at 2018-09-07T12:57:29Z
sandbox/__init__.py: Add SandboxRemote
https://gitlab.com/BuildStream/buildstream/issues/454
-
c73896bb
by Jim MacArthur
at 2018-09-07T12:57:29Z
element.py: Get the updated virtual directory after running
Executing run() on a sandbox can now replace the virtual directory,
since remote execution returns a potentially different directory rather
than an update to the existing one. Call get_virtual_directory() again
after running to accout for this.
https://gitlab.com/BuildStream/buildstream/issues/454
-
89b29b8b
by Jim MacArthur
at 2018-09-07T12:57:29Z
element.py: Switch to SandboxRemote if config option is set
https://gitlab.com/BuildStream/buildstream/issues/454
-
116f80d2
by Jim MacArthur
at 2018-09-07T12:57:29Z
autotools.py: Mark this as a BST_VIRTUAL_DIRECTORY plugin
https://gitlab.com/BuildStream/buildstream/issues/454
-
05956c71
by Martin Blanchard
at 2018-09-07T12:57:29Z
cmake.py: Mark this as a BST_VIRTUAL_DIRECTORY plugin
https://gitlab.com/BuildStream/buildstream/issues/454
-
909b3be4
by Martin Blanchard
at 2018-09-07T12:57:29Z
make.py: Mark this as a BST_VIRTUAL_DIRECTORY‧plugin
https://gitlab.com/BuildStream/buildstream/issues/454
-
556f2abb
by Martin Blanchard
at 2018-09-07T12:57:30Z
meson.py: Mark this as a BST_VIRTUAL_DIRECTORY‧plugin
https://gitlab.com/BuildStream/buildstream/issues/454
-
71e2b543
by Martin Blanchard
at 2018-09-07T12:57:30Z
qmake.py: Mark this as a BST_VIRTUAL_DIRECTORY‧plugin
https://gitlab.com/BuildStream/buildstream/issues/454
-
d4c515d0
by Martin Blanchard
at 2018-09-07T12:57:30Z
tests/artifactcache: Add a simple test project
https://gitlab.com/BuildStream/buildstream/issues/454
-
923d443b
by Martin Blanchard
at 2018-09-07T13:22:48Z
tests/artifactcache: Add push unit-tests
https://gitlab.com/BuildStream/buildstream/issues/454
-
9ef53163
by Martin Blanchard
at 2018-09-07T13:22:57Z
tests/artifactcache: Add pull unit-tests
https://gitlab.com/BuildStream/buildstream/issues/454
-
f52169b2
by Qinusty
at 2018-09-07T16:48:02Z
Merge branch 'jmac/remote_execution_client' into 'master'
Remote execution client
See merge request BuildStream/buildstream!626
-
8326b0f7
by Thomas Coldrick
at 2018-09-08T17:54:22Z
Upstream libtool .la file removal
In freedesktop-sdk we add a script to our project.conf to remove
libtool .la files from autotools projects after install, this seems
like a sensible default, so we're attempting to send it upstream.
-
886a836e
by Valentin David
at 2018-09-08T20:07:29Z
Merge branch 'coldtom/autotools-libtool' into 'master'
Upstream freedesktop-sdk autotools config for libtool .la files
See merge request BuildStream/buildstream!683
-
2174db01
by Tristan Van Berkom
at 2018-09-10T07:53:56Z
tests/artifactcache/expiry.py: Fix test case expectations.
-
e5847077
by Tristan Van Berkom
at 2018-09-10T07:53:56Z
_scheduler/queues: Mark build and pull queue as requiring shared access to the CACHE
This is what the whole resource.py thing was created for, the
cleanup job must have exclusive access to the cache, while the pull
and build jobs which result in adding new artifacts, must only require
shared access.
This is a part of #623
-
98ab2b89
by Tristan Van Berkom
at 2018-09-10T07:53:56Z
_scheduler/resources.py: Set CACHE max resources to 0
This means there is no cap for shared resource requests.
Together with the previous commit, this causes the cleanup
job and the pull/build jobs to all require unlimited shared
access to the CACHE resource; while only the cleanup job
requires exclusive access to the resource.
This is a part of #623
-
deaecdc1
by Tristan Van Berkom
at 2018-09-10T07:53:56Z
_scheduler/scheduler.py: Make CacheSizeJob() not require the CACHE exclusively
This runs after every pull, and does not need the cache exclusively,
only the cleanup job requires the cache exclusively.
Without this, every time a cache_size job is queued, all pull and
build jobs need to complete before cache_size job can run exclusively,
which is not good.
This is a part of #623
-
1f118ba4
by Tristan Van Berkom
at 2018-09-10T07:53:56Z
element.py: Adding missing API documenting comment
-
26ccc1ba
by Tristan Van Berkom
at 2018-09-10T07:53:56Z
_artifactcache: Making public methods public
The artifact cache provides the following public methods for
external callers, but was hiding them away as if they are private.
o ArtifactCache.add_artifact_size()
o ArtifactCache.set_cache_size()
Mark these properly public
-
00784059
by Tristan Van Berkom
at 2018-09-10T07:53:56Z
_scheduler: API fixes; _check_cache_size_real() -> check_cache_size()
Here we have a very private looking _check_cache_size_real() function
which no-one would ever want to call from outside of the _scheduler,
especially given it's `_real()` prefix we should look for another
outward facing API to use.
However this is not private to the scheduler, and is intended to
be called by the `Queue` implementations.
o Renamed this to check_cache_size()
o Moved it to the public API section of the Scheduler object
o Added the missing API documenting comment
o Also added the missing API documenting comment to the private
`_run_cleanup()` callback which runs in response to completion
of the cache size calculation job.
o Also place the cleanup job logs into a cleanup subdirectory,
for better symmetry with the cache_size jobs which now have
their own subdirectory
-
a3825ba6
by Tristan Van Berkom
at 2018-09-10T07:53:56Z
_artifactcache/artifactcache.py: Removing unused variable.
The ArtifactCache._local variable used to exist in order to
use a special hack to allow absolute paths to a remote artifact
cache, this was all for the purpose of testing.
This has all gone away with the introduction of CAS, leaving behind
a stale variable.
-
791f7dda
by Tristan Van Berkom
at 2018-09-10T07:53:56Z
_artifactcache/artifactcache.py: Sealing away some the estimated size
Previously, the API contract was to expose the estimated_size variable
on the ArtifactCache instance for all to see, however it is only relevant
to the ArtifactCache abstract class code. Subclasses were informed to
update the estimated_size variable in their calculate_cache_size()
implementation.
To untangle this and hide away the estimated size, this commit
does the following:
o Introduces ArtifactCache.compute_cache_size() API for external
callers
o ArtifactCache.compute_cache_size() calls the abstract method
for the CasCache subclass to implement
o ArtifactCache.compute_cache_size() updates the private
estimated_size variable
o All direct callers to ArtifactCache.calculate_cache_size(),
have been updated to use the ArtifactCache.compute_cache_size()
method instead, which takes care of updating anything local
to the ArtifactCache abstract class code (the estimated_size)
-
cbfddc13
by Tristan Van Berkom
at 2018-09-10T07:53:56Z
element.py: Remove _get_artifact_size()
There is no justification to hold onto this state here.
Instead, just make `Element._assemble()` return the size of the
artifact it cached, and localize handling of that return value in
the BuildQueue implementation where the value is observed.
-
8b748f2d
by Tristan Van Berkom
at 2018-09-10T07:53:57Z
_scheduler/jobs/cachesizejob.py: Use Platform.get_platform() public accessor
This was previously poking directly at the Platform._instance.
Also, use the name 'artifacts' to hold the artifact cache to
be consistent with other parts of the codebase, instead of
calling it 'cache'.
-
742908ea
by Tristan Van Berkom
at 2018-09-10T07:53:57Z
_scheduler/jobs/cleanupjob.py: Use Platform.get_platform() public accessor
This was previously poking directly at the Platform._instance.
Also, use the name 'artifacts' to hold the artifact cache to
be consistent with other parts of the codebase, instead of
calling it 'cache'.
-
335b2fdd
by Tristan Van Berkom
at 2018-09-10T07:53:57Z
element.py: Remove _get_artifact_cache() accessor.
The artifact cache is anyway a singleton, the Element itself
has an internal handle on the artifact cache because it is
needed very frequently; but an artifact cache is not element
specific and should not be looked up by surrounding code
on a per element basis.
Updated _scheduler/queues/queue.py, _scheduler/queues/buildqueue.py
and _scheduler/jobs/elementjob.py to get the artifact cache directly
from the Platform
-
6db54c8f
by Tristan Van Berkom
at 2018-09-10T07:53:57Z
_artifactcache: There shalt be only one cache size
This does a lot of house cleaning, finally bringing cache
cleanup logic to a level of comprehensibility.
Changes in this commit include:
o _artifactcache/artifactcache.py: _cache_size, _cache_quota and
_cache_lower_threshold are now all private variables.
get_approximate_cache_size() is now get_cache_size()
Added get_quota_exceeded() for the purpose of safely checking
if we have exceeded the quota.
set_cache_size() now asserts that the passed size is not None,
it is not acceptable to set a None size cache anymore.
o _artifactcache/cascache.py: No longer set the ArtifactCache
'cache_size' variable violently in the commit() method.
Also the calculate_cache_size() method now unconditionally
calculates the cache size, that is what it's for.
o _scheduler/jobs/cachesizejob.py & _scheduler/jobs/cleanupjob.py:
Now check the success status. Don't try to set the cache size
in the case that the job was terminated.
o _scheduler/jobs/elementjob.py & _scheduler/queues/queue.py:
No longer passing around the cache size from child tasks,
this happens only explicitly, not implicitly for all tasks.
o _scheduler/queues/buildqueue.py & _scheduler/scheduler.py:
Use get_quota_exceeded() accessor
This is a part of #623
-
958ef8ef
by Tristan Van Berkom
at 2018-09-10T09:23:06Z
Merge branch 'tristan/fix-cache-exclusivity' into 'master'
_scheduler/queues: Mark build and pull queue as requiring shared access to the CACHE
See merge request BuildStream/buildstream!775
-
40f25512
by Richard Maw
at 2018-09-10T12:29:15Z
subprocesses: Ensure PWD is set in process environment
Naive getcwd implementations (such as in bash 4.4) can break
when bind-mounts to different paths on the same filesystem are present,
since the algorithm needs to know whether it's a mount-point
to know whether it can trust the inode value from the readdir result
or to use stat on the directory.
Less naive implementations (such as in glibc) iterate again using stat
in the case of not finding the directory because the inode in readdir was wrong,
though a Linux-specific implementation could use name_to_handle_at.
Letting the command know what directory it is in makes it unnecessary
for it to call the faulty getcwd in the first place.
-
247686dc
by richardmaw-codethink
at 2018-09-10T14:47:48Z
Merge branch 'richardmaw/subprocess-PWD' into 'master'
Ensure PWD is set in process environment
See merge request BuildStream/buildstream!782
-
ef66daf5
by Tiago Gomes
at 2018-09-10T14:57:41Z
tests: avoid setting max-jobs
Setting "max-jobs" won't be allowed anymore in a following commit.
-
a37bc6ce
by Tiago Gomes
at 2018-09-10T14:57:41Z
docs: document protected variables
And remove then from the defaults as they are dynamically set by
BuildStream.
-
af74a3f8
by Tiago Gomes
at 2018-09-10T14:57:41Z
element: validate configuration variables
Ensure that protected variables are not being redefined by the user.
-
75c55633
by Tiago Gomes
at 2018-09-10T14:57:41Z
Add tests for validating configuration variables
-
e0bb71b2
by Tiago Gomes
at 2018-09-10T15:27:53Z
Merge branch 'tiagogomes/issue-287' into 'master'
Add validation of configuration variables
See merge request BuildStream/buildstream!678
-
47f3064a
by Jürg Billeter
at 2018-09-10T15:43:25Z
_artifactcache/casserver.py: Implement Capabilities service
-
1a7fb3cb
by Jürg Billeter
at 2018-09-10T15:43:25Z
_artifactcache/casserver.py: Implement BatchReadBlobs
Fixes #632.
-
b3ffcdc8
by Jürg Billeter
at 2018-09-10T16:07:30Z
Merge branch 'juerg/cas-batch' into 'master'
_artifactcache/casserver.py: Implement BatchReadBlobs
Closes #632
See merge request BuildStream/buildstream!785
-
6f925bcb
by Javier Jardón
at 2018-09-13T07:38:48Z
source/install_source.rst: pip plugin depends on host pip
-
c6155f8d
by Javier Jardón
at 2018-09-13T08:11:54Z
Merge branch 'jjardon/pip_dependency' into 'master'
source/install_source.rst: pip plugin depends on host pip
See merge request BuildStream/buildstream!791
-
19838a07
by Chandan Singh
at 2018-09-13T10:58:38Z
README.rst: Add status badges for PyPI release and Python versions
The first badge will work fine right away while the second badge will
show "not found" until a release is made after merging this branch:
https://gitlab.com/BuildStream/buildstream/merge_requests/718.
-
3b81d451
by Chandan Singh
at 2018-09-13T12:27:59Z
Merge branch 'chandan/pypi-badge' into 'master'
README.rst: Add status badges for PyPI release and Python versions
See merge request BuildStream/buildstream!719
-
55956762
by Richard Maw
at 2018-09-13T16:50:33Z
element: Remove __cached field
This can get out of sync with other two cache states,
and we can do without it.
-
fc7f83ac
by richardmaw-codethink
at 2018-09-13T17:14:31Z
Merge branch 'richardmaw/element-cache-state-simplify' into 'master'
Simplify element state by removing `__cached`
See merge request BuildStream/buildstream!784
-
233a7d83
by Richard Maw
at 2018-09-14T08:53:14Z
Handle sockets when copying trees into artifacts
We can't include a socket in a CAS tree, but it's mostly meaningless to do so
since there can't possibly be a process serving it.
-
f06f234a
by Richard Maw
at 2018-09-14T08:53:14Z
tests: cover builds that make sockets
-
f86ab8f6
by richardmaw-codethink
at 2018-09-14T09:46:07Z
Merge branch 'richardmaw/builddir-sockets' into 'master'
Fix: While caching build artifact: "Cannot extract [path to socket file] into staging-area. Unsupported type."
See merge request BuildStream/buildstream!783
-
e7427462
by Richard Maw
at 2018-09-14T10:28:17Z
tests: Use cli.configure for custom logging test
Overriding the config with a custom config file on the command-line
prevents it merging in the test-specific configuration
and can permit it to attempt to initialise the user's cache.
-
800a8403
by Richard Maw
at 2018-09-14T10:28:17Z
Tidy relative workspace tests
They were moving the whole tmpdir to move the project repository.
This moves the cache directories etc. as well, meaning cli.run can't find them.
This was worked around by setting configure=False,
but this has the side-effect of making use of the user's caches,
which it should not be doing for reproducibility reasons.
By changing the tempdir layout to have the project in a subdirectory
we can move the project around for the relative workspace tests
without losing track of the configured state directories,
so we can leave configure=True and avoid touching the user's caches.
-
d7152ef4
by richardmaw-codethink
at 2018-09-14T10:55:16Z
Merge branch 'richardmaw/test-config-fixes' into 'master'
Fix tests that attempt to access the home directory
See merge request BuildStream/buildstream!780
-
160bb0c6
by Tristan Van Berkom
at 2018-09-14T12:07:46Z
_artifactcache/artifactcache.py: Changes to mark_required_elements()
This was previously append_required_artifacts(), which presumed that
we knew at startup time what the cache keys of all elements in the
loaded pipeline would be.
This fixes unexpected deletions of required artifacts when
dynamic tracking is enabled with `bst build --track-all target.bst`
-
39125d24
by Tristan Van Berkom
at 2018-09-14T12:07:46Z
tests/artifactcache/expiry.py: Cleanup of test for required artifacts
This commit renames test_never_delete_dependencies() to
test_never_delete_required(), renders the test more readable by renaming
some elements and reordering some statements and makes the comments more
straight forward and accurate.
-
f60558a3
by Tristan Van Berkom
at 2018-09-14T12:07:46Z
tests/artifactcache/expiry.py: Assert the expected errors
These tests were not checking that we fail for the expected reasons.
Added `res.assert_task_error(ErrorDomain.ARTIFACT, 'cache-too-full')`
where we expect to fail because the cache is too full.
-
ce68fd27
by Tristan Van Berkom
at 2018-09-14T12:07:46Z
testutils/repo/git.py: Added modify_file() method
This allows one to modify a file in an existing git repo,
as opposed to adding a new one.
-
532ec1eb
by Tristan Van Berkom
at 2018-09-14T12:07:46Z
testutils/element_generators.py: Changing sized element functions
* create_element_size()
Now uses a git Repo object instead of a local source, and
returns the repo.
* update_element_size()
Added this function which can now resize the expected output
of an element generated with create_element_size(), useful
to allow testing sized elements with the tracking feature.
-
20b797cb
by Tristan Van Berkom
at 2018-09-14T12:07:46Z
tests/artifactcache/expiry.py: Added test_never_delete_required_track()
Same test as test_never_delete_required(), except that this test ensures
that we never delete required artifacts when their cache keys are
discovered dynamically during the build.
-
c2af0d51
by Tristan Van Berkom
at 2018-09-14T12:44:42Z
Merge branch 'tristan/fix-required-artifacts' into 'master'
Don't delete required artifacts when tracking is enabled
See merge request BuildStream/buildstream!793
-
924cdc75
by Tiago Gomes
at 2018-09-14T15:32:01Z
core: remove unused variable on Context
-
510ccbfd
by Tiago Gomes
at 2018-09-14T15:32:21Z
artifactcache: fix oversight
We want to check if some file is already cached here, not the parent
directory.
-
82d4e2ac
by Tiago Gomes
at 2018-09-14T15:32:21Z
scheduler: add missing copyright
Tristan Maat created the original file, so he is added as the author.
-
18b37aab
by Tiago Gomes
at 2018-09-14T15:34:10Z
artifactcache: improve _create_tree()
* Rename it to _commit_directory() because… it is what it does; and
also for symmetry with _fetch_directory().
* Rename digest to dir_digest to make it clear this is a digest for a
directory. A following commit will also reuse the same variable name
* Document method.
-
32fad24f
by Tiago Gomes
at 2018-09-14T15:38:41Z
artifactcache: improve _fetch_directory()
* Rename tree to dir_digest to make it clear this is a Digest object,
and not a Tree object.
* Add documentation
-
46cbd889
by Tiago Gomes
at 2018-09-14T15:38:43Z
artifactcache: rename get_quota_exceeded()
-
2fa92716
by Tiago Gomes
at 2018-09-14T15:38:43Z
scheduler: minor cleanups to CleanupJob
Remove unneeded cruft.
-
c285f244
by Tiago Gomes
at 2018-09-14T16:08:07Z
Merge branch 'tiagogomes/some-cleanups' into 'master'
Bunch of cleanups
See merge request BuildStream/buildstream!798
-
662d22a9
by Tristan Van Berkom
at 2018-09-16T08:54:00Z
buildstream/_frontend/complete.py: Added missing click license compliance
Somehow I missed this when originally forking the file from the click
library, now noticing that we should have followed what was written
in: https://github.com/pallets/click/blob/master/LICENSE
-
a344407b
by Richard Maw
at 2018-09-16T10:22:59Z
sandbox: deduplicate default environment logic
-
c8fab440
by Richard Maw
at 2018-09-16T10:22:59Z
Bump Artifact Version
Since we now set PWD in the environment of builds
existing builds may behave differently so must cache differently now.
-
eb9481da
by Richard Maw
at 2018-09-16T10:22:59Z
Cachekey update helper: Document ensuring . in PYTHONPATH
The current directory isn't always in the python module search path,
so we have to ensure it is for the script to work.
Strictly speaking, the user may already have a modified PYTHONPATH
at which point PYTHONPATH=".${PYTHONPATH+:$PYTHONPATH}" is necessary,
but it's probably premature to overcomplicate the documentation like that
before we discover it's a problem.
-
9b7b2a25
by Tristan Van Berkom
at 2018-09-16T10:50:36Z
Merge branch 'richardmaw/subprocess-PWD' into 'master'
Address post-merge review of Ensure PWD is set in process environment
See merge request BuildStream/buildstream!788
-
8db62230
by Adam Jones
at 2018-09-17T07:39:06Z
Add a section on how to raise an issue
-
6f0a3e98
by Adam Jones
at 2018-09-17T07:39:20Z
Rename HACKING.rst to CONTRIBUTING.rst
-
ade19151
by Adam Jones
at 2018-09-17T07:40:45Z
update HACKING references
-
b9c5ff7d
by Tristan Van Berkom
at 2018-09-17T08:09:12Z
Merge branch 'tristan/contributing-guide' into 'master'
Update contributing guide
See merge request BuildStream/buildstream!801
-
727f2faa
by Tristan Van Berkom
at 2018-09-18T07:43:07Z
_project.py: Fix option resolution in element & source overrides
This ensures that option expressions are resolved in the project
level overrides before attempting to composite them on the instantiated
elements. Seems this is a regression from introducing the include
directive.
This fixes issue #658
-
ffa0bb36
by Tristan Van Berkom
at 2018-09-18T07:47:44Z
tests/format/optionoverrides.py: Added test for options in element overrides
This is a regression test for issue #658
-
f2ae46f8
by Tristan Van Berkom
at 2018-09-18T08:14:23Z
Merge branch 'tristan/fix-override-options' into 'master'
Fix override options
Closes #658
See merge request BuildStream/buildstream!802
-
7b117e40
by Daniel Silverstone
at 2018-09-18T08:41:32Z
_artifactcache/artifactcache.py: Ensure no double-setup of remotes
Since ArtifactCache.setup_remotes() can be expensive and should only
happen once, this commit will assert() if it is called a second time
on an artifact cache instance.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
345f5f49
by Daniel Silverstone
at 2018-09-18T08:41:32Z
tests/artifactcache/pull.py: Do not double-initialize remotes
The initialization of remotes is done by ArtifactCache.setup_remotes()
and as such it was wrong for these tests to be calling
CASCache.initialize_remotes() a second time.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
e32221b6
by Daniel Silverstone
at 2018-09-18T08:45:50Z
sandbox/_sandboxremote.py: Acquire artifact cache via Platform
The SandboxRemote used to construct its own CASCache which was
considered dangerous. This patch replaces that with acquisition of
the cache via the Platform singleton, hopefully eliminating issues
from having more than one artifact cache object in a single process.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
b587579f
by Tristan Van Berkom
at 2018-09-18T09:53:26Z
Merge branch 'danielsilverstone-ct/fix-654' into 'master'
sandbox/_sandboxremote.py: Acquire cache via Platform
See merge request BuildStream/buildstream!797
-
30b41959
by Tristan Van Berkom
at 2018-09-18T09:56:45Z
_artifactcache/artifactcache.py: Error out gracefully when push remote is mal-specified
When configuring a push remote and specifying either the client-cert
or the client-key, then both must be specified. This ensures we
get an informative error instead of a stack trace and BUG.
Fixes issue #625
-
41e8dc81
by Tristan Van Berkom
at 2018-09-18T09:56:45Z
tests/artifactcache/config.py: Added test for invalid push remote configuration
Test that we get the expected error when configuring a client-cert
without client-key, or the inverse.
-
97071b6e
by Tristan Van Berkom
at 2018-09-18T10:16:43Z
Merge branch 'tristan/fix-artifact-config-crash' into 'master'
Fix artifact config crash
Closes #625
See merge request BuildStream/buildstream!804
-
081dcafa
by Richard Maw
at 2018-09-18T13:22:38Z
fuse: Report the correct device number for devices
This fixes all devices being mapped to the non-existant device 0,
which prevents being able to use even safe devices like /dev/null
through the hardlinks FUSE layer.
-
d0425608
by Richard Maw
at 2018-09-18T13:22:38Z
FUSE: Mount with -odev in chroot sandbox
This is needed to permit access to the device nodes added to /dev
on Linux when FUSE is used as root.
The chroot sandbox only works with all privileges,
so there's no explicit check for being root
or having the appropriate capabilities.
A check for whether it's running as root isn't needed on Linux with bubblewrap
because /dev or its devices are mounted on top of the FUSE layer,
so device nodes are accessed directly rather than through the FUSE layer.
-
8430fdc7
by Richard Maw
at 2018-09-18T13:22:38Z
tests: test that integration commands can use /dev
-
d8450166
by Tristan Van Berkom
at 2018-09-18T13:50:15Z
Merge branch 'richardmaw/fix-chroot-sandbox-devices' into 'master'
fix chroot sandbox devices
See merge request BuildStream/buildstream!781
-
ba4da3a4
by knownexus
at 2018-09-18T16:45:09Z
Incorrect error when malformed project.conf
bst build returns "missing project.conf" when a project.conf is invalid
This results in an existing project with malformed yaml being dismissed
and attempts to make a new project
Added new exception
-
89a16e17
by knownexus
at 2018-09-18T16:45:09Z
Adding test for Invalid Yaml
-
72b59021
by Phillip Smyth
at 2018-09-19T08:48:51Z
Merge branch 'issue-642-Invalid_project.conf_seen_as_missing' into 'master'
Incorrect error when malformed project.conf
Closes #642
See merge request BuildStream/buildstream!792
-
ca811a4d
by Josh Smith
at 2018-09-19T09:25:21Z
Rework Skipped usage
The SKIPPED message type is now used to indicate the end of a task which
was successful without having to perform the given task.
This overhauls the use of `Queue.done()` and therefore queues do not
need to provide a processed/skipped return value from `done()`. Instead
this is replaced with the action of raising a `SkipJob` exception from
within `Queue.process()`.
-
16fbc3e3
by Josh Smith
at 2018-09-19T09:25:21Z
tests.py: Test skip on push
Adds a test to ensure that BuildStream alerts the user of a skipped push
when the remote already has the artifact cached.
-
ab56f693
by Josh Smith
at 2018-09-19T09:25:21Z
element.py: Remove redundant timed_activity
This removes the timed_activity for an element _push action. This is
unnecessary as the job is already being timed elsewhere.
-
198fbfe8
by Josh Smith
at 2018-09-19T09:25:21Z
cascache.py: Move push/pull messaging to cascache
Pulled/Pushed messages will no longer be produced from within
element.py, instead they will be produced during CasCache push() and
pull() appropriately.
Message consistency has also been improved.
-
213f7794
by Josh Smith
at 2018-09-19T09:25:21Z
cascache.py: Modify messaging API calls
Both pulling and pushing INFO messages are now status messages.
Calls to the messaging API through `self.context.message()` have now
been switched to `element.info`.
-
dddd6025
by Qinusty
at 2018-09-19T10:59:48Z
Merge branch 'Qinusty/skipped-rework' into 'master'
Add SkipJob for indicating a skipped activity
See merge request BuildStream/buildstream!765
-
16d9c6e5
by Tristan Van Berkom
at 2018-09-19T11:08:33Z
_frontend/status.py: Completely remove the blessings dependency from BuildStream
This actually improves reliability of the status bar because we
now disable it completely in the case that not all of the terminal
escape sequences are supported on the given terminal.
This replaces the few functions we were using, to move the cursor
up one line, move it to the beginning of the line, and to clear a
line, with low level functions provided by the curses module in
the standard library.
This change makes it easier for downstream distro package maintainers
to package BuildStream, particularly on Fedora.
Asides from changing _frontend/status.py, this commit includes the
following changes:
* _frontend/app.py: Use python isatty() function to determine if
we are connected to a tty, instead of relying
on blessings.
* setup.py: Remove the dependency on blessings.
-
7dd74b01
by Tristan Van Berkom
at 2018-09-19T11:27:55Z
Merge branch 'tristan/remove-blessings' into 'master'
_frontend/status.py: Completely remove the blessings dependency from BuildStream
See merge request BuildStream/buildstream!808
-
335d5a45
by Adam Jones
at 2018-09-19T13:00:45Z
Fix rst links for guideline links
-
667dd4ca
by Javier Jardón
at 2018-09-19T13:25:36Z
Merge branch 'adamjones/contributing-links' into 'master'
Fix rst link formatting for guideline links
See merge request BuildStream/buildstream!811
-
68ef69e4
by Tristan Van Berkom
at 2018-09-21T05:20:46Z
source.py: Fix re-instantiation
This fixes an issue where the re-instantiated Source used with
Source mirroring enabled is not completely initialized.
Failing to load the ref from the project.refs file for instance,
will result in a crash at `fetch` time.
This fixes issue #666
-
662c729f
by Tristan Van Berkom
at 2018-09-21T05:59:30Z
Merge branch 'tristan/fix-source-reinstantiation' into 'master'
source.py: Fix re-instantiation
Closes #666
See merge request BuildStream/buildstream!817
-
461a0588
by Jim MacArthur
at 2018-09-21T10:53:11Z
element.py: Remove early warning and check directory is not None
The check for directory should have always been here. The early warning
test doesn't work for `bst checkout` because caches haven't been configured
at the point of the test, so I've had to remove it.
-
aa9caaac
by Jim MacArthur
at 2018-09-21T10:53:11Z
_sandboxremote.py: Ignore return value of push_directory
The return value is always upload_vdir.ref.
-
2aae68c7
by Jim MacArthur
at 2018-09-21T10:53:11Z
cascache.py: make push_remote raise exception if no push remotes exist
Also add docstring to method and remove return value since it was useless
-
ca1bb72c
by Jim MacArthur
at 2018-09-21T10:53:11Z
tests/artifactcache/push.py: Ignore return value of push_directory
-
55c93a82
by Jim MacArthur
at 2018-09-21T11:26:55Z
Merge branch 'jmac/remote_exec_checkout_fix' into 'master'
Remote exec: Remove early warning and check directory is not None
See merge request BuildStream/buildstream!800
-
e209beb0
by Chandan Singh
at 2018-09-21T13:10:08Z
_stream.py: Ensure source-bundle's source directory exists
Currently, `source-bundle` command is entirely broken as it tries to stage the
sources in a directory that doesn't exist. Fix it by ensuring that we create
the necessary directories before calling any methods that try to use those
directories.
This fix comes with a regression test to ensure that the basic use-case
of `source-bundle` continues to work in future.
Fixes https://gitlab.com/BuildStream/buildstream/issues/651.
-
0b000518
by Chandan Singh
at 2018-09-21T13:56:55Z
Merge branch 'chandan/fix-source-bundle' into 'master'
Fix source-bundle command
Closes #651
See merge request BuildStream/buildstream!807
-
ef26043a
by Chandan Singh
at 2018-09-21T17:14:16Z
setup.py: Make website the primary homepage
-
1b2aed40
by Chandan Singh
at 2018-09-21T17:40:11Z
Merge branch 'chandan/update-project-homepage' into 'master'
setup.py: Make website the primary homepage
See merge request BuildStream/buildstream!795
-
da7e038b
by Jürg Billeter
at 2018-09-24T13:58:55Z
element.py: Fix cache check in non-strict mode
The behavior of __assert_cached() was changed when the keystrength
parameter was introduced. This restores the previous behavior.
Fixes #607.
Fixes: 3d308894 ("element.py: Cache the result of checking whether...")
-
86ea1173
by Jürg Billeter
at 2018-09-24T13:59:59Z
tests/frontend/rebuild.py: Add strict/non-strict rebuild test
Test rebuild that requires staging of weakly cached dependency.
This is a regression test for #607.
-
a76339de
by Jürg Billeter
at 2018-09-24T16:02:38Z
Merge branch 'juerg/rebuild' into 'master'
element.py: Fix cache check in non-strict mode
Closes #607
See merge request BuildStream/buildstream!822
-
b199afe6
by Jürg Billeter
at 2018-09-25T09:01:51Z
_artifactcache/cascache.py: Add _ensure_blob helper
This adds directory objects to the local repository before downloading
files in the directory. However, artifact references are still stored
only after downloading the complete directory and thus, there won't be
dangling references. This will anyway be required for partial download
support.
-
7d199322
by Jürg Billeter
at 2018-09-25T09:01:51Z
_artifactcache/cascache.py: Increase payload size limit for uploads
gRPC can handle 1 MiB payloads. Increase size limit from 64 KiB to speed
up uploads.`
-
e2e24015
by Jürg Billeter
at 2018-09-25T09:01:51Z
_artifactcache/casserver.py: Harmonize payload size limit
Use 1 MiB as payload size limit on the server side for both individual
downloads and batch uploads.
-
697d10f2
by Jürg Billeter
at 2018-09-25T09:01:51Z
_artifactcache/cascache.py: Use BatchReadBlobs
This uses BatchReadBlobs instead of individual blob download to speed up
artifact pulling, if the server supports it.
Fixes #554.
-
81c51dbf
by Jürg Billeter
at 2018-09-25T09:31:55Z
Merge branch 'juerg/cas-batch' into 'master'
_artifactcache/cascache.py: Use BatchReadBlobs
Closes #554
See merge request BuildStream/buildstream!813
-
2df7d140
by Jim MacArthur
at 2018-09-25T10:36:37Z
sandbox.py: Stop caching get_virtual_directory if get_directory is used
Also update the documentation for get_virtual_directory to make the
implications of using both methods clearer.
-
62f59382
by Jim MacArthur
at 2018-09-25T10:36:37Z
element.py/_assemble(): Call get_virtual_directory later.
-
8cea7b17
by Jim MacArthur
at 2018-09-25T10:58:40Z
Merge branch 'jmac/stop-caching-vdirs' into 'master'
Stop caching virtual directories if get_directory is used.
See merge request BuildStream/buildstream!818
-
83ab183e
by Tiago Gomes
at 2018-09-25T16:37:30Z
CI: test building freedesktop-sdk overnight
Closes #514.
-
c8594806
by Tiago Gomes
at 2018-09-25T17:03:55Z
Merge branch 'tiagogomes/issue-514' into 'master'
CI: test building freedesktop-sdk overnight
Closes #514
See merge request BuildStream/buildstream!826
-
fdbf9be1
by Tiago Gomes
at 2018-09-26T08:17:46Z
ci: update freedesktop-sdk ref
The current one doesn't build due server being down.
-
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
-
516e990e
by ctolentino8
at 2018-10-31T11:36:46Z
_frontend/app.py: Set correct element-path in interactive bst-init
-
b8a37a63
by Tristan Van Berkom
at 2018-11-01T10:16:25Z
Merge branch 'chiaratolentino/bst-init-interactive-elementpath' into 'master'
_frontend/app.py: Set correct element-path in interactive bst-init
See merge request BuildStream/buildstream!912
-
b27b592a
by Benjamin Schubert
at 2018-11-01T10:49:57Z
Remove dependency on pytest-runner
This includes a new command mimicking pytest-runner so that we
can drop this dependency
This was the only setup_requires dependency that we had and
will make like easier for people behind proxies
-
89ace5d7
by Benjamin Schubert
at 2018-11-01T11:16:36Z
Merge branch 'bschubert/remove-pytest-runner' into 'master'
Remove dependency on pytest-runner
See merge request BuildStream/buildstream!886
-
4cfabce8
by Angelos Evripiotis
at 2018-11-01T11:35:02Z
BREAK: manual.yaml: don't set any default env vars
Remove the 'MAKEFLAGS' and 'V' defaults.
Now that there is a specialised 'make' element, these make-specific
defaults don't make sense here. This element is meant to be a blank
slate for folks to build on.
Note that this is a breaking change, that will require some users to
make changes to their .bst files if they are expecting these environment
variable to be set.
_versions.py: BST_FORMAT_VERSION bumped to 18.
This fixes issue #718
-
48860aac
by Tristan Van Berkom
at 2018-11-01T12:01:04Z
Merge branch 'tristan/empty-manual-element' into 'master'
BREAK: manual.yaml: don't set any default env vars
Closes #718
See merge request BuildStream/buildstream!916
-
d868b409
by Daniel Silverstone
at 2018-11-01T13:40:24Z
_yaml.py: Implement `get()` for `ChainMap`
Since the core Python `ChainMap.get()` implements with:
self[key] if key in self else default
The double-chain-lookup is expensive. This simple change solves that
for our ChainMap derived structure. As such it improves matters
for #466 somewhat.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
7f79b9ce
by Tristan Van Berkom
at 2018-11-01T14:25:57Z
Merge branch 'danielsilverstone-ct/improve-chainmap-get' into 'master'
_yaml.py: Implement `get()` for `ChainMap`
See merge request BuildStream/buildstream!919
-
de59ebdb
by ctolentino8
at 2018-11-02T16:41:54Z
plugins/sources/pip.py: Accomodate characters '-','.','_' for packages
-
8d7cf806
by ctolentino8
at 2018-11-02T16:41:54Z
tests/integration/project/files: Remove pypi-repo
-
9c2f9bf7
by Chandan Singh
at 2018-11-02T17:09:46Z
Merge branch 'chiaratolentino/fix-pip-source-regex' into 'master'
plugins/sources/pip.py: Accomodate characters '-','.','_' for packages
See merge request BuildStream/buildstream!914
-
3788e701
by Jürg Billeter
at 2018-11-03T11:52:00Z
element.py: Pass bare_directory also to SandboxRemote()
Fixes: 825963b5 ("element: Make "--sysroot" take a bare directory")
-
82e971ef
by Jürg Billeter
at 2018-11-05T11:33:20Z
Merge branch 'juerg/remote-execution' into 'master'
element.py: Pass bare_directory also to SandboxRemote()
See merge request BuildStream/buildstream!928
-
62942bfd
by Valentin David
at 2018-11-05T12:14:20Z
Use less fetchers in overnight build to work-around limitations from servers.
Issue happens with sourceware.org server.
Fixes #742
-
442da2f9
by Javier Jardón
at 2018-11-05T12:41:54Z
Merge branch 'valentindavid/limit_fetchers_in_overnight_build' into 'master'
Use less fetchers in overnight build to work-around limitations from servers.
Closes #742
See merge request BuildStream/buildstream!929
-
0993de53
by Richard Maw
at 2018-11-05T16:41:05Z
dev-requirements: Update pytest dependency to 3.8
"_frontend/app.py: Set correct element-path in interactive bst-init"
added a dependency on the tmp_path test fixture, which was added by 3.8.
-
be8f0a54
by richardmaw-codethink
at 2018-11-05T17:08:43Z
Merge branch 'richardmaw/pytest-dep-update' into 'master'
dev-requirements: Update pytest dependency to 3.8
See merge request BuildStream/buildstream!930
-
bfb639bf
by Jürg Billeter
at 2018-11-05T17:18:12Z
element.py: Remove artifacts parameter from constructor
Get the artifact cache from the context instead.
-
ca855f91
by Jürg Billeter
at 2018-11-05T17:18:12Z
_elementfactory.py: Remove unused artifacts parameter from create()
-
15fed21c
by Jürg Billeter
at 2018-11-05T17:18:12Z
_project.py: Remove unused artifacts parameter from create_element()
-
0085d2aa
by Jürg Billeter
at 2018-11-05T17:18:12Z
element.py: Remove unused artifacts parameter from _new_from_meta()
-
f69b1117
by Jürg Billeter
at 2018-11-05T17:18:12Z
_project.py: Remove unused artifacts parameter from load_elements()
-
e398f877
by Jürg Billeter
at 2018-11-05T17:18:12Z
element.py: Do not include type name of artifact cache in cache key
The artifact cache backend does not affect build outputs and we anyway
no longer have pluggable artifact cache backends. This hardcodes
CASCache instead of removing the entry completely to avoid cache key
changes.
-
626d20ae
by Jürg Billeter
at 2018-11-05T17:18:12Z
Split up artifact cache and CAS cache
This changes CASCache from a subclass to a delegate object of
ArtifactCache. As the lower layer, CASCache no longer deals with
elements or projects.
Fixes #659.
-
ec04446b
by Jürg Billeter
at 2018-11-05T17:51:39Z
Merge branch 'juerg/cas' into 'master'
Split up artifact cache and CAS cache
Closes #659
See merge request BuildStream/buildstream!922
-
9a045080
by Josh Smith
at 2018-11-06T13:23:19Z
utils: Fix _pretty_size() for sizes > 1024T
-
d3a07e6b
by Josh Smith
at 2018-11-06T13:23:19Z
Add regression test for _pretty_size
-
0c09fb9c
by richardmaw-codethink
at 2018-11-06T14:12:20Z
Merge branch 'Qinusty/unit-test-utils' into 'master'
Fix issue with _pretty_size with large numbers of bytes
See merge request BuildStream/buildstream!799
-
b4eec489
by Jim MacArthur
at 2018-11-06T16:44:14Z
_sandboxremote.py: Use the standard SandboxError.
Replaces the custom one which was erroneously added during development.
Fixes #746.
-
1f7acf74
by Jim MacArthur
at 2018-11-06T17:16:31Z
Merge branch 'jmac/remote-sandbox-errors' into 'master'
_sandboxremote.py: Use the standard SandboxError
Closes #746
See merge request BuildStream/buildstream!931
-
8e64ccef
by James Ennis
at 2018-11-07T11:06:11Z
using_config.rst: Update our instructions for how we declare caches in user config
-
09ab676d
by James Ennis
at 2018-11-07T11:06:11Z
format_project.rst: Update instructions regarding how we declare remote caches in project.conf
-
f514124f
by James Ennis
at 2018-11-07T11:06:11Z
using_configuring_artifact_server.rst: Remove examples and redirect to user config/project config
-
029ba17d
by richardmaw-codethink
at 2018-11-07T11:32:20Z
Merge branch 'jennis/docs_patch' into 'master'
Update our instructions/examples regarding how we declare remote caches
See merge request BuildStream/buildstream!932
-
261e2cd3
by Jim MacArthur
at 2018-11-07T12:02:43Z
element.py: Use _force_rmtree instead of custom code.
There are arguments for and against using onerror - see issue #735
for details.
-
8931e42c
by Jim MacArthur
at 2018-11-07T12:26:06Z
Merge branch 'jmac/make_writable_combination' into 'master'
Use _force_rmtree instead of custom code.
Closes #735
See merge request BuildStream/buildstream!927
-
6ccfab0b
by Valentin David
at 2018-11-07T16:28:47Z
Fix cache corruption by scripts when layout and integration commands are used
Root directory was marked as a non-artifact mount, so not using
SafeHardLink. However integration commands executed with write access
to the root directory.
Fixes #749
-
f24e20e9
by richardmaw-codethink
at 2018-11-07T16:59:50Z
Merge branch 'valentindavid/script-artifact-corruption' into 'master'
Fix cache corruption by scripts when layout and integration commands are used
Closes #749
See merge request BuildStream/buildstream!934
-
e28f668a
by Valentin David
at 2018-11-08T09:34:11Z
Fix infinite recursion in default strip debug command
Fixes #645.
-
83d15350
by Valentin David
at 2018-11-08T10:01:39Z
Merge branch 'valentindavid/fix-recursive-strip-debug' into 'master'
Fix infinite recursion in default strip debug command
Closes #645
See merge request BuildStream/buildstream!918
-
9f0e12f1
by Benjamin Schubert
at 2018-11-08T10:21:12Z
Move bwrap checks in platform/linux.py
Remove the bwraps checks from _site.py and put them in platform.linux
which is the only place where they are run.
This allows the removal of a double level of caching, making
reasoning about tests easier
-
cf2e0059
by Benjamin Schubert
at 2018-11-08T10:21:12Z
conftest.py: Ensure platform is not maintained between tests
This removes the `_instance` on the platform object that we use
for caching and not recreating the object everytime at the start
of every test.
This is to ensure our tests share the least amount of state.
The performance penalty is from 5 to 10% accross the whole test suite.
The readings were done 5 times for each before and after the change
and on the same computer.
-
c51ba01b
by Benjamin Schubert
at 2018-11-08T10:21:12Z
Test that helpful messages are raised when missing dependencies
This adds a `reason` to the SandboxEror thrown in sandboxdummy
to be able to understand where the error comes from
-
f116b9b7
by Benjamin Schubert
at 2018-11-08T11:07:12Z
Merge branch 'bschubert/tests-no-chroot-linux' into 'master'
test behavior when there is no sandbox on Linux
Closes #696 and #736
See merge request BuildStream/buildstream!921
-
cc2e6ae5
by Valentin David
at 2018-11-08T12:41:36Z
Fix bug with root mounted as non-artifact in script plugin.
The issue was introduced by 6ccfab0b1b25990e406446d5cbe5aee83a5e158a.
-
e578a89f
by Valentin David
at 2018-11-08T13:11:10Z
Merge branch 'valentindavid/fix-script-install-root' into 'master'
Fix bug with root mounted as non-artifact in script plugin.
Closes #756 and #749
See merge request BuildStream/buildstream!941
-
c0a8bb66
by Angelos Evripiotis
at 2018-11-08T15:49:16Z
contributing: WIP again to be kind to reviewers
As someone coming from GitHub to GitLab, I was pleasantly surprised by
the 'filter by WIP status' option.
To make sure we get the most out of it, add a guideline to keep the
filter clean, to reduce reviewer burden.
-
f7231e90
by Angelos Evripiotis
at 2018-11-08T15:49:16Z
contributing: non-WIP should always be landable
I was recently surprised that we don't prefer addressing review comments
in 'fixup!' commits.
Coming from GitHub, I've found that fixup commits make it easier for
reviewers to see what has changed since their last review. The idea is
to use '--autosquash' before landing to clean up the history again.
It's a pleasant surprise that it's easy to keep track of what changed in
merge-requests between pushes, so we can always keep the history clean.
Document this, so folks like me can see the light sooner.
-
f7643440
by Angelos Evripiotis
at 2018-11-08T15:49:16Z
contributing: emphasise the 'why' in commits
Explain why it's useful to mention the decisions made for a change and
provide links for background, e.g. issue numbers.
My general experience of git histories is that folks don't do enough
explaining, so it's great we have a contributing section for it.
I've found it's easier for folks to stick to rules when they know the
practical reasons for them, so provide some.
-
dd5e7b04
by Angelos Evripiotis
at 2018-11-08T16:17:04Z
Merge branch 'aevri/contributing_gitlab' into 'master'
Add more to GitLab-relevant parts of contributing
See merge request BuildStream/buildstream!935
-
fe33e328
by James Ennis
at 2018-11-08T17:54:18Z
using_config.rst: Add documentation to showing how to impose quotas on the local cache
This patch partially resolves #700
-
09faf002
by James Ennis
at 2018-11-08T17:54:18Z
artifactcache.py: Fix misleading error message when using % cache quota
Due to the changed Exception message, this patch also changes
the test_parse_size_over_1024T test in misc.py
-
d153453c
by Javier Jardón
at 2018-11-08T18:22:54Z
Merge branch 'jennis/quota_declaration_fix' into 'master'
Add local cache expiry documentation and fix misleading error message when specifying a percentage cache quota
Closes #700
See merge request BuildStream/buildstream!939
-
7738f6df
by Daniel Silverstone
at 2018-11-09T11:25:44Z
plugin.py: Redirect DEBUG from `__del__` to `sys.stderr`
Previously, debug messages from `Plugin.__del__()` went to stdout
which was a problem for the test suite in extremely rare and hard to
predict circumstances. This corrects that by sending the message to
stderr where all the rest of the messages tend to go.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
62f59eaa
by Valentin David
at 2018-11-09T13:30:06Z
Merge branch 'danielsilverstone-ct/plugin-destroy-debug-to-stderr' into 'master'
plugin.py: Redirect DEBUG from `__del__` to `sys.stderr`
See merge request BuildStream/buildstream!944
-
35ec6b6a
by Jim MacArthur
at 2018-11-09T14:58:22Z
_casbaseddirectory.py: Enable direct CAS-to-CAS import.
Fixes issue #574.
-
b93100ec
by Jim MacArthur
at 2018-11-09T14:58:22Z
_casbaseddirectory: Fix order of list_modified_paths
This will now return paths in the same order as list_relative_paths.
-
78691fa0
by Jim MacArthur
at 2018-11-09T14:58:22Z
virtual_directory_import.py: New test
-
7ce6581b
by Jim MacArthur
at 2018-11-09T15:25:46Z
Merge branch 'jmac/cas_to_cas_v2' into 'master'
Direct CAS-to-CAS import
Closes #574
See merge request BuildStream/buildstream!911
-
6f4351ec
by Benjamin Schubert
at 2018-11-09T16:53:42Z
source.py: don't let StopIteration propagate to silence() contextmanager
As per PEP 0479 (https://www.python.org/dev/peps/pep-0479/),
StopIteration thrown in context managers are not valid starting from
Python 3.7.
-
e6e03451
by richardmaw-codethink
at 2018-11-12T11:05:15Z
Merge branch 'bschubert/fix-silence-stopiteration-pep-0479' into 'master'
source.py: don't let StopIteration propagate to silence() contextmanager
See merge request BuildStream/buildstream!945
-
ae5ccd76
by Phillip Smyth
at 2018-11-12T14:57:51Z
_project.py: Validate nodes early in Project._load
_project.py: Added validate_nodes() helper function to prevent duplicate lists
element-path was being used before node validation resulting in uncaught errors
-
56a54161
by Phillip Smyth
at 2018-11-12T14:57:51Z
tests/frontend: Add test for invalid element-path
-
e55a9703
by Jürg Billeter
at 2018-11-12T15:44:45Z
Merge branch 'element-path_not_validated' into 'master'
Element path not validated before use
See merge request BuildStream/buildstream!937
-
c87d6e45
by Valentin David
at 2018-11-14T11:43:33Z
Run tests on aarch64
Fixes #755
-
16b01489
by Valentin David
at 2018-11-14T11:43:33Z
Disable cachekey tests on other architectures than x86_64
-
85046b29
by Valentin David
at 2018-11-14T11:43:33Z
Disable tests on example on other architectures than x86_64
-
dd5a073b
by Valentin David
at 2018-11-14T11:43:33Z
Add support for aarch64 in a test
-
c5d72ae7
by Valentin David
at 2018-11-14T11:52:53Z
Test aarch64 only overnight
-
264a57f6
by Javier Jardón
at 2018-11-14T12:22:03Z
Merge branch 'valentindavid/integration-tests-aarch64' into 'master'
Run tests on aarch64
Closes #369 and #755
See merge request BuildStream/buildstream!948
-
da735e56
by Richard Maw
at 2018-11-14T13:30:34Z
_platform/linux.py: Move get_bwrap_version into _site.py
It's inconvenient to have to create a Linux platform to parse the bwrap version
and we want to get the version in a consistent manner.
-
e7633500
by Richard Maw
at 2018-11-14T13:30:34Z
buildstream/sandbox/_sandboxbwrap.py: Distinguish sandbox failure from command failure
If `bwrap` fails to set up the sandbox and start the payload command
it won't write an exit-code in --json-status-fd,
so we can report if it was a sandboxing failure if we don't get exit-code status
and a payload command failure if we do and it's non-zero.
Closes https://gitlab.com/BuildStream/buildstream/issues/286
-
e9e08823
by Richard Maw
at 2018-11-14T13:30:34Z
tests/testutils/site.py: Check for bwrap supporting --json-status-fd
-
90ca007e
by Richard Maw
at 2018-11-14T13:30:34Z
tests/integration/sandbox-bwrap.py: Test distinguishing sandbox exit code from command
-
327b19dd
by richardmaw-codethink
at 2018-11-14T13:59:16Z
Merge branch 'richardmaw/distinguish-sandboxing-build-fail' into 'master'
Distinguish between bubblewrap sandboxing failure and command failure
Closes #286
See merge request BuildStream/buildstream!868
-
082b3811
by Angelos Evripiotis
at 2018-11-15T19:48:12Z
contributing: add guidance on unit tests
Decrease uncertainty around whether unit tests are welcome in the
project or not.
-
b5b79056
by Jürg Billeter
at 2018-11-15T20:24:58Z
Merge branch 'aevri/unit_tests' into 'master'
contributing: add guidance on unit tests
See merge request BuildStream/buildstream!943
-
199bfff1
by Tom Pollard
at 2018-11-17T13:07:59Z
Add cli main and user config option for 'pull-buildtrees' context.
_context.py: Add pull_buildtrees global user context, the default
of which is set to False via the addition of pull-buildtrees to
userconfig.yaml cache group.
_frontend/app.py & cli.py: Add --pull-buildtrees as a bst main
option, which when passed will override the default or user defined
context for pull_buildtrees.
tests/completions/completions.py: Update for the added flag.
-
454dcaf1
by Tom Pollard
at 2018-11-17T13:07:59Z
Don't pull artifact build trees by default.
The addition of cached build trees being included in element
artifacts has led to mostly redundant download overheads when
pulling from a remote artifact server. As such the default behaviour
of pull shouldn't fetch the build tree object if available.
element.py: extend relevant pull logic for specified subdir
consideration and ensure push logic does not lead to partial
artifact pushes. Change assumption that the buildtree can be
extracted if artifact is cached. __cached_buildtree() and
__pull_directories() helpers added.
_artifactcache/: artifactcache.py & cascache.py inclusion of
helper functions for subdir artifact checking & fetching, fetch
logic extended to only pull required artifact directories.
extract & checkout updated to handle full/partial operation.
tests/: addition of integration test pullbuildtrees.py,
buildtrees.py adapted cli options, testutils/artifactshare.py
has_artifact changed to return artifact digest on true condition.
-
0d309478
by Jürg Billeter
at 2018-11-17T13:49:58Z
Merge branch 'tpollard/494' into 'master'
Don't pull artifact buildtrees by default
See merge request BuildStream/buildstream!786
-
27932739
by Benjamin Schubert
at 2018-11-19T09:46:39Z
plugins/sources/pip.py: also look for python version named "python"
In some virtual environments, we might not have the binary with the
exact python version, which would lead the current pip plugin to
fail to find a working pip version.
This adds "python" at the start of the list of valid python versions
-
ea2de561
by Benjamin Schubert
at 2018-11-19T10:19:24Z
Merge branch 'bschubert/fix-pip-python' into 'master'
plugins/sources/pip.py: also look for python version named "python"
Closes #758
See merge request BuildStream/buildstream!942
-
f23b6031
by Benjamin Schubert
at 2018-11-19T11:39:51Z
tests/frontend/buildtrack.py: check for success after invocation
Previously the result of the first call in test_build_track was not
checked to be successful, which would lead to potential erros later on
that were hard to debug.
Let's check it everytime
-
a6defc0b
by Benjamin Schubert
at 2018-11-19T11:39:51Z
Fix os.rename in git source element to correctly handle error codes
According to the documentation
(https://www.unix.com/man-page/POSIX/3posix/rename/), when the directory
already is there, either EEXIST or ENOTEMPTY could be thrown.
Previously only ENOTEMPTY was checked.
Done:
- Separated the move into its own function
- Check for both errors
- Create unit tests for it, covering most test cases
-
88089d2d
by Benjamin Schubert
at 2018-11-19T11:39:51Z
Extract atomic move function to utils.py
Moving atomically a file/directory can be tricky since different
errors might be raised for the same underlying problem.
Having a utility function to reduce this discrepancies will help
in ensuring we have correct behavior
-
fd9e46be
by Benjamin Schubert
at 2018-11-19T11:39:51Z
cascache.py: use move_atomic instead of manual error checking
-
d32e0b83
by Benjamin Schubert
at 2018-11-19T11:39:51Z
sources/pip.py: Use move_atomic instead of manual os.rename
This uses move_atomic insteand of the manual os.rename and manual error
checking and throws a SourceError for consistency with other modules.
-
6f837118
by Benjamin Schubert
at 2018-11-19T12:22:40Z
Merge branch 'bschubert/fix-atomic-move-git-repo' into 'master'
Fix os.rename in git source element to correctly handle error codes
See merge request BuildStream/buildstream!938
-
30b72244
by Chandan Singh
at 2018-11-19T12:35:01Z
buildstream/_pipeline.py: Simplify error message for assert_consistent()
Currently, `Pipeline.assert_consistent()` prints an error message like
the one below when certain elements have inconsistent sources:
```
...
Element: hello.bst is inconsistent
Source tar source at hello.bst [line 16 column 2] is missing ref
...
```
Drop the word "Source" from the beginning of the message as
"Source <source-kind> source ..." is kind of awkward to read.
-
76c5d2f8
by Chandan Singh
at 2018-11-19T12:35:01Z
Add `bst source-checkout` command
As discussed in
https://mail.gnome.org/archives/buildstream-list/2018-September/msg00064.html,
add `bst source-checkout` command. This will allow users to checkout
sources for a given target.
* _frontend/cli.py: Add source-checkout command
* _pipeline.py: Add assert_sources_cached() method
* _stream.py: Add source_checkout method, abstract out
__check_location_writable() method that used to part of checkout()
-
9f629638
by Chandan Singh
at 2018-11-19T13:03:36Z
Merge branch 'chandan/source-checkout' into 'master'
Add `bst source-checkout` command
See merge request BuildStream/buildstream!820
-
bc827cc8
by Abderrahim Kitouni
at 2018-11-19T14:55:15Z
plugins/elements/cmake.yaml: always specify variable types
cmake sometimes misinterprets relative paths as relative to the current directory
if this is not specified. See freedesktop-sdk/freedesktop-sdk#431
adjust tests/format/variables.py accordingly.
-
5fbc5f41
by Valentin David
at 2018-11-19T15:31:05Z
Merge branch 'abderrahim/cmake-variable-types' into 'master'
plugins/elements/cmake.yaml: always specify variable types
Closes #761
See merge request BuildStream/buildstream!947
-
06e28860
by Benjamin Schubert
at 2018-11-19T15:52:24Z
Don't cache sandbox errors
Sandbox errors (like missing host tools) are dependent on the host
system and rarely on what is actually done.
It is therefore better to not cache them as they are subject to
change between two runs.
Also add test to ensure sandbox failure are not cached
-
dd36cfbc
by Benjamin Schubert
at 2018-11-19T15:52:24Z
element.py: Only cache on element error or success
Reverse the way we were handling caching by only caching
when we know it's a problem with the build or the build is a
success in order not to cache transient errors.
-
eac7274d
by Benjamin Schubert
at 2018-11-19T16:29:07Z
Merge branch 'bschubert/dont-cache-errors-from-host-tools' into 'master'
Don't cache sandbox failures
Closes #727
See merge request BuildStream/buildstream!895
-
625dfe1f
by Chandan Singh
at 2018-11-19T16:41:17Z
NEWS: Add entry for the new source-checkout command
`bst source-checkout` command was recently added in
https://gitlab.com/BuildStream/buildstream/merge_requests/820. Add a
NEWS entry for the new command.
-
d4f12184
by Chandan Singh
at 2018-11-19T17:15:10Z
Merge branch 'chandan/source-checkout-news' into 'master'
NEWS: Add entry for the new source-checkout command
See merge request BuildStream/buildstream!960
-
ba6c96e8
by Richard Maw
at 2018-11-19T19:54:30Z
CasBasedDirectory: Change constructor to take a CASCache instead of a Context
The Context was only used to obtain a reference to the CASCache
and set the unused cas_directory field.
-
8a0dc3a3
by Jürg Billeter
at 2018-11-19T19:54:30Z
tests/testutils/artifactshare.py: Do not create a fake context
The fake context did not set the cache quota, triggering an error. With
CASCache now separate from ArtifactCache, we can instantiate a CASCache
without context.
-
8722aced
by Jürg Billeter
at 2018-11-19T19:54:30Z
tests/plugins/pipeline.py: Load context default values
-
fc56ffa4
by Jürg Billeter
at 2018-11-19T19:54:30Z
_context.py: Drop duplicated default values for user configuration
The default values are in userconfig.yaml, together with the
documentation. The default values should not be duplicated in
_context.py.
-
3f663d82
by Jürg Billeter
at 2018-11-19T20:36:57Z
Merge branch 'juerg/context-default-values' into 'master'
_context.py: Drop duplicated default values for user configuration
See merge request BuildStream/buildstream!953
-
b498cce7
by Angelos Evripiotis
at 2018-11-20T11:17:38Z
_yaml: document node_get()'s default_value arg
-
eb2d376f
by Angelos Evripiotis
at 2018-11-20T11:17:38Z
_context: allow 'terminate' for scheduler.on-error
Enable this option of 'terminate', which is mentioned in userconfig.yaml
and handled in _frontend/app.py:_handle_failure(). It appears to have
been left out of the valid_actions as an oversight.
Originally introduced in
https://gitlab.com/BuildStream/buildstream/commit/2622d5da9bd9fefd87436613d6e3e9770fdd0f28
-
b81c4333
by Angelos Evripiotis
at 2018-11-20T11:17:38Z
_context: refactor, extract _node_get_option_str
Use a new helper function to simplify working with nodes that can only
accept certain strings. This will be used when adding the prompt.*
config options.
In later work we can see if this function would be useful elsewhere, and
could be added to '_yaml.py'.
-
27ca6593
by Angelos Evripiotis
at 2018-11-20T11:19:33Z
Add prompt.auto-init buildstream.conf option
Provide an option in buildstream.conf to disable the 'Would you like to
...' prompt when we cannot resolve a project.
Some users prefer not to be interrupted by such prompts, so pave the way
to creating options to disable all those that might get in the way.
Follow the example of the advice.* options 'git-config', and create a
namespace for these UI options grouped by behaviour, rather than an
over-reaching 'ui.*' namespace. In later work perhaps we'll also add
'advice.*' options.
Add a NEWS item for this.
-
7ae3a3d2
by Angelos Evripiotis
at 2018-11-20T11:43:49Z
Add prompt.workspace-... options
Provide options in project.conf to disable the 'Are you sure ...'
prompts when making destructive changes:
- Add prompt.really-workspace-close-remove-dir
- Add prompt.really-workspace-reset-hard
Add a NEWS item for these.
-
8071c00c
by Angelos Evripiotis
at 2018-11-20T12:12:11Z
Merge branch 'aevri/prompt-config' into 'master'
Add 'prompt.*' config options to buildstream.conf
See merge request BuildStream/buildstream!887
-
fd41b0b5
by Raoul Hidalgo Charman
at 2018-11-20T16:32:10Z
_sandboxremote.py: Add sigterm handler that sends CancelOperation
-
c6306b88
by Jürg Billeter
at 2018-11-20T16:59:45Z
Merge branch '725-job-cancellation-on-remote-builds' into 'master'
_sandboxremote.py: Add sigterm handler that sends CancelOperation
Closes #725
See merge request BuildStream/buildstream!900
-
9fa8a881
by James Ennis
at 2018-11-20T17:00:42Z
_yaml.py: Fix incorrect error message
This patch ensures that we receive an appropriate error
message if we specify an absolute path that leads within
the project.
-
fb8860db
by Jürg Billeter
at 2018-11-20T17:32:58Z
Merge branch 'jennis/less_restrictive_pathways' into 'master'
Fix warning when using an absolute path which exists inside the project
See merge request BuildStream/buildstream!956
-
87751350
by Benjamin Schubert
at 2018-11-20T18:10:48Z
gitlab-ci.yml: Use CI_PROJECT_DIR instead of $(pwd) for cache
-
8668df9f
by Benjamin Schubert
at 2018-11-20T18:10:48Z
Export variables globally for less repetition.
This doesn't change the test behavior and enable for better
composability of tests
-
cc6a7f0d
by Benjamin Schubert
at 2018-11-20T18:10:48Z
gitlab-cy.yml: make linux-tests-template more composable.
This will allow for further de-duplication of work.
-
eb37dd89
by Benjamin Schubert
at 2018-11-20T18:10:48Z
gitlab-ci.yml: remove unused artifacts for unix tests
The unix-logs is always empty, there is therefore no reasons of keeping
it there
-
e030b48e
by Benjamin Schubert
at 2018-11-20T18:10:48Z
gitlab-ci.yml: use template for unix tests
This makes all tests use the same template, which makes reasoning
about them simpler
-
57e6358f
by Benjamin Schubert
at 2018-11-20T18:10:48Z
Ensure tests requiring bubblewrap are correctly marked
-
e70dd1f8
by Benjamin Schubert
at 2018-11-20T18:10:48Z
gitlab-ci.yml: Add linux without brwap/ostree to ensure tests behave
This allows us to make sure that tests behave nicely while missing brwap
and ostree.
-
f7cb4386
by Benjamin Schubert
at 2018-11-20T18:10:48Z
gitlab-ci.yml: Extract test command as a variable
This removes the need of having it synchronized in multiple places
-
7f316a76
by Benjamin Schubert
at 2018-11-20T18:41:03Z
Merge branch 'bschubert/add-fedora-nobwrap-tests' into 'master'
Add tests for fedora with no bubblewrap available
See merge request BuildStream/buildstream!949
-
a50c598e
by Benjamin Schubert
at 2018-11-21T09:24:15Z
utils.py: Ensure move_atomic booleans are keyword only arguments
This is to be coherent with the rest of the codebase
-
b2f604b8
by Benjamin Schubert
at 2018-11-21T09:24:15Z
utils.py: improve documentation of move_atomic
-
daca0c01
by Benjamin Schubert
at 2018-11-21T09:52:42Z
Merge branch 'bschubert/mr938-comments' into 'master'
Followup on MR 938, addressing additional comments
See merge request BuildStream/buildstream!958
-
050cd1bd
by Tom Pollard
at 2018-11-21T11:37:48Z
tests/plugin/pipeline.py: Avoid using host user conf
create_pipeline was passing no config parameter to context.load,
leading to _context.py loading in the host's buildstream user conf
when running tests locally, potentially leading to unwanted errors.
-
58353aad
by Jürg Billeter
at 2018-11-21T14:29:49Z
Merge branch 'tpollard/pipelinehostconfig' into 'master'
tests/plugin/pipeline.py: Avoid using host user conf
See merge request BuildStream/buildstream!961
-
2022c3e8
by William Salmon
at 2018-11-21T15:53:03Z
tests/frontend/workspace.py: Refactor support function
The Refactor now makes it possible to test for the forth coming multi
element workspace open commands and to test for failure.
-
7bdd44b2
by William Salmon
at 2018-11-21T15:53:03Z
Workspace CLI update
This is to update the workspace CLI to as agreed on the mailing list
https://mail.gnome.org/archives/buildstream-list/2018-September/msg00046.html
This patch also introduces the default workspace directory.
-
6612e708
by William Salmon
at 2018-11-21T15:53:03Z
Added a news item for workspace open changes
-
4d6e2cd3
by Will Salmon
at 2018-11-21T16:20:26Z
Merge branch 'willsalmon/defaultWorkspaces' into 'master'
Updated Workspace CLI
See merge request BuildStream/buildstream!897
-
dddf0eaa
by Valentin David
at 2018-11-22T11:12:53Z
.gitlab-ci.yml: Bump version of fd.o SDK and bst_external in overnight tests
-
abef70fe
by Javier Jardón
at 2018-11-22T11:41:31Z
Merge branch 'valentindavid/overnight-tests-bump-fdo-sdk-version' into 'master'
Bump version of fd.o SDK and bst_external in overnight tests
See merge request BuildStream/buildstream!962
-
986d6231
by Jürg Billeter
at 2018-11-22T16:22:11Z
source.py: Add optional _get_local_path() method
-
823f693c
by Jürg Billeter
at 2018-11-22T16:22:15Z
local.py: Implement _get_local_path()
-
4ad91136
by Jürg Billeter
at 2018-11-22T16:22:19Z
_loader.py: Use Source._get_local_path() for subprojects
This eliminates unneeded copies of the project directory for junctions
with a single local source.