summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* project: validate project paths (element-path)Tiago Gomes2018-08-022-2/+4
|
* ostree plugin: validate project pathsTiago Gomes2018-08-021-3/+5
|
* patch plugin: validate project pathsTiago Gomes2018-08-022-14/+11
|
* local plugin: validate project pathsTiago Gomes2018-08-0212-106/+106
| | | | | | 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.
* plugin: bake API to get and validate a project pathTiago Gomes2018-08-024-4/+147
| | | | | | | | 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.
* Merge branch 'Qinusty/docs_changes' into 'master'Tom Pollard2018-08-021-0/+5
|\ | | | | | | | | HACKING.rst: Add running a single test example See merge request BuildStream/buildstream!597
| * HACKING.rst: Add running a single test exampleQinusty/docs_changesJosh Smith2018-08-021-0/+5
|/
* Merge branch 'phil/436-add-ubuntu-install-intructions' into 'master'Javier Jardón2018-08-011-0/+24
|\ | | | | | | | | | | | | Add Ubuntu install intructions Closes #436 See merge request BuildStream/buildstream!525
| * install_linux_distro.rst: Add install instructons for UbuntuPhil Dawson2018-08-011-0/+24
|/ | | | This commit is part of the work required to resolve issue #436
* Merge branch 'mablanch/447-stack-trace-checkout' into 'master'Qinusty2018-08-013-1/+17
|\ | | | | | | | | Handle checkout failure for unbuilt elements See merge request BuildStream/buildstream!590
| * _stream.py: Print details on checkout failuremablanch/447-stack-trace-checkoutMartin Blanchard2018-08-011-1/+1
| |
| * element.py: Raise an exception on unbuilt element checkoutMartin Blanchard2018-08-012-0/+16
|/ | | | | Trying to checkout an element that has no cached artifacts should be and handled failure. See BuildStream/buildstream#447.
* Merge branch 'Qinusty/481' into 'master'Qinusty2018-08-013-3/+12
|\ | | | | | | | | Add SKIPPED message type for actions being skipped See merge request BuildStream/buildstream!562
| * cascache.py: Display SKIPPED message for each remote skippedQinusty/481Josh Smith2018-08-011-3/+10
| |
| * message.py: MessagesType.SKIPPED addedJosh Smith2018-08-012-0/+2
|/
* Merge branch 'jmac/virtual_directories' into 'master'Jim MacArthur2018-08-0115-166/+554
|\ | | | | | | | | Abstract directory class and filesystem-backed implementation See merge request BuildStream/buildstream!445
| * sandbox.py: Use _root in _has_commandjmac/virtual_directoriesJim MacArthur2018-08-011-2/+2
| | | | | | | | | | | | | | 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.
| * compose.py: Remove unused getmtime()Jim MacArthur2018-08-011-7/+0
| |
| * scriptelement.py: Convert to virtual directoriesJim MacArthur2018-08-011-5/+4
| |
| * plugins/elements/stack.py: Convert to virtual directoriesJim MacArthur2018-08-011-6/+5
| |
| * sandbox: Remove instances of get_directoryJim MacArthur2018-08-012-2/+5
| | | | | | | | | | sandbox/_mount.py, sandbox/_sandboxbwrap.py: Remove instances of get_directory
| * plugins/elements/import.py: Convert to virtual directoriesJim MacArthur2018-08-011-13/+10
| |
| * plugins/elements/compose.py: Convert to virtual directoriesJim MacArthur2018-08-011-25/+13
| |
| * element.py: Conversion to use virtual directoriesJim MacArthur2018-08-011-51/+62
| |
| * _stream.py: Convert to virtual directories.Jim MacArthur2018-08-011-43/+9
| | | | | | | | | | This removes _add_directory_to_tarfile since it is now implemented in _filebaseddirectory.py.
| * sandbox.py: Add function to get virtual directory.Jim MacArthur2018-08-011-0/+15
| |
| * storage: Add __init__.pyJim MacArthur2018-08-011-0/+22
| |
| * Add the virtual directory class 'Directory' and one implementation.Jim MacArthur2018-08-014-1/+372
| | | | | | | | | | | | buildstream/storage/Directory.py: New file. buildstream/storage/_filebaseddirectory.py: New file. buildstream/_exceptions.py: New VIRTUAL_FS exception source.
| * Sandbox.py: Rename __root to _root.Jim MacArthur2018-08-012-5/+6
| | | | | | | | | | | | | | | | 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.
| * utils.py: add getmtime() and magic_timestampJim MacArthur2018-08-011-5/+13
| | | | | | | | | | magic_timestamp is moved into file scope so other classes can use it.
| * Add BST_VIRTUAL_DIRECTORY flag for element pluginsJim MacArthur2018-08-012-4/+19
|/
* Merge branch 'mablanch/448-autocompletion-broken-defaults' into 'master'Phillip Smyth2018-08-017-3/+29
|\ | | | | | | | | Fix autocompletion for elements in sub-folders See merge request BuildStream/buildstream!592
| * complete.py: Ensure paths get completed from 'element-path'mablanch/448-autocompletion-broken-defaultsMartin Blanchard2018-08-017-3/+29
|/ | | | | | | | 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
* Merge branch 'phil/437-workspaces-tutorial' into 'master'Phil Dawson2018-08-0122-1/+570
|\ | | | | | | | | | | | | Phil/437 workspaces tutorial Closes #437 See merge request BuildStream/buildstream!519
| * tests/examples/developing.py: Add tests for workspaces walkthroughphil/437-workspaces-tutorialPhil Dawson2018-08-011-0/+91
| |
| * testutils/patch.py: Add methods for applying and removing patchesPhil Dawson2018-08-011-0/+21
| |
| * tutorials: Add workspaces tutorialPhil Dawson2018-08-015-2/+113
| | | | | | | | This is part of the work towards issue #437
| * Add project for workspaces tutorialPhil Dawson2018-08-017-0/+84
| | | | | | | | This is part of the work towards issue #437
| * doc/sessions: Add terminal sessions for use in workspaces tutorialPhil Dawson2018-08-019-0/+262
|/ | | | This is part of the the work towards issue #437
* Merge branch 'richardmaw/cache-fail' into 'master'Phillip Smyth2018-07-319-93/+417
|\ | | | | | | | | | | | | Store failed builds in the cache Closes #76 See merge request BuildStream/buildstream!475
| * Added the missing `_get_build_log` functionknownexus2018-07-311-1/+6
| |
| * NEWS: Describe caching of failuresRichard Maw2018-07-311-0/+7
| | | | | | | | Closes #76.
| * _scheduler/queues: Add failed builds to "done" queueRichard Maw2018-07-312-1/+4
| | | | | | | | | | | | | | 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.
| * tests: Add tests for cached behavioursRichard Maw2018-07-311-0/+160
| |
| * _scheduler/queues/buildqueue.py: Skip rebuilding cached failuresRichard Maw2018-07-311-0/+35
| | | | | | | | | | This flags up a failure and if run in an interactive prompt permits the user to attempt a rebuild.
| * Cache failed buildsRichard Maw2018-07-313-85/+98
| | | | | | | | | | | | | | | | | | 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.
| * _frontend/widget.py: Render cached failures differently to successesRichard Maw2018-07-311-1/+3
| |
| * Convert call-sites of Element._cached() that assume successRichard Maw2018-07-314-8/+8
| | | | | | | | When we later add cached failures it needs to not treat them as successes.
| * element.py: Add metadata to distinguish between successful and failed buildsRichard Maw2018-07-311-0/+84
| | | | | | | | | | This just puts the metadata in place, we're adding code paths to add failed builds later.
| * element.py: Cache the result of checking whether an artifact is cached weaklyRichard Maw2018-07-311-5/+20
|/ | | | | | | | | | | 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.