Commits on Source (90)
-
Angelos Evripiotis authored
-
Angelos Evripiotis authored
cli.py: add a hint about '--' to 'bst shell' help See merge request !1078
-
Tristan Van Berkom authored
With out this, empty directories in the refs/heads directory just grow unconditionally.
-
Tristan Van Berkom authored
Enhance the test which checks removal of the extract directories with an additional check that the ref directories are cleaned up when removing artifacts.
-
Tristan Van Berkom authored
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.
-
Tristan Van Berkom authored
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.
-
Tristan Van Berkom authored
CASCache cleanup improvements See merge request !1087
-
Tristan Van Berkom authored
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.
-
Tristan Van Berkom authored
tests/testutils/python_repo.py: Use subprocess to run sdist See merge request !1090
-
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.
-
Chandan Singh authored
Derive import plugin from Element instead of BuildElement See merge request !1089
-
`remove_artifact_from_cache` used a hard-coded path to remove artifacts, which wasn't sufficient for integration tests.
-
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
-
Tristan Van Berkom authored
Avoid "showing 0 lines" messages when we're asked to show no lines Closes #779 See merge request !1031
-
richardmaw-codethink authored
Old versions of git lack --force and --tags, but the same effect can be had by specifying refspecs.
-
richardmaw-codethink authored
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.
-
richardmaw-codethink authored
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.
-
Centos is apparently different enough from fedora when running tests.
-
Valentin David authored
Fix CentOS Closes #833 See merge request !1085
-
Chandan Singh authored
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.
-
Chandan Singh authored
CONTRIBUTING.rst: Fix formatting of link to pip docs See merge request !1094
-
James Ennis authored
-
James Ennis authored
-
James Ennis authored
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.
-
James Ennis authored
'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.
-
James Ennis authored
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.
-
James Ennis authored
-
James Ennis authored
-
James Ennis authored
-
James Ennis authored
-
James Ennis authored
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
-
James Ennis authored
Move push/pull/checkout to the artifact subcommand group See merge request !1045
-
James Ennis authored
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.
-
James Ennis authored
Add an obsoletion note to our deprecated commands. See merge request !1097
-
Tristan Van Berkom authored
This fixes a recent regression introduced in c2fc2a5e
-
Tristan Van Berkom authored
_scheduler: Fix dont display a failure for terminated jobs See merge request !1096
-
Tristan Van Berkom authored
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.
-
Tristan Van Berkom authored
tests/integration/pullbuildtrees.py: Fix the non-integration case. See merge request !1098
-
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.
-
Chandan Singh authored
tox.ini: Unpin sphinx dependency See merge request !1093
-
Tristan Van Berkom authored
Instead of sitting mysteriously alone in internals/utils.py
-
Tristan Van Berkom authored
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.
-
Tristan Van Berkom authored
Tristan/insufficient storage error See merge request !1102
-
Tristan Van Berkom authored
Instead of a single target, we can always provide a single target in a list.
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
Reduce number of calls to `bst show` in tests See merge request !1103
-
This tests how BuildStream reacts when it fails to write the tracking results to the element files or project.refs file, which is an operation that plugins do not play a part in. As such, removing the per repo kind parameterization from this test as multiple runs are redundant here.
-
Tristan Van Berkom authored
test_track_error_cannot_write_file() fixup See merge request !1104
-
Previously, it merely tested that buildstream did not fall other, rather than whether it did anything useful.
-
Previously, there was no way of detecting whether fetching happened, as an element with an open workspace will not be fetched.
-
Jürg Billeter authored
Add tests to cover reinstated support for guessing targets See merge request !1042
-
Jürg Billeter authored
There is no reason to disallow guess_element() for bst build --all.
-
_versions.py: Bump format version
-
Jürg Billeter authored
_frontend/cli.py: Use new methods. Based on patches by Phillip Smyth.
-
Jürg Billeter authored
This filters out junctions from the list of targets.
-
Jürg Billeter authored
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.
-
Jürg Billeter authored
-
-
Jürg Billeter authored
-
Jürg Billeter authored
-
Jürg Billeter authored
Test that `bst build` does not fail in a project where the list of default targets includes a junction (junctions cannot be built).
-
-
Jürg Billeter authored
Add support for default targets See merge request !925
-
Tristan Van Berkom authored
Don't require the interest to be registered, just discard any interest, this function just sets a bit in a mask, and is not intended to maintain a balance like the reserve() function is.
-
Tristan Van Berkom authored
When running any session that has Queues which require Resource.CACHE, check if our loaded estimated size exceeds the quota, and if so; lock the Resource.CACHE resource exclusively right away and run an exclusive initial cache size job. This ensures we cleanup first before doing anything which might add to the cache at startup time, if deemed needed. This is a partial fix for issue #737
-
Tristan Van Berkom authored
In order to test when core activities occur by parsing the stderr in tests, we should make the messages conform more. At the same time, this restores alignment of columns in core messages with the element processing related messages. Also, _scheduler/scheduler.py is updated to make it's activity names conform to the (current) 5 character limit for the sake of alignment. The tests/frontend/logging.py test gets it's regexes updated for the log lines it checks for in stderr.
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
Cache management fixes See merge request !1091
-
Tristan Van Berkom authored
The artifact cache emits messages, and we want to allow that in preflight.
-
Tristan Van Berkom authored
We can streamline this call to os.statvfs() in a few places.
-
Tristan Van Berkom authored
This will benefit from a better UtilError being raised, and and turns the artifact cache's local function into a one liner. The loop which finds the first existing directory in the given path has been removed, being meaningless due to the call to os.makedirs() in ArtifactCache.__init__(). The local function was renamed to _get_cache_volume_size() and no longer takes any arguments, which is more suitable for the function as it serves as a testing override surface for unittest.mock(). The following test cases which use the function to override the ArtifactCache behavior have been updated to use the new overridable function name: tests/artifactcache/cache_size.py tests/artifactcache/expiry.py
-
Tristan Van Berkom authored
A simple object which creates a snapshot of current usage statistics for easy reporting in the frontend.
-
Tristan Van Berkom authored
A frontend facing API for obtaining usage statistics. I would have put this on Stream instead, but the Context seems to be the de facto place for looking up the artifact cache in general so let's put it here.
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
This also adds some comments around the main status bar heading rendering function.
-
Tristan Van Berkom authored
Added some useful status messages when: * Calculating a new artifact cache usage size * Starting a cleanup * Finishing a cleanup Also enhanced messaging about what was cleaned up so far when aborting a cleanup.
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
Updates the known cache size in the main process while the cleanup process is ongoing, so that the status indicators update live while the cleanup happens.
-
Tristan Van Berkom authored
This seems to have been copy/pasted from cascache, and documents the function to possibly return None if defer_prune was specified, but this function does not expose defer_prune.
-
Tristan Van Berkom authored
Cache management logging enhancements See merge request !1105
-
-
Now that 'bst track' is obsolete, change guidance to refer to the replacement 'bst source track' instead.
-
Now that 'bst fetch' is obsolete, change guidance to refer to the replacement 'bst source fetch' instead.
Showing
- .gitlab-ci.yml 5 additions, 0 deletions.gitlab-ci.yml
- CONTRIBUTING.rst 1 addition, 1 deletionCONTRIBUTING.rst
- NEWS 15 additions, 1 deletionNEWS
- buildstream/_artifactcache.py 128 additions, 36 deletionsbuildstream/_artifactcache.py
- buildstream/_cas/cascache.py 56 additions, 11 deletionsbuildstream/_cas/cascache.py
- buildstream/_context.py 12 additions, 16 deletionsbuildstream/_context.py
- buildstream/_frontend/app.py 7 additions, 5 deletionsbuildstream/_frontend/app.py
- buildstream/_frontend/cli.py 286 additions, 153 deletionsbuildstream/_frontend/cli.py
- buildstream/_frontend/status.py 35 additions, 7 deletionsbuildstream/_frontend/status.py
- buildstream/_frontend/widget.py 17 additions, 19 deletionsbuildstream/_frontend/widget.py
- buildstream/_gitsourcebase.py 3 additions, 2 deletionsbuildstream/_gitsourcebase.py
- buildstream/_loader/loader.py 2 additions, 2 deletionsbuildstream/_loader/loader.py
- buildstream/_pipeline.py 2 additions, 2 deletionsbuildstream/_pipeline.py
- buildstream/_project.py 46 additions, 1 deletionbuildstream/_project.py
- buildstream/_scheduler/jobs/cleanupjob.py 14 additions, 1 deletionbuildstream/_scheduler/jobs/cleanupjob.py
- buildstream/_scheduler/jobs/job.py 60 additions, 19 deletionsbuildstream/_scheduler/jobs/job.py
- buildstream/_scheduler/queues/queue.py 1 addition, 1 deletionbuildstream/_scheduler/queues/queue.py
- buildstream/_scheduler/resources.py 1 addition, 1 deletionbuildstream/_scheduler/resources.py
- buildstream/_scheduler/scheduler.py 61 additions, 4 deletionsbuildstream/_scheduler/scheduler.py
- buildstream/_stream.py 15 additions, 0 deletionsbuildstream/_stream.py
This diff is collapsed.