| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Now that we consider the arch and os for every artifact, lets
bump the core artifact version to make this trackable.
|
|
|
|
|
|
| |
Do this by default for every element, later we will have
to handle it differently when supporting projects which
build on specific arches with virtualization or networked workers.
|
| |
|
|
|
|
|
|
| |
This was pushed accidentally.
This reverts commit 34a60189be63dc86d333ca895ce44bd24adb43c3.
|
| |
|
|
|
|
|
|
|
|
| |
SafeHardlinks FUSE needs to hold file descriptors for all processes in
the sandbox. Avoid hitting the limit too quickly by increasing the soft
limit to the maximum.
Fixes #232
|
|
|
|
|
|
| |
jinja2 2.10 import time has been divided by two compared to Jinja 2.9.6
Fixes #194
|
| |
|
| |
|
|
|
|
|
|
| |
The key change is to document the correct usage of the conf-local
and conf-global style options, as it was previously impossible to
figure that out from the documentation.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At present, BuildStream supports source-specific workspaces. This patch
makes workspaces element-wide. This will bring workspaces closer to what
the build area looks like inside the sandbox when the build actually
happens.
As part of this change, format of `.bst/workspaces.yaml` file will also
change. Previously, each element used to have a dict mapping each source
to its workspace directory. Now, each element will directly map to its
workspace directory.
If users have existing workspaces open, this patch tries to cope with it
but in some cases, it is not possible to reliably convert workspace
config from old format to new format. When an element has workspace open
for just one source, we assume that to be the workspace directory. But
if there were more than one workspaces associated with an element,
BuildStream will simply error out describing the issue.
Note that the actual contents of the workspace directory are not changed
in any case. So, if an element had multiple sources associated with it
but only had workspace open for source, the other sources will not be
automatically staged in the workspace unless the user runs `workspace
reset` or something equivalent.
Part of #209.
|
|
|
|
|
| |
The 'ctx' parameter is carefully threaded through to 'complete_target',
but it doesn't actually use it. Remove the parameter from unused places.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes most of the usages of pkg_resources from the codebase, helping
the goal of getting rid of that completely.
With this change, version number is generated during install and embedded into
`__version__` which is then imported by root level `__init__`. From there,
it is used by other parts of the codebase when needed.
Generated `__version__` file is ignored and not tracked by git to prevent
unnecessary 'changes' messages and accidental commits of that file.
|
|
|
|
|
|
|
| |
This change monkey patches setuptools' code generation functionality, so
that pkg_resources won't be imported in the generated file.
Fixes #172
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This was done so that the files can be re-used with different
project.conf.
|
| |
|
|
|
|
| |
staging artifacts
|
|
|
|
|
|
|
|
|
| |
* Adds the 'overlap-whitelist' field to elements' public data. This is a
list of globs that match files that the element is allowed to overlap
other elements with.
* Adds the project-wide 'fail-on-overlaps' field. If set,
non-whitelisted overlaps will raise an error instead of printing a
warning.
|
| |
|
|
|
|
|
|
|
| |
In case a source with an open workspace is tracked and it's ref gets
updated, BuildStream should inform the user that the new ref will not be
picked up so long as the workspace is open. To start using the updated
ref, the existing workspace will have to be closed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This functionality is only supported for sources which have an open
workspace. When such sources are present, the workspace directory will
be mounted directly inside the sandbox. As opposed to the default
behavior, which is to copy files inside the sandbox.
This will save time when building large projects as only those files
will need be re-compiled that have been modified during two consecutive
builds (assuming the underlying build system supports such behavior).
A few things to note regarding this behavior:
- If there are any `configure-commands` present, they will run only once
for each open workspace. If an element has multiple workspaces and any
one of them is opened/closed, they will be executed again on the next
run. But, modifying the contents of a workspace will not trigger the
`configure-commands` to be executed on the next run.
- Workspaced builds still leverage the cache. So, if no changes are made
to the workspace, i.e. no files are modified, then it will not force a
rebuild.
Fixes #192.
|
|
|
|
| |
Do not depend on caller calling it on its own.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Do not consider pull as pending if pull failed. This is required to
allow fallback to fetch and build after pull failure.
|
|
|
|
|
|
| |
This fixes strong cache key handling when the local cache contains an
artifact that matches the weak cache key and the remote cache contains
an artifact that matches the strict cache key.
|
|
|
|
|
|
|
| |
This moves the pull status logic from PullQueue to Element.
As PullQueue.process() simply calls Element._pull(), it doesn't make
sense to keep the status logic in PullQueue. This is also required to
use the pull status in other places without code duplication.
|
|
|
|
|
| |
Wait for cache to become queryable instead of simply fetching the
sources.
|
|
|
|
|
| |
Wait for cache to become queryable instead of simply skipping the
element.
|
|
|
|
|
|
| |
Queue sometimes called ready() before skip() and sometimes it didn't.
This change consolidates the two methods to ensure we always determine
the correct status.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The strict cache key is preferred when pulling or extracting artifacts
in non-strict mode, before falling back to the weak cache key. This
means that the strict cache key must be available before the cache is
queried.
The strict cache key is also sufficient for querying caches using strong
cache keys. Do not defer those cache queries.
Fixes #202
|
|
|
|
| |
Fixes: bc492fa8 ("Use explicit element state updates")
|
|
|
|
|
|
|
|
| |
TrackQueue must call _set_ref() for all sources, otherwise the source
will never get out of the inconsistent state. This fixes --track when
using local sources.
Fixes: 03412a9e ("Use explicit source state updates")
|
|
|
|
|
|
|
| |
Source.track() may return None when tracking is not available. Handle
this identical to the case where track() returns the current ref.
Fixes #201
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is intended to make things easier to find for the
various types of people searching for stuff.
o The installation instructions remain on the main page.
o Three main separate pages have been created
- Using BuildStream
- Authoring BuildStream projects
- Core API reference, for plugin authors
o The "Authoring projects" section swallows the
previous plugin index; so one can find the plugin one
is looking for on the same page as the rest of the format
docs
o The plugin authoring section has been swallowed by the
core API reference section, with a note that this is useful
especially for plugin authors.
|
|
|
|
|
| |
This adds the _update_state() method to the Source class, similar to the
corresponding method in the Element class.
|
|
|
|
|
| |
_force_inconsistent is too low level. Keep that detail contained in the
Source class.
|
|
|
|
|
| |
Do not mark target element as inconsistent for `bst source-bundle` and
`bst workspace open` if tracking is disabled.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Before:
[--:--:--] WARNING Failed to fetch remote refs from ssh://ostree@ostree.baserock.org:22000/cache: BuildStream did not connect successfully to the shared cache ssh://ostree@ostree.baserock.org:22000/cache: SSH error: ssh: connect to host ostree.baserock.org port 22000: Connection refused
After:
[--:--:--] WARNING Failed to fetch remote refs from ssh://ostree@ostree.baserock.org:22000/cache. ssh: connect to host ostree.baserock.org port 22000: Connection refused
|
|
|
|
|
| |
This does not introduce a performance gain alone, but importing pkg_resources
is costly at the moment and can be avoided until it is actually needed.
|
|
|
|
|
|
|
|
| |
A LocalPath was being passed into os.path.isabs, which failed when it
tried to call the path's startswith method.
Converting it to a string before using _yaml.dump seemed to solve the
problem.
|