| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
When we are testing push failures, we are being too strict
when we try to verify that the remote has failed to be initialized.
The assertion was failing because of slightly different gRPC error
messages. Now the assertion is less strict but still appropriate.
|
|\
| |
| |
| |
| | |
_scheduler/jobs: refactor, defensive send_message
See merge request BuildStream/buildstream!1373
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Simplify the custom 'handle_message' / 'send_message' protocol by not
requiring a message_type. These message types share a namespace with the
base Job implementation, which could cause trouble.
Introduce a new private '_send_message' to implement the old
functionality.
Subclasses are free to pack a message type into their own messages, this
isn't necessary at present and simplifies existing subclass code.
|
|/ |
|
|\
| |
| |
| |
| | |
Ensure pylint runs in tests/integration
See merge request BuildStream/buildstream!1376
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
Python method default arguments should never be mutable.
Using 'None' as a canary and setting them afterwards instead.
|
| |
| |
| |
| | |
Pylint was complaining about it.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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
|
|\
| |
| |
| |
| | |
Ensure pylint runs in some tests paths
See merge request BuildStream/buildstream!1378
|
| |
| |
| |
| |
| | |
tests/plugins was missing an __init__.py, which meant pylint
was never run there.
|
| |
| |
| |
| |
| | |
tests/remoteexecution missing an __init__.py, which meant pylint
was never run there.
|
|/
|
|
|
| |
tests/sandboxes was missing an __init__.py, which meant pylint
was never run there.
|
|\
| |
| |
| |
| | |
_loader/loader: cythonize valid_chars_name
See merge request BuildStream/buildstream!1371
|
|/
|
|
|
|
|
|
|
| |
- Create a new _loader/utils.pyx cython module for functions cythonized
in the loader module.
- Move valid_chars_name from loader to utils and cythonize.
This function is called extensively, and easy to extract
|
|\
| |
| |
| |
| |
| |
| | |
Improved handling of legacy remotes
Closes #1025
See merge request BuildStream/buildstream!1366
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This creates a new ArtifactRemote class, derived from CASRemote that
extends initialisation to check for an artifact service. This drops the
remote early rather than raising an error on method not found each time
it tries to use it.
Fixes #1025
|
| |
| |
| |
| |
| |
| | |
And update relavant grpc files.
Part of #1025
|
|/ |
|
|\
| |
| |
| |
| | |
Split ChildJob out from Job class
See merge request BuildStream/buildstream!1334
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Make it clearer what happens in which process by splitting out a
'ChildJob', which encapsulates the work that happens in the child
process.
This also makes it possible to control what is transferred to the
child process. This is very useful for adding support for the 'spawn'
method of creating child processes as opposed to the 'fork' method.
|
| |
| |
| |
| | |
This just does the default behaviour, clearer to remove it.
|
|/ |
|
|\
| |
| |
| |
| | |
Optimize _yaml.node_get
See merge request BuildStream/buildstream!1370
|
| |
| |
| |
| |
| | |
This reduces considerably the number of nodes created and thus speeds
up the calls to node_get.
|
|/
|
|
|
|
|
|
|
|
|
| |
Calls to `isinstance` can be particularily costly. Using type() is
much faster. The only known case where the `isinstance` was useful
is for dictionnaries where we would ask for a 'Mapping' instead.
Disallowing 'Mapping' for expected_type considerably speeds up the
calls to this functions.
Also add into NEWS
|
|\
| |
| |
| |
| | |
setup.py: Be more restrictive with BST_CYTHON_TRACE values
See merge request BuildStream/buildstream!1368
|
|/
|
|
|
|
| |
"0" evaluates to 'True' in python, which incorrectly switched on
the BST_CYTHON_TRACE. Forcing an int for this environment variable
allows us to ensure we are correct.
|
|\
| |
| |
| |
| | |
Setup.py: Disable linetrace by default and only enable when using coverage
See merge request BuildStream/buildstream!1367
|
|/
|
|
|
|
|
|
|
| |
It turns out that enabling 'linetrace', does have a runtime cost even
if not enabled in distutils.
Therefore disabling it by default. In order to run coverage, we
therefore need to retranspile the .pyx files with ENABLE_CYTHON_TRACE
set.
|
|\
| |
| |
| |
| |
| |
| | |
Update docs regarding artifact and source caches
Closes #1024
See merge request BuildStream/buildstream!1362
|
| |
| |
| |
| |
| |
| |
| |
| | |
Now that we have both artifact and source caches the documentation
is updated to reflect that. Some sections headings/links etc. have been
expanded and changed.
Part of #1025
|
| |
| |
| |
| | |
Part of #1024
|
|/
|
|
| |
Part of #1024
|
|\
| |
| |
| |
| | |
Make more parts of the loader iterative
See merge request BuildStream/buildstream!1365
|
| |
| |
| |
| |
| |
| |
| | |
When multiple top level elements are specified we need to keep track
of whether we have completed the iterative collection process.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
| |
| |
| |
| |
| |
| |
| | |
To reduce stack usage during load, make the LoadElement to MetaElement
conversion be iterative.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|/
|
|
|
|
|
|
| |
The _sort_dependencies() method does not need to be an instance method,
nor does it need to be recursive. This fixes both of those things which
can get us closer to being able to cythonize the loader.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|\
| |
| |
| |
| | |
Rewrite `Loader._check_circular_deps()` to be iterative
See merge request BuildStream/buildstream!1364
|
| |
| |
| |
| |
| |
| |
| |
| | |
In an effort to reduce the places where the stack might be a problem
as we Cythonize things, rewrite the circular dependency checker to
be iterative.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|/
|
|
|
|
|
|
| |
This did not need to be an instance method, making it static might
improve performance and definitely makes it clear that it's not
actually bound to the loader instances.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|\
| |
| |
| |
| | |
Introduce Cython for better performances
See merge request BuildStream/buildstream!1350
|
| |
| |
| |
| |
| | |
This allows for a quicker comparison while keeping a good readability
of the code
|
| |
| |
| |
| |
| |
| |
| | |
The `SYNTHETIC_COUNTER` is an iterator that is called a lot in
_yaml, one for each synthetic node. Cython is not able to optimize
`itertools.counter` well enough. Providing a custom C function allows
to reduce the amount of python code called in this critical codepath
|