summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tests/artifactshare: safer cleanup_on_sigterm useaevri/testutils_artifactshareAngelos Evripiotis2019-11-051-2/+2
| | | | | | | | | | | | Use the documented path [1] to `pytest_cov.embed.cleanup_on_sigterm()`, to avoid crashing on some versions. It turns out that pytest_cov v2.6.1 on my machine doesn't like the way that we were accessing cleanup_on_sigterm(). Access it in such a way that we will either get the function or an ImportError, as per the documentation. [1]: https://pytest-cov.readthedocs.io/en/latest/subprocess-support.html
* testutils/artifactshare: don't hang on errorAngelos Evripiotis2019-11-051-28/+33
| | | | | | | | Remove a couple of cases where it's possible to make the main test process hang, waiting for something to appear on a queue. Raise a friendlier exception, earlier, if there was a problem starting the server process.
* Merge branch 'juerg/fetch-tree' into 'master'bst-marge-bot2019-11-053-28/+20
|\ | | | | | | | | Reimplement contains_directory() with FetchTree() See merge request BuildStream/buildstream!1642
| * cascache.py: Reimplement contains_directory() with FetchTree()Jürg Billeter2019-11-051-21/+12
| |
| * cascache.py: Always update mtime in contains_directory()Jürg Billeter2019-11-052-12/+8
| | | | | | | | This is required for LRU cache expiry.
| * element.py: Avoid redundant SourceCache.contains() callsJürg Billeter2019-11-051-0/+5
|/ | | | | If the sources of an element are cached, they will stay cached for the duration of the bst session.
* Merge branch 'link_fix' into 'master'bst-marge-bot2019-11-041-1/+1
|\ | | | | | | | | fix broken user guide link in README.rst See merge request BuildStream/buildstream!1685
| * fix broken user guide link in README.rstlink_fixMostyn Bramley-Moore2019-11-041-1/+1
|/
* Merge branch 'juerg/casd-connect' into 'master'bst-marge-bot2019-11-041-13/+9
|\ | | | | | | | | cascache.py: Defer attempt to connect to casd until socket file exists See merge request BuildStream/buildstream!1667
| * cascache.py: Defer attempt to connect to casd until socket file existsJürg Billeter2019-11-041-13/+9
|/ | | | | | gRPC delays reconnect attempts by at least a second. We don't want to wait that long. Wait for socket file to appear to avoid the need for multiple connect attempts.
* Merge branch 'traveltissues/changeflag' into 'master'bst-marge-bot2019-11-045-12/+18
|\ | | | | | | | | Replace flag name See merge request BuildStream/buildstream!1681
| * NEWS: add note about BST_KEY_REQUIRES_STAGEtraveltissues/changeflagDarius Makovsky2019-11-041-0/+7
| |
| * Replace BST_NO_PRESTAGE_KEY with BST_KEY_REQUIRES_STAGEDarius Makovsky2019-11-044-12/+11
|/ | | | Correct version number for BST_KEY_REQUIRES_STAGE
* Merge branch 'juerg/casd' into 'master'bst-marge-bot2019-11-041-17/+17
|\ | | | | | | | | .gitlab-ci.yml: Update docker images for buildbox-casd 0.0.4 See merge request BuildStream/buildstream!1683
| * .gitlab-ci.yml: Update docker images for buildbox-casd 0.0.4Jürg Billeter2019-11-041-17/+17
|/
* Merge branch 'chandan/remove-build-track' into 'master'bst-marge-bot2019-11-0434-727/+210
|\ | | | | | | | | frontend: Remove tracking options from `bst build` See merge request BuildStream/buildstream!1671
| * Regenerate man pages after removal of `--track*` from `bst build`Chandan Singh2019-11-0424-97/+128
| |
| * NEWS: Announce removal of tracking options from `bst build`Chandan Singh2019-11-041-0/+15
| |
| * frontend: Remove tracking options from `bst build`Chandan Singh2019-11-049-630/+67
|/ | | | | | | | | | | | | BREAKING CHANGE: Remove all tracking related options and flags from `bst build` command, as discussed on mailing list previously. See https://mail.gnome.org/archives/buildstream-list/2019-October/msg00009.html for the original proposal, and https://mail.gnome.org/archives/buildstream-list/2019-October/msg00024.html for a summary. At the same time, remove use of the removed options from our test suite.
* Merge branch 'bschubert/fix-git-ref' into 'master'bst-marge-bot2019-11-011-0/+2
|\ | | | | | | | | _gitsourcebase.py: Return 'None' when the ref is unset See merge request BuildStream/buildstream!1680
| * _gitsourcebase.py: Return 'None' when the ref is unsetbschubert/fix-git-refBenjamin Schubert2019-11-011-0/+2
|/ | | | | As per the documentation, sources are required to return 'None' when their ref is unset.
* Merge branch 'traveltissues/1184' into 'master'bst-marge-bot2019-11-011-3/+3
|\ | | | | | | | | | | | | buildgrid-compose.yml: reduce log level to WARN Closes #1184 See merge request BuildStream/buildstream!1677
| * buildgrid-compose.yml: reduce log level to WARNDarius Makovsky2019-11-011-3/+3
|/ | | | closes #1184
* Merge branch 'jonathan/win32_ci' into 'master'bst-marge-bot2019-10-313-1/+57
|\ | | | | | | | | | | | | Add native windows CI configuration Closes #1163 See merge request BuildStream/buildstream!1678
| * Add tests that the basic functionality of buildstream works in win32Jonathan Maw2019-10-313-1/+57
|/ | | | i.e. `bst help` and `bst init`
* Merge branch 'aevri/enable_spawn_ci_5a' into 'master'bst-marge-bot2019-10-313-19/+40
|\ | | | | | | | | spawn tests: enable most non-integration See merge request BuildStream/buildstream!1676
| * .gitlab-ci: tests-spawn, most non-integration okAngelos Evripiotis2019-10-311-1/+1
| | | | | | | | | | | | | | | | | | Enable artifactcache and frontend. This is most of the tests that aren't marked as being integration, as we ratchet up the required support for spawn mode. Note that this also doesn't include tests that aren't under the `tests/` directory.
| * tests/.../missing_dependencies: include gitAngelos Evripiotis2019-10-311-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | Symlink `git` into the separate tools bin directory. BuildStream needs `git` in order to be able to determine its version. This missing dependency is revealed when you run these tests in `spawn` mode, as it will re-run the base __init__.__version__ logic in a new process. Also take the opportunity to extract _symlink_host_tools_to_dir(), to re-use some code.
| * _plugincontext: stable ids for better picklingAngelos Evripiotis2019-10-311-8/+23
|/ | | | | | | | | | | | | Use the 'identifier' argument of PluginBase's make_plugin_source(), to ensure that the plugins have a consistent namespace when pickled and then unpickled in another process. This means that we can pickle plugins that are more than an entrypoint, e.g. ones that have multiple classes in the same file. This enables the `tests/frontend/mirror.py::test_mirror_fetch_multi` test to pass, which uses `fetch_source` plugin. That plugin has more than one class in it's file.
* Merge branch 'traveltissues/1161' into 'master'bst-marge-bot2019-10-3024-95/+155
|\ | | | | | | | | | | | | extend source api and remove private use from workspace plugin Closes #1161 See merge request BuildStream/buildstream!1651
| * local.py: use extended API, set BST_NO_PRESTAGE_KEYDarius Makovsky2019-10-3019-53/+81
| | | | | | | | | | | | | | tests: * local sources are cached * use git sources instead of local when removing objects * update expected cache keys
| * source.py: _get_unique_key in _trackDarius Makovsky2019-10-301-2/+7
| | | | | | | | | | Ensure that sources advertising BST_NO_PRESTAGE_KEY have keys after tracking.
| * element.py: inline local functionDarius Makovsky2019-10-301-5/+5
| |
| * tests: check that workspaces only call _stage onceDarius Makovsky2019-10-301-0/+14
| |
| * workspace.py: use the extended source apiDarius Makovsky2019-10-301-23/+3
| |
| * source.py: Add BST_NO_PRESTAGE_KEYDarius Makovsky2019-10-302-5/+44
| | | | | | | | | | | | | | | | | | | | Extend Source API Add `_stage_into_cas()` private method. Calls `self.stage` on a `CasBasedDirectory`. If the source sets BST_NO_PRESTAGE_KEY then the casdir is recreated from a stored digest and imported directly in `_stage`.
| * Remove unnecessary parameter in Source._get_unique_keyDarius Makovsky2019-10-302-11/+5
|/
* Merge branch 'aevri/fuse_mount_private' into 'master'bst-marge-bot2019-10-301-9/+9
|\ | | | | | | | | _fuse/mount: make mount() and unmount() private See merge request BuildStream/buildstream!1674
| * _fuse/mount: make mount() and unmount() privateAngelos Evripiotis2019-10-301-9/+9
|/ | | | | These aren't used by anything else, so make them private. This will make it easier to later reason about some spawn mode fixes.
* Merge branch 'aevri/enable_spawn_ci_5' into 'master'bst-marge-bot2019-10-298-56/+148
|\ | | | | | | | | job pickling: also pickle global state in node.pyx See merge request BuildStream/buildstream!1657
| * gitlab-ci: tests-spawn, enable tests/elementsAngelos Evripiotis2019-10-291-2/+1
| |
| * testing/runcli: node._reset_global_state on runAngelos Evripiotis2019-10-291-1/+10
| | | | | | | | | | Clear up some errors when running tests with `BST_FORCE_START_METHOD=spawn`.
| * testing, messenger: make dummy_context picklableAngelos Evripiotis2019-10-292-3/+35
| | | | | | | | | | | | | | | | | | | | | | Note that unittest.MagicMock is unfortunately not pickable, so if one tries to cross over to a ChildJob then we're in trouble. Sacrifice some convenience and a bit of safety by implementing our own _DummyTask instead of using MagicMock. Don't try to pickle the 'simple_task' context manager, if it's been overridden when creating a test context.
| * _scheduler/jobs: mv pickle details into jobpicklerAngelos Evripiotis2019-10-292-60/+59
| | | | | | | | | | Move pickle_child_job and do_pickled_child_job into jobpickler.py, to keep details like saving and restoring global state out of job.py.
| * job pickling: also pickle global state in node.pyxAngelos Evripiotis2019-10-293-19/+72
| |
| * conftest: more useful multiprocessing printAngelos Evripiotis2019-10-291-4/+4
|/ | | | | | Print what we set to, not what was set before us. This enables us to test that `spawn` mode is really enabled by looking at output from the tests.
* Merge branch 'chandan/pylint-c-extension-ujson' into 'master'bst-marge-bot2019-10-281-1/+2
|\ | | | | | | | | .pylintrc: Add ujson to extension-pkg-whitelist See merge request BuildStream/buildstream!1672
| * .pylintrc: Add ujson to extension-pkg-whitelistChandan Singh2019-10-281-1/+2
|/ | | | | | | | | | | | Add `ujson` to the `extension-pkg-whitelist` (we trust it!). Without this, `pylint` throws the following (non-fatal) warning: ``` src/buildstream/_cachekey.py:65:14: I1101: Module 'ujson' has no 'dumps' member, but source is unavailable. Consider adding this module to extension-pkg-whitelist if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member) ```
* Merge branch 'tlater/plugin-documentation-improvement' into 'master'bst-marge-bot2019-10-251-1/+1
|\ | | | | | | | | format_project.rst: De-obfuscate element/package differences See merge request BuildStream/buildstream!1670
| * format_project.rst: De-obfuscate element/package differencestlater/plugin-documentation-improvementTristan Maat2019-10-251-1/+1
|/ | | | | | When the package and project have the same name, it can be a little confusing what these things actually mean. This commit makes it a bit more obvious that the two can (and will often) be different.