| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| |
| |
| | |
Make ErrorDomain a unique enumeration
See merge request BuildStream/buildstream!1399
|
|/
|
|
|
|
|
|
| |
For some reason PROG_NOT_FOUND and APP were both under 12 which could be
confusing. Changed PROG_NOT_FOUND to 16 and added a unique decorator to
prevent this from happening again.
Updated shellbuildtrees test to check correct error domain.
|
|\
| |
| |
| |
| | |
_scheduler/scheduler.py: Remove unused elapsed_time() calls
See merge request BuildStream/buildstream!1398
|
|/
|
|
|
|
| |
Both run() and the App callback _ticker_callback() call & return
elapsed_time(), which is the unused by the respective callers and
as such is unnecessary.
|
|\
| |
| |
| |
| | |
cascache.py: Remove unused methods commit() and _commit_directory()
See merge request BuildStream/buildstream!1395
|
|/ |
|
|\
| |
| |
| |
| | |
utils._get_volume_size: use shutil.disk_usage
See merge request BuildStream/buildstream!1393
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is win32-friendly, less to read, and fixes a latent bug.
Avoid dealing with low-level platform specifics by using the
higher-level shutil.disk_usage() function to calc total and available
bytes for us.
shutil is also more correct - it uses f_frsize to convert from blocks to
bytes, instead of f_bsize. I verified that the numbers match with the
output from `df -k`, whereas the old implementation did not. Here are
the meanings from `man statvfs`:
f_frsize The size in bytes of the minimum unit of allocation on
this file system. (This corresponds to the f_bsize
member of struct statfs.)
f_bsize The preferred length of I/O requests for files on this
file system. (Corresponds to the f_iosize member of
struct statfs.)
Link to shutil.disk_usage() implementation:
https://github.com/python/cpython/blob/3.5/Lib/shutil.py#L980
|
|\
| |
| |
| |
| | |
Refactor 'super(cls, self)' -> 'super()'
See merge request BuildStream/buildstream!1391
|
|/
|
|
|
|
|
|
|
|
| |
For most use-cases with modern Python, it's not necessary to supply the
'type' or 'object-or-type' arguments to super().
Replace all our instances with arg-less super, which is less
error-prone.
https://docs.python.org/3.5/library/functions.html#super
|
|\
| |
| |
| |
| |
| |
| | |
tests: Build wheel before installing BuildStream in overnight tests
Closes #1045
See merge request BuildStream/buildstream!1388
|
|/
|
|
|
|
|
| |
BuildStream now requires setuptools and cython when building the wheel
and thus can't be installed directly with pip install --no-index.
Building a wheel beforehand allows us to install without dependencies.
|
|\
| |
| |
| |
| | |
plugins/sources: Remove 'or None' call that will never be true
See merge request BuildStream/buildstream!1387
|
|/
|
|
|
| |
Since node_get_member has a default value passed in, it is impossible
for the method to return 'None'
|
|\
| |
| |
| |
| | |
rewrite _extract_depends_from_node in Cython and optimize
See merge request BuildStream/buildstream!1383
|
| |
| |
| |
| |
| | |
range() and access to the list can be optimized better by cython than
the enumerate() call.
|
| |
| |
| |
| |
| |
| |
| | |
We need to call this function three times in a row then concatenate the
three results.
Using an accumulator is slightly faster.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
extract_depends_from_node has two different behaviors depending on
whether it is calling itself or something else is calling it.
Extracting the inner calls to a helper function helps speed up the code
and makes it more understandable.
|
|/
|
|
|
|
|
|
|
|
|
| |
extract_depends_from_node is only depending on things declared in types,
loadelement doesn't have any dependency on it. It makes more sense to
have it in types.pyx.
Moreover, this allows us to cythonize the function, reducing its total
runtime impact.
- _yaml: expose node_del as public api for Cython
|
|\
| |
| |
| |
| | |
Make the Node api stricter, by only accepting nodes
See merge request BuildStream/buildstream!1384
|
| |
| |
| |
| |
| | |
Also update documentation in plugin for APIs that do accept Node and
not `dict`.
|
| |
| |
| |
| |
| | |
By being more restrictive when creating new nodes, we can remove
checks for not-node values.
|
| |
| |
| |
| |
| | |
This is to restrict the API to always work with nodes in order to
sanitize the API
|
|/
|
|
|
| |
In order to move to a cleaner Node api, we need to ensure that what we
are treating is correctly set up as being Nodes.
|
|\
| |
| |
| |
| | |
testing/_utils/site.py: Fix missing BZR assignment
See merge request BuildStream/buildstream!1385
|
|/
|
|
|
|
| |
Ensure that BZR is assigned to None in exception handling when
not available on the host. Needed for tests/testutils/repo/bzr.py
import.
|
|\
| |
| |
| |
| |
| |
| | |
Push based pipeline
Closes #1002 and #943
See merge request BuildStream/buildstream!1344
|
| |
| |
| |
| |
| |
| |
| | |
This patch includes setting a _depth to each element
once the pipeline has been sorted. This is necessary
as we need to store elements in the heapq sorted by
their depth.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Queue.enqueue() and Queue.harvest_jobs() now exhibit
push-based behaviour. Although most of the logic from
Queue.enqueue() has been moved to Queue._enqueue_element()
* QueueStatus.WAIT has been replaced with QueueStatus.PENDING
to reflect the new push-based nature of the queues
* There now exists a virtual method in Queue:
register_pending_element which is used to register am
element which is not immediately ready to be processed
in the queue with specific callbacks. These
callbacks will enqueue the element when called.
|
| |
| |
| |
| |
| |
| |
| | |
This commit introduces three callback functions which will be used
to callback to relevant queues upon specific state changes:
when an element becomes required, when an element becomes able
to query the cache and when an element becomes buildable.
|
| | |
|
|/
|
|
|
|
|
| |
In order to know whether an element is buildable, we need to know
whether it's dependencies are cached as well as whether they have
been marked as ready for runtime. This patch introduces a second
"ready_for_runtime" check.
|
|\
| |
| |
| |
| | |
Use enums for Job-related constants
See merge request BuildStream/buildstream!1380
|
| |
| |
| |
| |
| |
| | |
Since JobStatus is an enum, it's clearer to compare using 'is' -
equality comparison will fail in the same cases, but might lull folks
into thinking that comparison with integer would also work.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This provides some minor guards against mistakes, and we'll be able to
do type-checking later.
This does open the possibility of problems if folks mistakenly try to
pass off an integer as a JobStatus.
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
Optimize _loader/types.py
See merge request BuildStream/buildstream!1379
|
| |
| |
| |
| |
| | |
That way, cython can make better inference on the code and does not
need to be too conservative.
|
| |
| |
| |
| |
| | |
Moving this class to Cython gives a non-negligeable speedup on 'show'
operations.
|
| |
| |
| |
| |
| |
| | |
- _yaml: export node_validate function as Cython, as it was not done
before. This requires rewriting the function to remove a closure.
- Optimize node check by not calling is_node().
|
| |
| |
| |
| |
| |
| | |
Types is a simple module that accounts for a few percent of a basic
'show' operation. Having it cythonized allows us to get better
performance without too much wokr
|
|/
|
|
|
| |
We don't expected anything else than `str` or `Node`, so type()
should be enough
|
|\
| |
| |
| |
| | |
Ensure pylint runs in tests/artifactcache
See merge request BuildStream/buildstream!1377
|
| |
| |
| |
| |
| |
| |
| |
| | |
tests/integration was lacking a __init__.py file, meaning it was not
recognized as a python package, and thus, pylint would not check
anything inside the directory.
Adding __init__.py ensures we have correct checks here.
|
| | |
|
| | |
|
| | |
|