summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* NEWS: Add entry for default target featureissue-638-validate-all-filesPhillip Smyth2019-01-221-0/+4
|
* tests/frontend/buildcheckout.py: Add default target test with junctionJürg Billeter2019-01-224-0/+56
| | | | | Test that `bst build` does not fail in a project where the list of default targets includes a junction (junctions cannot be built).
* tests/frontend/pull.py: Add default target test for bst push/pullJürg Billeter2019-01-221-0/+50
|
* tests/frontend/fetch.py: Add default target test for bst source fetchJürg Billeter2019-01-221-0/+35
|
* tests/frontend: Add default target tests for bst show and buildPhillip Smyth2019-01-2219-0/+179
|
* _frontend/cli.py: Ignore junctions in default targets where appropriateJürg Billeter2019-01-221-2/+17
| | | | | | | Junctions cannot be built, pulled, or pushed. Specifying a junction on the command line for these commands will result in an error. However, junctions may be in the list of default targets, so they need to be ignored for build, pull, and push commands.
* _stream.py: Add ignore_junction_targets parameterJürg Billeter2019-01-221-0/+15
| | | | This filters out junctions from the list of targets.
* _project.py: Add get_default_target() and get_default_targets() methodsJürg Billeter2019-01-223-40/+113
| | | | | | _frontend/cli.py: Use new methods. Based on patches by Phillip Smyth.
* projectconfig.yaml: Add key for default targetsPhillip Smyth2019-01-221-0/+8
|
* _frontend/cli.py: Guess element also for bst build --allJürg Billeter2019-01-221-1/+1
| | | | There is no reason to disallow guess_element() for bst build --all.
* Merge branch 'chandan/fix-contrib-link' into 'master'Chandan Singh2019-01-211-1/+1
|\ | | | | | | | | CONTRIBUTING.rst: Fix formatting of link to pip docs See merge request BuildStream/buildstream!1094
| * CONTRIBUTING.rst: Fix formatting of link to pip docsChandan Singh2019-01-211-1/+1
|/ | | | | | | The link explaining python's requirements files was formatted incorrectly (missing underscore at the end). This resulted in the text being rendered literally, as opposed to being converted into a hyperlink.
* Merge branch 'richardmaw/centos-oldgit-test-fixes' into 'master'Valentin David2019-01-215-2/+16
|\ | | | | | | | | | | | | Fix CentOS Closes #833 See merge request BuildStream/buildstream!1085
| * Add a Centos runnerBenjamin Schubert2019-01-211-0/+5
| | | | | | | | Centos is apparently different enough from fedora when running tests.
| * tests/sources/git.py: Skip tests that assume too new a gitRichard Maw2019-01-212-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | test_track_invalid_submodule depends on being able to remove a submodule by `git rm $submoduledir`, but old versions of git don't update .gitmodules so BuildStream still thinks there's a submodule present. For expediency the test is skipped rather than changed to manually remove the entry from .gitmodules if git hasn't done it, since in the common case git is new enough to do that itself. test_git_describe expects --first-parent to find another tag, but `bst track` will gracefully degrade if the option doesn't work so a different history will be retained with old versions of git. It's of marginal benefit to add additional cruft to test for different output on old versions of git that won't persist forever.
| * tests/frontend/workspace.py: Skip test_open_multi_unwritable when rootRichard Maw2019-01-211-0/+1
| | | | | | | | | | | | The test assumes that a directory with write permission removed isn't writable, this isn't the case if the process running the tests has CAP_DAC_OVERRIDE which is common when running as root.
| * _gitsourcebase.py: Fetch with explicit refspecsRichard Maw2019-01-211-1/+2
|/ | | | | Old versions of git lack --force and --tags, but the same effect can be had by specifying refspecs.
* Merge branch 'tlater/message-lines' into 'master'Tristan Van Berkom2019-01-183-3/+120
|\ | | | | | | | | | | | | Avoid "showing 0 lines" messages when we're asked to show no lines Closes #779 See merge request BuildStream/buildstream!1031
| * widget.py: Avoid "showing 0 lines" messages when there are no linesTristan Maat2019-01-182-2/+113
| | | | | | | | | | | | | | | | This happened when bst is invoked with --message-lines 0 or --error-lines 0, and was arguably a little too verbose (the user explicitly asked us not to show them any lines, after all). Fixes #779
| * testutils/runcli.py: Allow removing artifacts from arbitrary dirsTristan Maat2019-01-181-1/+7
|/ | | | | `remove_artifact_from_cache` used a hard-coded path to remove artifacts, which wasn't sufficient for integration tests.
* Merge branch 'chandan/import-is-not-buildelement' into 'master'Chandan Singh2019-01-181-9/+2
|\ | | | | | | | | Derive import plugin from Element instead of BuildElement See merge request BuildStream/buildstream!1089
| * Derive import plugin from Element instead of BuildElementChandan Singh2019-01-181-9/+2
|/ | | | | | | | | | | The `import` element is not really a build element. The main purpose of the `BuildElement` class is to allow users to run `build-commands`, `install-commands` etc. But, `import` does not run such commands. Moreover, we already override all the methods provided by `BuildElement`. So it only makes it confusing to have it derived from `BuildElement` class when it is not a build element. So, derive it from the base `Element` class instead.
* Merge branch 'tristan/fix-pip-source-test' into 'master'Tristan Van Berkom2019-01-181-2/+4
|\ | | | | | | | | tests/testutils/python_repo.py: Use subprocess to run sdist See merge request BuildStream/buildstream!1090
| * tests/testutils/python_repo.py: Use subprocess to run sdistTristan Van Berkom2019-01-181-2/+4
|/ | | | | | | | | | | | | The current approach using setuptools.sandbox.run_setup() was causing a spurious (but highly frequent) failure where setuptools gets mixed up with it's manipulation of sys.modules and hits a RuntimeError as a dictionary changes size while being iterated over. For instance: https://gitlab.com/BuildStream/buildstream/-/jobs/147967307 Since this already happens in an isolated virtual environment created by tox, we should not need additional sandboxing here from setuptools, and launching this as a subprocess will be safer.
* Merge branch 'tristan/cas-cleanup-improve' into 'master'Tristan Van Berkom2019-01-183-11/+100
|\ | | | | | | | | CASCache cleanup improvements See merge request BuildStream/buildstream!1087
| * _cas/cascache.py: Use utils._tempdir() and utils._tempnamedfile()Tristan Van Berkom2019-01-181-6/+5
| | | | | | | | | | | | | | | | | | | | | | The direct usage of tempfile.TemporaryDirectory() and tempfile.NamedTemporaryFile() here causes leakage of any temporary data when the process operating on temporary data is terminated with SIGTERM. Using the utilities ensures that trash is not left behind in ~/.cache/buildstream/artifacts/tmp when the user terminates BuildStream with ^C.
| * utils.py: Added _tempnamedfile()Tristan Van Berkom2019-01-181-0/+30
| | | | | | | | | | | | When used in a child process in BuildStream, this should be used instead of tempfile.NamedTemporaryFile() directly, otherwise we fail to cleanup the file on SIGTERM.
| * tests/artifactcache/expiry.py: Test refs directory cleanupTristan Van Berkom2019-01-181-0/+14
| | | | | | | | | | | | Enhance the test which checks removal of the extract directories with an additional check that the ref directories are cleaned up when removing artifacts.
| * _cas/cascache.py: Cleanup directories when removing refsTristan Van Berkom2019-01-181-5/+51
|/ | | | | With out this, empty directories in the refs/heads directory just grow unconditionally.
* Merge branch 'aevri/shell_separator_hint' into 'master'Angelos Evripiotis2019-01-181-0/+6
|\ | | | | | | | | cli.py: add a hint about '--' to 'bst shell' help See merge request BuildStream/buildstream!1078
| * cli.py: add a hint about '--' to 'bst shell' helpAngelos Evripiotis2019-01-181-0/+6
|/
* Merge branch 'tristan/fix-bzr-race' into 'master'Tristan Van Berkom2019-01-183-93/+116
|\ | | | | | | | | | | | | Fix bzr race conditions Closes #868 See merge request BuildStream/buildstream!1083
| * tests/frontend/track.py: Use test_track_recurse() to stress test SourcesTristan Van Berkom2019-01-181-13/+47
| | | | | | | | | | | | | | | | This causes multiple source instances to interact with the same backing data store at the same time, increasing the likelyhood of triggering issues around concurrent access. This more reliably triggers issue #868
| * testutils/runcli.py: Added cli.get_element_states()Tristan Van Berkom2019-01-181-0/+22
| | | | | | | | | | | | | | | | | | With get_element_state(), you need to invoke BuildStream once for every element state you want to observe in a pipeline. The new get_element_states() reports a dictionary with the element state hashed by element name and is better to use if you have more than one element to observe the state of.
| * bzr source plugins: Remove all of the atomic backup directory business logicTristan Van Berkom2019-01-181-74/+18
| | | | | | | | | | Follow up of last commit which uses exclusive locking to protect bzr operations instead.
| * bzr source plugin: Use lock files to avoid corrupting the source cacheTristan Van Berkom2019-01-181-6/+29
|/ | | | This patch by itself fixes #868
* Merge branch 'valentindavid/overnight-tests-logs-artifacts' into 'master'Javier Jardón2019-01-181-0/+3
|\ | | | | | | | | .gitlab-ci.yml: Add overnight tests logs to artifacts. See merge request BuildStream/buildstream!1084
| * .gitlab-ci.yml: Add overnight tests logs to artifacts.Valentin David2019-01-181-0/+3
|/
* Merge branch 'jennis/profiling_outputs_binaries' into 'master'James Ennis2019-01-181-4/+16
|\ | | | | | | | | Make the profiler output binaries (which can be used to visualise the data) See merge request BuildStream/buildstream!1082
| * _profile.py: Write binaries as well as logsjennis/profiling_outputs_binariesJames Ennis2019-01-171-2/+14
| | | | | | | | | | | | Private class methods which write the logs and write the binaries have been added to Profile. The binaries are able to be used by various visualisation tools.
| * _profile.py: Add timestamp to the logsJames Ennis2019-01-171-4/+4
|/
* Merge branch 'tristan/error-message-regression' into 'master'Tristan Van Berkom2019-01-173-7/+8
|\ | | | | | | | | sandbox/sandbox.py: Display failed commands in the detail string See merge request BuildStream/buildstream!1081
| * sandbox/sandbox.py: Display failed commands in the detail stringtristan/error-message-regressionTristan Van Berkom2019-01-163-7/+8
|/ | | | | | | | | | | We should only display commands in detail strings, not in the message texts. This also updates tests/integration/sandbox-bwrap.py to expect the new message string which only contains the command exit status and not the whole command itself, this does not alter the validity of the text case which is checking that we can obtain the expected return value.
* Merge branch 'tristan/organizing-tests' into 'master'Tristan Van Berkom2019-01-17247-739/+500
|\ | | | | | | | | General refactor in tests directory See merge request BuildStream/buildstream!1062
| * tests: Migrate junctions test to tests/format/junctions.pyTristan Van Berkom2019-01-1664-0/+0
| | | | | | | | This is the directory for all things related to loading.
| * tests: Migrate protected variable handling tests to tests/format/variables.pyTristan Van Berkom2019-01-164-102/+89
| |
| * tests: Removing tests/pipeline/load.pyTristan Van Berkom2019-01-163-26/+0
| | | | | | | | | | | | The remaining test simply loads a project with one element and asserts a value on it. This is already sufficiently tested in tests/format/project.py.
| * tests: Renaming some tests in tests/format/project.pyTristan Van Berkom2019-01-161-5/+5
| | | | | | | | Remove some redundancy from the test lines.
| * tests: Migrate preflight error handling check to tests/format/project.pyTristan Van Berkom2019-01-166-19/+7
| | | | | | | | | | | | This is where other load time related plugin error handling is checked, and is the last thing to remove in the `tests/pipeline` directory.
| * tests: Migrate test for load_ref() unsupporting plugins into format/project.pyTristan Van Berkom2019-01-165-32/+32
| | | | | | | | | | | | | | The tests/format/project.py test already has some tests about how we error gracefully for bad plugins and bad plugin configurations, lets put it there rather than tests/pipeline/load.py which we will remove.