summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* _artifactcache.py: Raise ArtifactError() when quota size exceeds disk space.tristan/insufficient-storage-errorTristan Van Berkom2019-01-233-26/+34
| | | | | | | | | | | | | | | | | | | | | | This is not an error related to loading data, like a parse error in the quota specification is, but a problem raised by the artifact cache - this allows us to assert more specific machine readable errors in test cases (instead of checking the string in stderr, which this patch also fixes). This also removes a typo from the error message in the said error. * tests/artifactcache/cache_size.py Updated test case to expect the artifact error, which consequently changes the test case to properly assert a machine readable error instead of asserting text in the stderr (which is the real, secret motivation behind this patch). * tests/artifactcache/expiry.py: Reworked test_invalid_cache_quota() Now expect the artifact error for the tests which check configurations which create caches too large to fit on the disk.
* tests: Migrated cache quota test into artifactcache/cache_size.pyTristan Van Berkom2019-01-232-34/+28
| | | | Instead of sitting mysteriously alone in internals/utils.py
* Merge branch 'chandan/unpin-sphinx' into 'master'Chandan Singh2019-01-231-3/+3
|\ | | | | | | | | tox.ini: Unpin sphinx dependency See merge request BuildStream/buildstream!1093
| * tox.ini: Unpin sphinx dependencyChandan Singh2019-01-231-3/+3
|/ | | | | | https://github.com/rtfd/sphinx_rtd_theme/pull/672 has been fixed upstream, and the newer versions of `sphinx_rtd_theme` do not break search functionality with Sphinx >= 1.8.
* Merge branch 'tristan/fix-pullbuildtrees-test' into 'master'Tristan Van Berkom2019-01-221-42/+42
|\ | | | | | | | | tests/integration/pullbuildtrees.py: Fix the non-integration case. See merge request BuildStream/buildstream!1098
| * tests/integration/pullbuildtrees.py: Fix the non-integration case.Tristan Van Berkom2019-01-221-42/+42
|/ | | | | | | | | | This test has one test case which is marked as an integration test, and the other is not an integration test, but was using the integration cli. The integration cli does not work correctly if not run in integration mode. This was causing an error locally in conftest.py when trying to create a tmpdir inside a nonexisting integration cache directory.
* Merge branch 'tristan/fix-terminated-status' into 'master'Tristan Van Berkom2019-01-222-1/+11
|\ | | | | | | | | _scheduler: Fix dont display a failure for terminated jobs See merge request BuildStream/buildstream!1096
| * _scheduler: Fix dont display a failure for terminated jobstristan/fix-terminated-statusTristan Van Berkom2019-01-222-1/+11
|/ | | | This fixes a recent regression introduced in c2fc2a5ea
* Merge branch 'jennis/add_obsoletion_note' into 'master'James Ennis2019-01-221-5/+5
|\ | | | | | | | | Add an obsoletion note to our deprecated commands. See merge request BuildStream/buildstream!1097
| * cli.py: Add an obsoletion note to our deprecated commands.James Ennis2019-01-221-5/+5
|/ | | | | | | | | Click 7.0 allows us to declare commands as 'hidden'. However, sphinx-click and click-man still generate these hidden commands in the documentation and man pages, respectively. This is a stop gap solution until the upstream issues (tracked in issues #879 and #881) have been addressed.
* Merge branch 'jennis/migrate_pull_push_commands' into 'master'James Ennis2019-01-2282-485/+732
|\ | | | | | | | | Move push/pull/checkout to the artifact subcommand group See merge request BuildStream/buildstream!1045
| * man: Regenerate all of our man pagesjennis/migrate_pull_push_commandsJames Ennis2019-01-2228-151/+274
| | | | | | | | | | | | | | | | | | Due to an upstream click_man issue: https://github.com/click-contrib/click-man/issues/10 generating the man pages with our current setup.py only generates a man page for bst-artifact-server, our first entry point. I then had to remove this entry point from setup.py and regenerate to obtain man pages for the commands in cli.py
| * Change bst checkout/pull/push references to bst artifact checkout/pull/pushJames Ennis2019-01-223-4/+4
| |
| * using_commands.rst: Add artifact log subcommandJames Ennis2019-01-221-0/+7
| |
| * using_commands.rst: Split out the artifact subcommandsJames Ennis2019-01-223-22/+31
| |
| * Add NEWS entry describing the deprecation of checkout, pull and pushJames Ennis2019-01-221-0/+10
| |
| * Mark 'old' checkout command as obsoleteJames Ennis2019-01-2238-182/+156
| | | | | | | | | | | | | | | | | | | | | | This commit marks 'bst checkout' as a 'hidden' command. If used, the user will be prompted to use the new 'bst artifact checkout' command. All tests which used 'bst checkout' have been modified to use the new artifact sub-command. This partially solves #822.
| * cli: Add artifact checkout subcommandJames Ennis2019-01-221-0/+69
| | | | | | | | | | | | 'artifact checkout' has slightly different behaviour from 'checkout', that is, either '--directory' or '--tar' are now required options. This is a step towards allowing checkout to take multiple args.
| * Move push and pull to the new artifact subcommand groupJames Ennis2019-01-2211-120/+156
| | | | | | | | | | This commit also ensures that if we try to use the 'old' commands, BuildStream will fail and instruct the user to use the new command.
| * using_commands.rst: Add the source checkout commandJames Ennis2019-01-221-0/+7
| |
| * using_commands.rst: Split out top level commands and subcommand groupsJames Ennis2019-01-222-16/+28
|/
* 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