summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tests/cachekey: Updating cache key test for new artifact versioncache-keys-os-archTristan Van Berkom2018-02-0724-24/+24
|
* _project.py: Bumping artifact version for execution environmentTristan Van Berkom2018-02-071-1/+1
| | | | | Now that we consider the arch and os for every artifact, lets bump the core artifact version to make this trackable.
* element.py: Consider execution environment in cache keyTristan Van Berkom2018-02-071-0/+10
| | | | | | 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.
* _pipeline.py: Silence some messages while interrogating source consistencyTristan Van Berkom2018-02-071-3/+4
|
* Revert "image_authoring.rst: Add image creation documentation"Jürg Billeter2018-02-071-69/+0
| | | | | | This was pushed accidentally. This reverts commit 34a60189be63dc86d333ca895ce44bd24adb43c3.
* image_authoring.rst: Add image creation documentationTristan Maat2018-02-061-0/+69
|
* Increase the soft limit for open file descriptorsjuerg/fuse-rlimitJürg Billeter2018-02-061-0/+9
| | | | | | | | 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
* setup.py: Require jinja >= 2.10Javier Jardón2018-02-051-1/+1
| | | | | | jinja2 2.10 import time has been divided by two compared to Jinja 2.9.6 Fixes #194
* .gitlab-ci.yml: Update docker image so it contains jinja >= 2.10Javier Jardón2018-02-051-1/+1
|
* Update copyright years of changed filesSam Thursfield2018-02-053-2/+3
|
* Improve documentation for autotools, cmake and meson elementsSam Thursfield2018-02-056-13/+101
| | | | | | 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.
* plugins/elements/cmake.yaml: Remove unexplained FIXME commentSam Thursfield2018-02-051-1/+0
|
* Add tests for workspace config format conversionChandan Singh2018-02-051-0/+54
|
* Make workspaces element-wide instead of source-specificChandan Singh2018-02-054-85/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* _frontend: remove unused 'ctx' param from overrideAngelos Evripiotis2018-01-312-13/+8
| | | | | The 'ctx' parameter is carefully threaded through to 'complete_target', but it doesn't actually use it. Remove the parameter from unused places.
* _frontend: more doc on parametersAngelos Evripiotis2018-01-312-5/+24
|
* Get version number w/o pkg_resourcesGökçen Nurlu2018-01-316-11/+19
| | | | | | | | | | | | 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.
* Modify the generated CLI script by monkey patchingGökçen Nurlu2018-01-311-0/+37
| | | | | | | This change monkey patches setuptools' code generation functionality, so that pkg_resources won't be imported in the generated file. Fixes #172
* doc/source/install.rst: Simplified as per recommendations of Allan DayTristan Van Berkom2018-01-291-23/+38
|
* doc: Explain overlap-whitelist and fail-on-overlap164-minimise-overlaps-by-having-overlaps-raise-exceptions-unless-configured-not-toJonathan Maw2018-01-252-0/+40
|
* tests: Add overlap testsJonathan Maw2018-01-2518-15/+125
|
* tests: Move test_overlaps test filesJonathan Maw2018-01-255-4/+5
| | | | | This was done so that the files can be re-used with different project.conf.
* tests: Remove stray printing during overlap testJonathan Maw2018-01-251-1/+0
|
* Add explicit error handling for ElementErrors that happen as a result of ↵Jonathan Maw2018-01-252-13/+20
| | | | staging artifacts
* element: Handle overlaps with a whitelist and option to raise errorsJonathan Maw2018-01-252-3/+49
| | | | | | | | | * 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.
* element: Fix 'detail' not being stored in the ElementErrorJonathan Maw2018-01-251-1/+1
|
* Raise warning if workspaced source's ref is updatedincremental-buildChandan Singh2018-01-251-0/+4
| | | | | | | 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.
* Add support for doing incremental buildsChandan Singh2018-01-2515-18/+275
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* element.py: Call _update_state() in _schedule_tracking()Jürg Billeter2018-01-251-0/+2
| | | | Do not depend on caller calling it on its own.
* buildstream/utils.py: remove unused import 'pickle'Angelos Evripiotis2018-01-241-1/+0
|
* tests/frontend/pull.py: Add track+pull test for non-strict build planJürg Billeter2018-01-231-0/+44
|
* tests/frontend/pull.py: Add pull test for non-strict build planJürg Billeter2018-01-231-0/+51
|
* Keep track of failed pull operationsjuerg/202Jürg Billeter2018-01-232-0/+16
| | | | | Do not consider pull as pending if pull failed. This is required to allow fallback to fetch and build after pull failure.
* element.py: Use _pull_pending() in _update_state()Jürg Billeter2018-01-231-1/+4
| | | | | | 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.
* Add Element._pull_pending() methodJürg Billeter2018-01-232-10/+19
| | | | | | | 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.
* fetchqueue.py: Wait for cache to become queryableJürg Billeter2018-01-231-2/+10
| | | | | Wait for cache to become queryable instead of simply fetching the sources.
* pullqueue.py: Wait for cache to become queryableJürg Billeter2018-01-231-0/+7
| | | | | Wait for cache to become queryable instead of simply skipping the element.
* _scheduler: Replace skip() and ready() with status()Jürg Billeter2018-01-237-46/+59
| | | | | | 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.
* element.py: Do not query caches too early or too lateJürg Billeter2018-01-231-17/+10
| | | | | | | | | | | | 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
* element.py: Fix typo in _update_state()Jürg Billeter2018-01-221-1/+1
| | | | Fixes: bc492fa8 ("Use explicit element state updates")
* element.py: Return all refs in _track()Jürg Billeter2018-01-181-4/+3
| | | | | | | | 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.py: Properly handle Source.track() returning NoneJürg Billeter2018-01-181-0/+4
| | | | | | | Source.track() may return None when tracking is not available. Handle this identical to the case where track() returns the current ref. Fixes #201
* Documentation: Restructured toplevel documentationdocs-reorganizationTristan Van Berkom2018-01-175-70/+90
| | | | | | | | | | | | | | | | | | | | | 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.
* Use explicit source state updatesjuerg/source-stateJürg Billeter2018-01-165-34/+30
| | | | | This adds the _update_state() method to the Source class, similar to the corresponding method in the Element class.
* Rename _force_inconsistent() to _schedule_tracking()Jürg Billeter2018-01-164-18/+18
| | | | | _force_inconsistent is too low level. Keep that detail contained in the Source class.
* _frontend/main.py: Fix `inconsistent` argumentJürg Billeter2018-01-161-2/+2
| | | | | Do not mark target element as inconsistent for `bst source-bundle` and `bst workspace open` if tracking is disabled.
* HACKING.rst: Added instructions to properly format commit messages.Tristan Van Berkom2018-01-161-0/+20
|
* Shorten the warnings raised when remote cache initialization failsSam Thursfield2018-01-163-5/+4
| | | | | | | | | | 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
* Delay import of pkg_resourcesGökçen Nurlu2018-01-161-1/+1
| | | | | 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.
* Make artifact cache tests work in python3.4jonathan/fix-tests-python34Jonathan Maw2018-01-121-3/+3
| | | | | | | | 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.