summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tests/frontend/artifact.py: test artifact delete with --deps buildjennis/load_deps_from_artifact_refJames Ennis2019-08-161-0/+69
|
* cli.py: Implement --deps for artifact deleteJames Ennis2019-08-162-4/+10
|
* _stream.py: no_prune should be an optional keyword argJames Ennis2019-08-162-2/+2
| | | | | | The "no_prune" argument in Stream.artifact_delete() has been made an optional keyword argument. This is consistent with all other Stream methods.
* _stream.py: Don't say we're loading elements if we're notJames Ennis2019-08-161-3/+6
|
* Load artifact refs the same way we load element namesJames Ennis2019-08-165-6/+94
|
* _artifactelement.py: Add get_dependency_refs() methodJames Ennis2019-08-161-1/+20
|
* element.py: Add _get_artifact() methodJames Ennis2019-08-161-0/+11
| | | | | | | Add a getter for Element's __artifact (Artifact object). This is required by ArtifactElement. The ArtifactElement should have access to its Artifact.
* _artifact.py: Add get_dependency_refs() methodJames Ennis2019-08-161-1/+34
|
* element.py: Move _get_normal_name() to utilsJames Ennis2019-08-163-17/+18
|
* artifact.proto: Add the project name to the build dependency informationJames Ennis2019-08-1641-369/+378
| | | | | | | | | We also need to store the project name of dependencies in the proto in order to reconstruct the graph. This also means that we must include the project name of the dependencies in the cache key, otherwise the proto and the cache keys may fall out of sync.
* element.py: Cache the project nameJames Ennis2019-08-161-2/+2
|
* element.py: Add the build dependency names to the cache key dictJames Ennis2019-08-168-8/+9
| | | | | We store the build dependency names in the artifact proto. This should be reflected in the cache key dict.
* tests/frontend/buildcheckout.py: Stop using explicit cache keysJames Ennis2019-08-161-5/+5
| | | | | | Only our tests/cachekey tests should test explicit cache keys. Tests outside of here should determine cache keys using the appropriate methods.
* Merge branch 'coldtom/move-qmake' into 'master'bst-marge-bot2019-08-156-103/+3
|\ | | | | | | | | Move qmake plugin to bst-plugins-experimental See merge request BuildStream/buildstream!1545
| * Move qmake plugin to bst-plugins-experimentalcoldtom/move-qmakeThomas Coldrick2019-08-146-103/+3
|/
* Merge branch 'jennis/push_unbuilt_artifact' into 'master'bst-marge-bot2019-08-142-20/+120
|\ | | | | | | | | | | | | Ensure push fails when trying to push an unbuilt element Closes #1095 See merge request BuildStream/buildstream!1524
| * _stream.py: Ensure push does not fail if artifact not cachedjennis/push_unbuilt_artifactJames Ennis2019-08-142-6/+120
| | | | | | | | A test for this has also been added to tests/frontend/push.py
| * _stream.py: Remove FIXMEJames Ennis2019-08-141-14/+0
|/
* Merge branch 'coldtom/move-modulebuild' into 'master'bst-marge-bot2019-08-146-101/+3
|\ | | | | | | | | Move modulebuild plugin to bst-plugins-experimental See merge request BuildStream/buildstream!1539
| * Move modulebuild plugin to bst-plugins-experimentalThomas Coldrick2019-08-146-101/+3
|/ | | | Continuing moving plugins over to bst-plugins-experimental.
* Merge branch 'danielsilverstone-ct/missing-sh-fix' into 'master'bst-marge-bot2019-08-148-18/+63
|\ | | | | | | | | | | | | Cache failed builds caused by missing-command Closes #1101 See merge request BuildStream/buildstream!1543
| * workspace: Add test to ensure we can show logs from a workspaced builddanielsilverstone-ct/missing-sh-fixBenjamin Schubert2019-08-142-0/+43
| |
| * tests: Verify that a missing-command causes a cached failureDaniel Silverstone2019-08-141-0/+1
| | | | | | | | Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * sandbox/_sandbox*.py: Ensure missing-command is a SandboxCommandErrorDaniel Silverstone2019-08-144-16/+16
| | | | | | | | | | | | | | | | So that, should a sandbox be missing a command such as `sh`, we cache failures to build, ensure that each sandbox which checks for the command raises SandboxCommandError instead of SandboxError. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * sandbox/sandbox.py: Allow SandboxCommandError to have different reasonsDaniel Silverstone2019-08-141-2/+3
|/ | | | | | | | | In order to properly support caching failures to build when a sandbox is missing a command, we need to permit SandboxCommandError to take a reason parameter. We default that to that which it previously forced in order to reduce the need to add a reason code to every raise. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'jennis/fix_failed_workspaces' into 'master'bst-marge-bot2019-08-133-3/+47
|\ | | | | | | | | | | | | Don't reset a failed (but cached) workspaced Element Closes #1096 See merge request BuildStream/buildstream!1536
| * element.py: Don't reset a failed (but cached) workspaced Elementjennis/fix_failed_workspacesJames Ennis2019-08-133-3/+47
|/ | | | | | | | | | | A workspaced element can fail to build, if this happens, we cache the result as a failure. This patch ensures that we do not reset the cache data if a workspace has failed to build. An integration test has also been added which ensures that we are able to get the log of a failed workspace build. Closes #1096
* Merge branch 'tmewett/report-weird-return-codes' into 'master'bst-marge-bot2019-08-121-1/+5
|\ | | | | | | | | | | | | Report error when job process unexpectedly dies Closes #1089 See merge request BuildStream/buildstream!1531
| * job.py: Report error when job process unexpectedly dies (#1089)tmewett/report-weird-return-codesTom Mewett2019-08-121-1/+5
|/
* Merge branch 'coldtom/move-makemaker' into 'master'bst-marge-bot2019-08-126-101/+3
|\ | | | | | | | | Move makemaker plugin to bst-plugins-experimental See merge request BuildStream/buildstream!1538
| * Move makemaker plugin to bst-plugins-experimentalThomas Coldrick2019-08-126-101/+3
|/ | | | Continuing moving plugins to bst-plugins-experimental.
* Merge branch 'coldtom/move-make' into 'master'bst-marge-bot2019-08-115-100/+2
|\ | | | | | | | | Move make plugin to bst-plugins-experimental See merge request BuildStream/buildstream!1535
| * Move make plugin to bst-plugins-experimentalcoldtom/move-makeThomas Coldrick2019-08-095-100/+2
|/
* Merge branch 'jennis/fix_artifact_log' into 'master'bst-marge-bot2019-08-096-25/+52
|\ | | | | | | | | Fix artifact log See merge request BuildStream/buildstream!1533
| * Frontend: Fix bst artifact logJames Ennis2019-08-094-23/+14
| | | | | | | | | | | | | | | | This command now fetches the absolute paths of the log files in the local CAS cache and opens a pager for each path. The test has also been updated to ensure that a log file is actually obtained.
| * artifact.py,element.py: Add get_logs() methodsJames Ennis2019-08-092-0/+24
| |
| * cascache.py: Add new contains_file() methodJames Ennis2019-08-091-0/+12
| |
| * cascache.py: Fix typoJames Ennis2019-08-091-1/+1
| |
| * _artifact.py: Fix typo in doc comment of _get_field_digest()James Ennis2019-08-091-1/+1
|/
* Merge branch 'tpollard/initfix' into 'master'bst-marge-bot2019-08-091-1/+1
|\ | | | | | | | | | | | | _frontend/app.py: Fixup node._assert_symbol_name() positional args Closes #1100 See merge request BuildStream/buildstream!1534
| * _frontend/app.py: Fixup node._assert_symbol_name() positional argsTom Pollard2019-08-091-1/+1
|/ | | | | bst init was failing due to project_name_proc() incorrectly passing args to the method, remove erroneous None.
* Merge branch 'coldtom/move-meson' into 'master'bst-marge-bot2019-08-084-152/+1
|\ | | | | | | | | Move meson element to bst-plugins-experimental See merge request BuildStream/buildstream!1532
| * Move meson element to bst-plugins-experimentalThomas Coldrick2019-08-084-152/+1
|/
* Merge branch 'danielsilverstone-ct/load-reject-duplicates' into 'master'bst-marge-bot2019-08-0811-4/+121
|\ | | | | | | | | | | | | Reject elements which have duplicated dependencies Closes #1077 See merge request BuildStream/buildstream!1528
| * tests: Add test for DUPLICATE_DEPENDENCY verificationDaniel Silverstone2019-08-089-0/+94
| | | | | | | | Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * _loader: Detect and reject duplicated dependenciesDaniel Silverstone2019-08-081-4/+24
| | | | | | | | | | | | | | | | | | | | When loading an element, if it has duplicated dependencies of any kind then we reject the element with a LoadError(DUPLICATE_DEPENDENCY). This means that an element `foo.bst` can only appear once in any given dependency kind, allowing it to be both `runtime` and `build`, but not either of those twice, nor either plus `all`, nor `all` twice. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * _exception: Add DUPLICATE_DEPENDENCY to LoadErrorReasonDaniel Silverstone2019-08-081-0/+3
|/ | | | Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'tpollard/messageobject' into 'master'bst-marge-bot2019-08-0821-162/+194
|\ | | | | | | | | Message rework See merge request BuildStream/buildstream!1500
| * _message.py: Use element_name & element_key instead of unique_idtpollard/messageobjectTom Pollard2019-08-0820-156/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | Adding the element full name and display key into all element related messages removes the need to look up the plugintable via a plugin unique_id just to retrieve the same values for logging and widget frontend display. Relying on plugintable state is also incompatible if the frontend will be running in a different process, as it will exist in multiple states. The element full name is now displayed instead of the unique_id, such as in the debugging widget. It is also displayed in place of 'name' (i.e including any junction prepend) to be more informative.
| * plugin.py: cache full_name member in __init__Tom Pollard2019-08-081-7/+22
| | | | | | | | | | | | Once project & type are resolved, the full_name can be computed and cached for efficiency. The accessor for getting the private member should also be moved to the correct section.