| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of running `utils._get_dir_size(self.artifactdir)` to get the
size of the cache, it would be better to reuse
ArtifactCache.get_cache_size(), otherwise we would have to fully
calculate the size of the artifact cache twice at startup.
As the ArtifactCache is not yet instantiated when Context.load() runs,
move most of the quota checking code into a separate function which can
be called after the ArtifactCache is instantiated.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this commit, the cache size was being calculated every time an
artifact was committed to or pulled to the artifact cache. This is a
very IO demanding operation that doesn't scale as the cache gets bigger.
Now that the commit() and pull() methods of the ArtifactCache return the
number of bytes added, we can rework the code to calculate the size of
the cache only once at startup and to dynamically update it afterwards.
The CacheSize job is no longer required and can be removed.
|
|
|
|
|
|
| |
The ArtifactCache.commit() return value is more accurate for what
__artifact_size is being used for, as it takes the deduplication done by
the CAS cache into account.
|
|
|
|
|
| |
Track number of bytes required to commit or pull an artifact and return
this data on pull() and commit(). This takes deduplication into account.
|
|
|
|
| |
refpath contains only metadata, but every byte counts.
|
| |
|
|
|
|
| |
For symmetry with _create_tree.
|
|\
| |
| |
| |
| |
| |
| | |
Set version of ruaml.yaml to at least 0.15.41 but strictly less than 0.15.52.
Closes #571
See merge request BuildStream/buildstream!646
|
|/
|
|
|
|
|
| |
This allows to use version 0.15.51 rather than 0.15.0 which is
required for Python 3.
Fixes #571.
|
|\
| |
| |
| |
| |
| |
| | |
Fix tracking of junctions used in project.conf
Closes #565
See merge request BuildStream/buildstream!619
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
Stream._load() now returns early without resolving build pipeline when
only tracking. Resolving track pipelines does not require to fully
load project configurations when when elements to track are only
junctions.
However build pipelines require to fully load project
configurations. This might not be possible in the case a project
configuration includes a file from a junction that yet needs to be
tracked.
Fixes #565.
|
|\
| |
| |
| |
| | |
remote source: Add cachekey test
See merge request BuildStream/buildstream!636
|
|/
|
|
|
| |
Add cachekey tests for the recently added `remote` source plugin to
ensure that future changes do not break API compatibility.
|
|\
| |
| |
| |
| | |
doc: Fix install instructions for Fedora
See merge request BuildStream/buildstream!640
|
|/
|
|
|
|
|
|
|
| |
`python3-arpy` package is not available on Fedora so it has to be
installed using `pip`. Update instructions accordingly.
For reference, here is a pipeline that failed when trying to install
`arpy` using current instructions:
https://gitlab.com/BuildStream/buildstream-docker-images/-/jobs/88553245.
|
|\
| |
| |
| |
| |
| |
| | |
Deterministic staging
Closes #543, #544, #555, and #527
See merge request BuildStream/buildstream!616
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Staging could end-up with file with different rights depending on the
umask. The extracted files need to get their access rights fixed.
|
| |
| |
| |
| |
| |
| | |
This fix is applied to plugins bzr, git, patch.
Fixes #543 #544 #555.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of copying metadata on files staged by local, we manually set
mode to 0755 or 0644 depending on whether user execution was enabled
on source file.
This makes file modes deterministic independently on the way source
was distributed.
Non-deterministic mode copying all metadata can still be enabled by
disable 'deterministic' Boolean configuration on the plugin.
Fixes #527.
|
|\
| |
| |
| |
| | |
Add job to run tests in fedora 28
See merge request BuildStream/buildstream!643
|
| |
| |
| |
| |
| | |
This also fixes an error with pylint in setup.py:
setup.py:226:19: R1718: Consider using a set comprehension (consider-using-set-comprehension)
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
.gitlab-ci-yml: Add ubuntu 18.04 test
See merge request BuildStream/buildstream!523
|
|/ |
|
|\
| |
| |
| |
| | |
Fix typo in dev-requirements.txt
See merge request BuildStream/buildstream!641
|
|/ |
|
|\
| |
| |
| |
| | |
Move development reqirements to dev-requirements.txt
See merge request BuildStream/buildstream!637
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In some cases, such as when working inside a virtual environment, it can
be desirable to install all dependencies for running tests using `pip`.
This is currently not possible since setuptools does not support
installing these dependencies in a virtual environment (by design).
(See https://stackoverflow.com/a/21003259.)
To circumvent this issue, move such requirements to
`dev-requirements.txt` file that can be used easily with
`pip install -r`. This also enables tests to be run directly using
`pytest`, which can be more convenient than `-addopts` approach when one
needs to add multiple options.
This will also be useful in creating better testuite images, and fix
some of the issues noticed in
https://gitlab.com/BuildStream/buildstream-docker-images/merge_requests/56.
|
|\
| |
| |
| |
| |
| |
| | |
Set environment in bwrap command line instead of its environment
Closes #498
See merge request BuildStream/buildstream!565
|
|/
|
|
| |
Fixes #498
|
|\
| |
| |
| |
| |
| |
| | |
Patch for issue #191 support relative workspaces
Closes #191
See merge request BuildStream/buildstream!504
|
|/
|
|
|
|
|
| |
This fixes #191
A note has been added to NEWS explaining backwards
compatibility issues
|
|\
| |
| |
| |
| | |
Pin ruamel.yaml version to <= 0.15
See merge request BuildStream/buildstream!630
|
|/ |
|
|\
| |
| |
| |
| | |
buildstream/_project.py: Restrict max-jobs
See merge request BuildStream/buildstream!620
|
| |
| |
| |
| |
| |
| | |
even if the machine have mores cores available
Patch taken from YBD: https://gitlab.com/baserock/ybd/blob/master/ybd/app.py#L227
|
|/
|
|
|
|
|
|
|
| |
Multiprocessing with n_jobs given by multiprocessing.cpu_count() is not optimal for
systems where not all CPU can be used (in particular, Docker, CI etc).
As suggested in the multiprocessing docs
(http://docs.python.org/3/library/multiprocessing.html#multiprocessing.cpu_count)
using len(os.sched_getaffinity(0)) might be better.
|
|\
| |
| |
| |
| |
| |
| | |
Keep original flags for create in SafeHardlinks.
Closes #143
See merge request BuildStream/buildstream!624
|
|/
|
|
|
|
|
|
|
|
| |
When open(2) is used with flags O_CREAT|O_RDWR, the file descriptor
must be readable. Unfortunately O_RDWR was not passed which made
read fail with EBADF and mmap to signal SIGBUS.
This issue happened with man-db for example.
Fixes #143.
|
|\
| |
| |
| |
| | |
Fix race condition when calculating disk usage
See merge request BuildStream/buildstream!600
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
The CAS uses a temp directory while manipulating the cache, temporary
files can be added and removed while adding artifacts to the cache here.
Since calculation of the cache size happens in parallel to artifact
cache additions, this causes race conditions in the size calculation
job, as we end up calling `stat` on temporary files which are being
removed in parallel.
Handle this by moving the temporary directory out of the way, and avoid
considering the tmp directory when calculating the cache size
|
|\
| |
| |
| |
| | |
.gitlab-ci.yml: Remove unused script "install.sh"
See merge request BuildStream/buildstream!617
|
|/ |
|
|\
| |
| |
| |
| | |
Python 3.7 support
See merge request BuildStream/buildstream!615
|
| |
| |
| |
| |
| |
| | |
Do not rely on `StopIteration` bubbling up.
https://www.python.org/dev/peps/pep-0479/
|
|/
|
|
|
|
|
|
|
| |
This reverts commit 4f168b9b6a02216e2fae24d758ae6b778e545869.
The latest version of pytest_pylint works fine with pylint 2, which
means there is no longer a reason to restrict the pylint version.
pylint 2 is required for Python 3.7.
|