| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
In order to get the 'arguments-differ' warning enabled sooner rather
than later, ignore all existing cases. We'll tackle them in separate
work.
|
|\
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Some imports are fixtures, that need to be in the current namespace when
pytest runs. However, pylint does not know this.
Disabling pylint checks on those imports
|
|/
|
|
|
|
|
|
|
|
| |
This is due to pytest fixtures having to be named the same as the test
arguments.
This is a pre-requisite to enable pylint on this directory
We need to do this per file as we can't blanket disable for directories.
See upstream issue: https://github.com/PyCQA/pylint/issues/618
|
|\
| |
| |
| |
| | |
Remove tests/testutils/site.py and move everything to buildstream/testing/_utils/site.py
See merge request BuildStream/buildstream!1375
|
| |
| |
| |
| |
| |
| | |
What this checks does is check if the ostree plugin is installed and
fully configured. Renaming to HAVE_OSTREE_PLUGIN makes it slightly more
explicit
|
| |
| |
| |
| |
| |
| | |
The only place needing to know about OSTREE is the flatpak-autotools for
the documentation. We can therefore move the OSTREE business here and
remove completely the site file, ending up with a single one left.
|
| | |
|