summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Revert "WIP: pickle: rm special cases, plugins pickle now"aevri/picklable_jobsAngelos Evripiotis2019-05-232-0/+8
| | | | This reverts commit 0a9b85460c2ad1298449a1eea936a2ca30220ffd.
* WIP: pickle: rm special cases, plugins pickle nowAngelos Evripiotis2019-05-232-8/+0
|
* WIP: pickle: rm commented out special caseAngelos Evripiotis2019-05-231-8/+0
|
* WIP: pickle: remove PicklablePluginProxyAngelos Evripiotis2019-05-233-47/+2
|
* WIP: pickle: use custom reduction for pluginsAngelos Evripiotis2019-05-235-15/+75
| | | | | This removes the need for a PicklablePluginProxy, and perhaps makes this easier to follow, as it is more direct.
* WIP: pickle: _do_pickled_child_job and friendsAngelos Evripiotis2019-05-231-14/+35
|
* WIP: pickle: queues no longer pickledAngelos Evripiotis2019-05-233-18/+0
|
* WIP: perf: don't bind entire queue to callbackAngelos Evripiotis2019-05-237-34/+50
|
* WIP: spawn: Job no longer pickledAngelos Evripiotis2019-05-231-9/+0
|
* TEMP: time and size of pickling and spawningAngelos Evripiotis2019-05-231-2/+20
|
* WIP: pickle: comment out test_pickle in JobAngelos Evripiotis2019-05-231-7/+7
|
* TEMP: breakpoint on recursion errorAngelos Evripiotis2019-05-231-1/+2
|
* WIP: pickle: use PicklablePluginProxy insteadAngelos Evripiotis2019-05-235-80/+55
|
* TEMP: testpickleAngelos Evripiotis2019-05-232-0/+207
|
* TEMP: MultiprocessingPdb, traceback in Job._child_actionAngelos Evripiotis2019-05-231-1/+21
|
* TEMP: disable status renderingAngelos Evripiotis2019-05-231-1/+1
| | | | This interferes with pdb debugging in subprocesses.
* WIP: pickle: Plugin - disable picklingAngelos Evripiotis2019-05-231-0/+6
|
* WIP: pickle: Element, Source _meta_kindAngelos Evripiotis2019-05-232-0/+3
|
* WIP: pickle: FetchQueue - not needed?Angelos Evripiotis2019-05-231-0/+6
|
* WIP: pickle: {ArtifactPush,Build}Queue - not needed?Angelos Evripiotis2019-05-232-0/+12
|
* WIP: pickle: Job, ElementJob, Element, SourceAngelos Evripiotis2019-05-232-0/+87
|
* WIP: pickle: optionpool: make picklableAngelos Evripiotis2019-05-231-0/+12
|
* WIP: pickle: PluginContext, ElementFactory, SourceFactoryAngelos Evripiotis2019-05-234-10/+40
| | | | | | | Make PluginContext picklable by passing down unique identifiers that can used to reconstruct them afterwards. Clear out the 'types' cache, we'll have to build it up again on-demand.
* WIP: pickle: Context: no _message_handlerAngelos Evripiotis2019-05-231-0/+13
|
* WIP: pickle: _{artifact,source}cache: __getstate__ no elementsAngelos Evripiotis2019-05-232-0/+12
|
* WIP: spawn: can't use job result yetAngelos Evripiotis2019-05-231-2/+3
|
* WIP: spawn: use multiprocessing.ManagerAngelos Evripiotis2019-05-232-9/+16
| | | | | Note that the queue changes went into 4d0a2d60c6ac01695b39871002d990646c6fc327 for pickling Job, ElementJob, etc.
* WIP: spawn: no Plugin._lookup, class instance plugin mapAngelos Evripiotis2019-05-231-4/+4
|
* WIP: spawn: no _is_main_processAngelos Evripiotis2019-05-231-1/+3
|
* jobs/job: send ChildJob the context, not schedulerAngelos Evripiotis2019-05-231-6/+6
| | | | | | | Instead of passing the whole scheduler to the ChildJob, only pass the part that is used - the context. Reducing the amount of shared state makes it easier to follow what's going on, and will make it more economical to move to away from the 'fork' model later.
* spawn: split jobs into parent and childAngelos Evripiotis2019-05-234-64/+153
| | | | | | | | | | Make it a bit clearer what happens in which process by splitting out a 'ChildJob', which encapsulates the work that will happen in the child process. This also makes it possible to control what will be transferred to the child process, which is very useful for adding support for the 'spawn' method of creating child processes as opposed to the 'fork' method.
* jobs/job: Add a fullstop to Job explanationAngelos Evripiotis2019-05-231-1/+1
|
* jobs: refactor, use new set_message_unique_idaevri/set_message_unique_idAngelos Evripiotis2019-05-233-26/+43
| | | | | | | | | | | Ease the burden on subclasses of Job slightly, by providing a new set_message_unique_id() method. It ensures that created Message instances will use that id. This removes the need to override the message() method, so it is no longer in the 'abstract method' section. Enable callers to Job's message() method to override the 'unique_id'.
* Merge branch 'aevri/mv_job_parent_above_child' into 'master'bst-marge-bot2019-05-221-131/+131
|\ | | | | | | | | _scheduler/jobs/job: mv _parent* above _child* See merge request BuildStream/buildstream!1349
| * _scheduler/jobs/job: mv _parent* above _child*Angelos Evripiotis2019-05-221-131/+131
|/ | | | | | | | Move the parent-specific methods above the child-specific methods. This makes slightly more sense chronologically, as the parent creates the child. It will also make diffs cleaner when splitting parent and child into separate classes.
* Merge branch 'aevri/fix_logging_regex_test' into 'master'Angelos Evripiotis2019-05-221-2/+13
|\ | | | | | | | | tests/frontend/logging.py: fix error message regex See merge request BuildStream/buildstream!1348
| * tests/frontend/logging.py: fix error message regexAngelos Evripiotis2019-05-221-2/+13
|/ | | | | | | | | | | This regex was not matching, and therefore the assert was not doing anything. Fix the regex to match BuildStream's current output. Add a check to make sure that we get exactly the number of expected matches. This means we get an obvious error if the regex stops matching again.
* Merge branch 'chandan/src-directory' into 'master'Chandan Singh2019-05-21250-51/+52
|\ | | | | | | | | | | | | Move source from 'buildstream' to 'src/buildstream' Closes #1009 See merge request BuildStream/buildstream!1322
| * CONTRIBUTING.rst: Update path to BuildStream source filesChandan Singh2019-05-211-2/+2
| |
| * .gitlab-ci.yml: Fix source path for analysis jobsChandan Singh2019-05-211-6/+6
| | | | | | | | | | Since the `buildstream` module now lives inside `src` directory, also update the paths that we give to `radon`.
| * .gitattributes: Update path to buildstream/_version.pyChandan Singh2019-05-211-1/+1
| | | | | | | | | | This file has been moved under `src` so update the `.gitattributes` entry accordingly.
| * .coveragerc: Fix coverage reporting after move to src directorychandan/src-directoryChandan Singh2019-05-211-3/+1
| | | | | | | | | | | | | | | | | | * `include` directive is unnecessary as all of `buildstream` is already included, so remove it. * Having `buildstream/buildstream` in `paths` confuses `coverage combine` as it tries to insert `src/buildstream` in the path twice in that case.
| * tests: Fix import order of buildstream and tests modulesChandan Singh2019-05-214-7/+9
| | | | | | | | | | | | | | | | Now that the `buildstream` module is inside `src` directory, `pylint` treats `buildstream` as a third party module inside `tests`. As such, it wants the imports from `buildstream` to be placed before imports from `tests`. Adopt this style to fix the lint errors, which is probably also good for readability.
| * Move source from 'buildstream' to 'src/buildstream'Chandan Singh2019-05-21243-33/+34
|/ | | | | | This was discussed in #1008. Fixes #1009.
* Merge branch 'chandan/coverage-doesnt-need-deps' into 'master'Chandan Singh2019-05-211-2/+1
|\ | | | | | | | | tox.ini: Coverage does not need module installed See merge request BuildStream/buildstream!1347
| * tox.ini: Coverage does not need module installedChandan Singh2019-05-211-2/+1
|/ | | | | Coverage does not need the module, or its dependencies, to be installed. Save time by not installing them extraneously.
* Merge branch 'jonathan/cached-to-artifact' into 'master'Jonathan Maw2019-05-212-32/+41
|\ | | | | | | | | | | | | Move Element.__*cached variable to Artifact class Closes #1015 See merge request BuildStream/buildstream!1325
| * Delegate storage of cached state to the Artifact classJonathan Maw2019-05-212-32/+41
|/ | | | | This commit also removes Element.__is_cached because it doesn't seem to serve a purpose.
* Merge branch 'danielsilverstone-ct/classmethod-inits' into 'master'Tom Pollard2019-05-203-62/+77
|\ | | | | | | | | Make various Element/Source init helpers @classmethod to clarify data flow See merge request BuildStream/buildstream!1346
| * {meta,}element.py: Move is_junction into MetaElementdanielsilverstone-ct/classmethod-initsDaniel Silverstone2019-05-172-10/+10
| | | | | | | | | | | | | | | | To reduce the `kind == "junction"` stuff all over Element's init helpers, move the `is_junction` logic into `MetaElement` to clarify things. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>