summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* junction-elements.rst: Add missing language specifier to literalincludephil/fixup-junctions-tutorialPhil Dawson2018-07-301-0/+1
| | | | | | A missing language specifier on a literal include directive results in yaml being rendered as python code. This commit adds the :language: tag to that directive.
* Merge branch 'tlater/ask-for-dev-permissions' into 'master'Tristan Van Berkom2018-07-301-0/+5
|\ | | | | | | | | HACKING.rst: Add note about asking for dev permissions See merge request BuildStream/buildstream!587
| * HACKING.rst: Add note about asking for dev permissionsTristan Maat2018-07-301-0/+5
|/
* Merge branch 'tpollard/386' into 'master'Tristan Maat2018-07-301-3/+6
|\ | | | | | | | | widget.py: Limit failure summary to currently failing elements See merge request BuildStream/buildstream!561
| * widget.py: Limit failure summary to currently failing elementstpollard/386Tom Pollard2018-07-301-3/+6
|/ | | | | | Change widget.py print_summary() to only print the failure messages of elements in the Failure Summary that failed on the current try.
* Merge branch 'phil/437-junction-tutorial' into 'master'Phil Dawson2018-07-3013-0/+413
|\ | | | | | | | | Phil/437 junction tutorial See merge request BuildStream/buildstream!550
| * tests/examples/junctions.py: Add tests for junctions walkthroughphil/437-junction-tutorialPhil Dawson2018-07-301-0/+84
| | | | | | | | This is part of the work towards issue #437.
| * using_advanced_features.rst: Added fileJames Ennis2018-07-302-0/+14
| |
| * junction-elements.rst: Add junctions walkthroughPhil Dawson2018-07-302-0/+75
| | | | | | | | This is part of the work towards #437.
| * junctions.run: Add terminal session output for junctions walkthrough.Phil Dawson2018-07-304-0/+212
| | | | | | | | This is part of the work towards #437.
| * examples: add project demonstrating a junction elementPhil Dawson2018-07-304-0/+28
|/ | | | This is part of the work towards #437.
* Merge branch 'tristan/fix-spurious-errors' into 'master'Tristan Van Berkom2018-07-291-4/+15
|\ | | | | | | | | | | | | git.py: Handle concurrent download completions properly Closes #503 See merge request BuildStream/buildstream!583
| * git.py: Handle concurrent download completions properlyTristan Van Berkom2018-07-291-4/+15
|/ | | | | | | | | | | | | | | | | | Use os.rename() to rename the cloned temporary repository into place in the source cache, and issue a STATUS message when discarding a duplicate clone, in the case where the same repository is cloned twice in parallel. The problem with using shutil.move() is that it will create the source directory in a subdirectory of the destination when the destination exists, so it's behavior depends on whether the destination exists. This shutil.move() behavior has so far hidden the race condition where a duplicate repo is created in a subdirectory, as you need to have three concurrent downloads of the same repo in order to trigger the error. This fixes issue #503
* NEWS: Bring down since version of backported features to 1.1.5Tristan Van Berkom2018-07-291-1/+3
| | | | | | | These features will be released in 1.1.5 since they have been backported, lets reflect this in the NEWS file in master. Also this adds the backported `remote` plugin to the NEWS
* source.py: Bring down since version for source mirroring APIsTristan Van Berkom2018-07-291-4/+4
| | | | | Since we have now backported this to `bst-1.2`, the APIs have been introduced in 1.2 and not 1.4
* Merge branch '507-some-log-lines-appear-to-be-duplicates' into 'master'Tristan Van Berkom2018-07-291-12/+13
|\ | | | | | | | | | | | | Resolve "Some log lines appear to be duplicates" Closes #507 See merge request BuildStream/buildstream!573
| * buildelement.py: Only display one activity message (#507)Tristan Maat2018-07-291-12/+13
|/
* Merge branch 'Qinusty/491' into 'master'Qinusty2018-07-272-17/+64
|\ | | | | | | | | Cache quota is now restricted to available disk space See merge request BuildStream/buildstream!563
| * _context.py: Cache size is now restricted to available disk spaceQinusty/491Josh Smith2018-07-272-17/+64
|/ | | | | | | | | | | | This address issue #491. When attempting to run buildstream with a configuration specifying a cache quota larger than your available disk space, buildstream will alert the user and exit. Note: This takes into consideration your current cache usage and therefore restricts the overall size of your artifact cache folder.
* Merge branch 'master' of gitlab.com:BuildStream/buildstreamJosh Smith2018-07-2723-80/+1188
|\
| * Merge branch '328-support-for-downloading-sources-from-mirrors' into 'master'Jonathan Maw2018-07-2721-69/+1168
| |\ | | | | | | | | | | | | | | | | | | Resolve "Support for downloading sources from mirrors" Closes #328 See merge request BuildStream/buildstream!404
| | * doc: Add tutorials for setting up git and tar mirrorsJonathan Maw2018-07-273-0/+249
| | |
| | * NEWS: Add item for source mirroringJonathan Maw2018-07-271-0/+4
| | |
| | * doc: Add documentation for source mirroringJonathan Maw2018-07-273-0/+85
| | |
| | * tests: Add mirrored fetching and tracking testsJonathan Maw2018-07-272-0/+487
| | |
| | * testutils: Add a helper to copy a testutils repoJonathan Maw2018-07-271-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | This is helpful if you want to test what happens when you have one repo that has diverged from another. By copying the repo you're sure they start with shared history. This is especially useful when mirroring.
| | * git.py: Improve mirror supportJonathan Maw2018-07-271-45/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When implementing fetching from mirrors, I encountered some problems with the git source: 1. The mirror URL was using translate_url()'s output, so if a different alias was used, then fetching from the mirror would go to a different directory, and be inaccessible. 2. After fixing that, fetching was unable to pull from a URL other than the one used at repository creation, meaning it wouldn't actually pull from the mirror.
| | * bzr.py: Improve mirror supportJonathan Maw2018-07-271-4/+7
| | | | | | | | | | | | | | | | | | | | | This fixes: * Bzr repositories pulling from the branch they were created with. * Bzr's _ensure_mirror() not actually checking that it successfully mirrored the ref.
| | * Add mirrored source trackingJonathan Maw2018-07-271-1/+28
| | |
| | * Set default mirror via command-line or user configJonathan Maw2018-07-275-4/+12
| | | | | | | | | | | | | | | | | | | | | In user config (buildstream.conf), it is set with the "default-mirror" field. On the command-line, it is set with "--default-mirror"
| | * source: When fetching, try to fetch from mirrors firstJonathan Maw2018-07-273-4/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **KLUDGE WARNING**: This involves making the source store its "meta" object so that it's possible to create a copy of the source inside the fetch queue, instead of back when the pipeline was being loaded. This adds the SourceFetcher class, which is intended for sources that fetch from multiple URLs (e.g. the git source and its submodules) Fix when fetching
| | * source: Store the url aliases or use an overrideJonathan Maw2018-07-271-4/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is part of a later plan to implement mirroring without forcing everyone to update their sources. We use the expected calls to Source.translate_url() when running Source.configure() to extract the aliases from the URL. Multiple aliases must be extracted because sources exist that may fetch from multiple aliases (for example, git submodules) Later, we want to substitute another URI where the alias normally reads from the project - We accomplish this by re-instantiating the Source with the alias overrides passed as an argument to the constructor.
| | * Move _ALIAS_SEPARATOR into utilsJonathan Maw2018-07-272-5/+6
| | | | | | | | | | | | The separator is useful in source files other than _project.py
| | * project: Parse and store mirrorsJonathan Maw2018-07-272-3/+50
| |/
| * Merge branch 'jennis/doc_improvements' into 'master'438-migrate-x86-image-example-from-examples-repo-to-main-repoJavier Jardón2018-07-272-11/+20
| |\ | | | | | | | | | | | | Refer readers to our tutorial before referring them to existing bst projects See merge request BuildStream/buildstream!578
| | * main_install.rst: Add note to refer Windows and macOS users to dockerJames Ennis2018-07-271-1/+6
| | |
| | * README.md: Direct users towards the tutorial before existing projects:James Ennis2018-07-271-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch also removes displaying the projects that live within the buildstream-examples repository, as we wish to deprecate this repo and migrate the two examples. - #438 and #439 In addition to this, both examples do not 'build' in their current state.
| | * README.md: Minor correctionsJames Ennis2018-07-271-7/+8
| |/
* | Merge branch 'Qinusty/pytest_cache_gitignore'Josh Smith2018-07-271-0/+1
|\ \ | |/ |/|
| * .gitignore: Ignore .pytest_cache/Josh Smith2018-07-271-0/+1
| |
* | Merge branch 'Qinusty/502' into 'master'Tristan Maat2018-07-271-1/+3
|\ \ | |/ |/| | | | | | | | | cascache.py: Raise ArtifactError on grpc error Closes #502 See merge request BuildStream/buildstream!576
| * cascache.py: Raise ArtifactError on grpc errorQinusty/502Josh Smith2018-07-271-1/+3
|/ | | | This aims to fix issue #502.
* element.py, source.py, plugin.py: Adjusting API version since annotations.Tristan Van Berkom2018-07-273-4/+4
| | | | | | Since we backported the temporary/permanent failures patch for #397 into the `bst-1.2` branch, we need to adjust the since versions in master down to 1.2.
* Merge branch 'tristan/temporary-failures' into 'master'Tristan Van Berkom2018-07-2711-32/+71
|\ | | | | | | | | | | | | Temorary failures Closes #397 See merge request BuildStream/buildstream!574
| * git.py: Update git plugin to fail temporarily on clone failuresJosh Smith2018-07-272-4/+8
| | | | | | | | | | The git plugin will now make use of the fail_temporarily parameter to Plugin.call(), allowing failures to trigger a retry.
| * plugin.py: Extend Plugin.call() APIJosh Smith2018-07-272-8/+13
| | | | | | | | | | | | | | | | Plugin.call() now takes fail_temporarily as an optional parameter, when supplied it will cause subsequent failures to trigger temporary errors as opposed to permanent errors. This also extends Plugin.check_output() which makes use of Plugin.call()
| * cascache.py: Update cache push/pull errors to be temporaryJosh Smith2018-07-272-3/+3
| | | | | | | | Further work needs to be done for the current grpc exceptions which are reraised.
| * tests/sources: deb, tar and zip all test for retry behaviourJosh Smith2018-07-273-3/+6
| | | | | | | | | | | | This is following 5d6418a06a3a0262df5f6b9e6e1a36578515fd4a where DownloadableFileSource was modified to raise 'temporary' errors when relating to file downloading.
| * _downloadablefilesource.py: Update network errors to be temporaryJosh Smith2018-07-271-2/+2
| | | | | | | | This follows the change in 67ecd97a05279a3b7570ad59f05bf0a5973ef04c.
| * _exceptions.py: Modify BstError API to allow optional retryJosh Smith2018-07-274-13/+40
|/ | | | | | | | | | | | job.py: Changes to the logic surrounding retry attempts and child process return codes element.py, source.py: ElementError and SourceError also implement this change. These exceptions now have an optional parameter of temporary which defaults to false. This will potentially break backwards compatibility where exceptions were previously raised and a retry was intended. To trigger a retry, one must now raise their SourceError or ElementError with temporary=True. This aims to fix #397.