summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add image doc projectimage-authoringTristan Maat2018-02-1416-1/+734
|
* image_authoring.rst: Add image creation documentationTristan Maat2018-02-141-0/+333
|
* .gitlab-ci.yml: Support test execution in other repositoriesJürg Billeter2018-02-131-2/+5
| | | | | | | Do not make any assumptions about the working directory as that varies across repositories. Fixes #251
* _frontend/cli.py: Check for invalid --track-except or --track-savePhillip Smyth2018-02-131-0/+8
| | | | | | | Report error when --track-except or --track-save is specified without --track or --track-all. Fixes #181
* _frontend/cli.py: Improve closing of non-existing workspacePhillip Smyth2018-02-131-0/+5
| | | | Fixes #182
* source.py: fix comment typoAngelos Evripiotis2018-02-131-1/+1
|
* doc: consistent source staging dir docAngelos Evripiotis2018-02-133-0/+9
| | | | | All source plugins respond to the 'directory' key, so add the doc for it to those that didn't have it.
* source.py: Fix typo in workspace warningJürg Billeter2018-02-131-1/+1
| | | | Fixes #250
* scheduler.py: Do not prematurely terminate loop after skipping jobsjuerg/schedulerJürg Billeter2018-02-121-1/+7
| | | | | | | | It is possible that Queue.process_ready() skips jobs without starting a job. Pull the skipped jobs forward through the queues and process them instead of prematurely terminating the loop due to lack of active jobs. Fixes #236
* .gitlab-ci.yml: Fix INTEGRATION_CACHEJürg Billeter2018-02-121-5/+2
| | | | | The working directory of the runner is /builds/BuildStream/buildstream, not /builds/BuildStream.
* test: Add tests that bzr workspace initialization acts as expectedJonathan Maw2018-02-121-0/+19
|
* bzr: Implement init_workspaceJonathan Maw2018-02-121-0/+15
| | | | | This will checkout a branch from the cache, and switch its parent branch to the url and ref that the source came from
* utils.py: Wrap calls to os.path.realpath() in an LRU cacheSam Thursfield2018-02-121-9/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | The os.path.realpath() function is expensive and we call it many times, to the point that os.path.realpath() calls make up around 40% of the total time spent in Element.stage_artifact(). The cleanest way to fix this is with a `functools.lru_cache()` wrapper that caches recently used values. None of the code in question can be removed (as the tests added in the previous commit will demonstrate). I tested this by running `bst shell base/base-system.bst true` in the GNOME modulesets project. o Without this patch there are 240,019 calls os.path.realpath() o With this patch there are 10,379 calls to os.path.realpath() o If we increase the cache size to 128 items, there are 10,359 calls to os.path.realpath(). o If we reduce the cache size to 32 items, there are 10,426 calls. o In all cases the number of *unique* calls is 10,327. This fixes issue #174.
* Add integration tests for edge cases involving symlinks and overlapsSam Thursfield2018-02-125-0/+152
|
* projectconf.rst: clarify 'type option'options_typeAngelos Evripiotis2018-02-111-2/+2
| | | | | | | Reword 'Flags type options' slightly for more clarity. We use 'option type' to refer to these thingies elsewhere, adjust 'arch' to be the same way.
* Refactor CLI importscompletion-optimizationsTristan Maat2018-02-085-700/+721
| | | | | This reduces the number of unconditional imports, mainly to speed up bash completion.
* Add a 'path' config option to junction elementsSam Thursfield2018-02-082-1/+16
| | | | | | | | | | | | | | | | | | | This makes it possible to depend on a project which is in a subdirectory of a Git repository. The error message given when the expected project.conf file is not found has also been improved. Previously the error would look like this: Error loading pipeline: Could not find file at /home/sam/.cache/buildstream/build/freedesktop-sdk-junction-rvmn17s2/project.conf This is giving the path of an internal temporary directory where the foreign project's source is checked out. The new error gives more information: Error loading pipeline: Could not find the project.conf file for junction element at freedesktop-sdk-junction.bst [line 1 column 0]. Expecting a project at path '.' within git source at freedesktop-sdk-junction.bst [line 4 column 2]
* Add test for project-specific artifact shares with junctionsJürg Billeter2018-02-0810-0/+121
|
* _artifactcache: Use project-specific remotes for subprojectsJürg Billeter2018-02-087-52/+128
|
* Add list of projects to ContextJürg Billeter2018-02-082-0/+23
|
* Add junction testsJürg Billeter2018-02-0847-0/+435
|
* Add junction support for subprojectsJürg Billeter2018-02-0813-33/+400
| | | | | This introduces junctions as a new kind of elements to allow dependencies to cross project boundaries.
* _loader.py: Pass Loader instance to LoadElementJürg Billeter2018-02-081-4/+4
| | | | Loader access will be required for junctions.
* Add project attribute to MetaElementJürg Billeter2018-02-083-7/+10
| | | | With junctions, elements may be loaded from multiple projects.
* Pass Project instance to LoaderJürg Billeter2018-02-087-29/+33
| | | | Project access will be required for junctions.
* Move element and source factories from Pipeline to ProjectJürg Billeter2018-02-084-30/+31
| | | | Element and source factories use a project-specific search path.
* Move cli_options from Context to ProjectJürg Billeter2018-02-089-19/+20
| | | | cli_options are project-specific.
* _options: Support transform function for variable substitutionJürg Billeter2018-02-085-7/+15
|
* element.py: Split errors and warnings for overlapsJürg Billeter2018-02-081-17/+25
| | | | | This ensures that overlap warnings from projects without fail-on-overlaps are not reported in fatal error messages.
* Remove old workspace mount integration testJürg Billeter2018-02-077-110/+0
| | | | It has already been migrated.
* Add workspace mount integration test175-refactor-integration-testsTristan Maat2018-02-073-0/+50
|
* Remove old integration testsTristan Maat2018-02-07187-2341/+0
|
* Merge integration tests into general testsTristan Maat2018-02-0734-69/+109
|
* shell.py: Add shell testTristan Maat2018-02-071-0/+78
|
* Add bzr testTristan Maat2018-02-073-0/+49
|
* Migrate element test filesTristan Maat2018-02-0728-0/+794
|
* Add test utilities for integration testsTristan Maat2018-02-074-26/+132
|
* runcli.py: Allow setting individual config settingsTristan Maat2018-02-071-4/+8
|
* .gitignore: Add rules for various testing directoriesTristan Maat2018-02-071-3/+7
|
* tests/frontend/overlaps.py: Add test for runtime dependency stagingJürg Billeter2018-02-072-0/+19
| | | | This test covers #225.
* element.py: Fix staging of runtime dependencies with overlapsAbderrahim Kitouni2018-02-071-1/+1
| | | | | | | | This fixes `bst shell` crashes in the presence of overlaps. Fixes #225 Fixes: 2aa233da ("element: Handle overlaps with a whitelist and...")
* 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
|