summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tests/frontend/rebuild.py: Add strict/non-strict rebuild testjuerg/rebuildJürg Billeter2018-09-242-0/+40
| | | | | | Test rebuild that requires staging of weakly cached dependency. This is a regression test for #607.
* element.py: Fix cache check in non-strict modeJürg Billeter2018-09-241-1/+1
| | | | | | | | | The behavior of __assert_cached() was changed when the keystrength parameter was introduced. This restores the previous behavior. Fixes #607. Fixes: 3d308894 ("element.py: Cache the result of checking whether...")
* Merge branch 'chandan/update-project-homepage' into 'master'Chandan Singh2018-09-211-1/+2
|\ | | | | | | | | setup.py: Make website the primary homepage See merge request BuildStream/buildstream!795
| * setup.py: Make website the primary homepageChandan Singh2018-09-211-1/+2
|/
* Merge branch 'chandan/fix-source-bundle' into 'master'Chandan Singh2018-09-214-0/+57
|\ | | | | | | | | | | | | Fix source-bundle command Closes #651 See merge request BuildStream/buildstream!807
| * _stream.py: Ensure source-bundle's source directory existsChandan Singh2018-09-214-0/+57
|/ | | | | | | | | | | | Currently, `source-bundle` command is entirely broken as it tries to stage the sources in a directory that doesn't exist. Fix it by ensuring that we create the necessary directories before calling any methods that try to use those directories. This fix comes with a regression test to ensure that the basic use-case of `source-bundle` continues to work in future. Fixes https://gitlab.com/BuildStream/buildstream/issues/651.
* Merge branch 'jmac/remote_exec_checkout_fix' into 'master'Jim MacArthur2018-09-214-15/+22
|\ | | | | | | | | Remote exec: Remove early warning and check directory is not None See merge request BuildStream/buildstream!800
| * tests/artifactcache/push.py: Ignore return value of push_directoryjmac/remote_exec_checkout_fixJim MacArthur2018-09-211-2/+2
| |
| * cascache.py: make push_remote raise exception if no push remotes existJim MacArthur2018-09-211-3/+13
| | | | | | | | Also add docstring to method and remove return value since it was useless
| * _sandboxremote.py: Ignore return value of push_directoryJim MacArthur2018-09-211-2/+2
| | | | | | | | The return value is always upload_vdir.ref.
| * element.py: Remove early warning and check directory is not NoneJim MacArthur2018-09-211-8/+5
|/ | | | | | The check for directory should have always been here. The early warning test doesn't work for `bst checkout` because caches haven't been configured at the point of the test, so I've had to remove it.
* Merge branch 'tristan/fix-source-reinstantiation' into 'master'Tristan Van Berkom2018-09-211-8/+34
|\ | | | | | | | | | | | | source.py: Fix re-instantiation Closes #666 See merge request BuildStream/buildstream!817
| * source.py: Fix re-instantiationTristan Van Berkom2018-09-211-8/+34
|/ | | | | | | | | | This fixes an issue where the re-instantiated Source used with Source mirroring enabled is not completely initialized. Failing to load the ref from the project.refs file for instance, will result in a crash at `fetch` time. This fixes issue #666
* Merge branch 'adamjones/contributing-links' into 'master'Javier Jardón2018-09-191-3/+2
|\ | | | | | | | | Fix rst link formatting for guideline links See merge request BuildStream/buildstream!811
| * Fix rst links for guideline linksAdam Jones2018-09-191-3/+2
|/
* Merge branch 'tristan/remove-blessings' into 'master'Tristan Van Berkom2018-09-193-9/+77
|\ | | | | | | | | _frontend/status.py: Completely remove the blessings dependency from BuildStream See merge request BuildStream/buildstream!808
| * _frontend/status.py: Completely remove the blessings dependency from BuildStreamTristan Van Berkom2018-09-193-9/+77
|/ | | | | | | | | | | | | | | | | | | | | | | This actually improves reliability of the status bar because we now disable it completely in the case that not all of the terminal escape sequences are supported on the given terminal. This replaces the few functions we were using, to move the cursor up one line, move it to the beginning of the line, and to clear a line, with low level functions provided by the curses module in the standard library. This change makes it easier for downstream distro package maintainers to package BuildStream, particularly on Fedora. Asides from changing _frontend/status.py, this commit includes the following changes: * _frontend/app.py: Use python isatty() function to determine if we are connected to a tty, instead of relying on blessings. * setup.py: Remove the dependency on blessings.
* Merge branch 'Qinusty/skipped-rework' into 'master'Qinusty2018-09-1913-69/+88
|\ | | | | | | | | Add SkipJob for indicating a skipped activity See merge request BuildStream/buildstream!765
| * cascache.py: Modify messaging API callsJosh Smith2018-09-191-10/+4
| | | | | | | | | | | | | | Both pulling and pushing INFO messages are now status messages. Calls to the messaging API through `self.context.message()` have now been switched to `element.info`.
| * cascache.py: Move push/pull messaging to cascacheJosh Smith2018-09-193-9/+7
| | | | | | | | | | | | | | | | Pulled/Pushed messages will no longer be produced from within element.py, instead they will be produced during CasCache push() and pull() appropriately. Message consistency has also been improved.
| * element.py: Remove redundant timed_activityJosh Smith2018-09-191-9/+8
| | | | | | | | | | This removes the timed_activity for an element _push action. This is unnecessary as the job is already being timed elsewhere.
| * tests.py: Test skip on pushJosh Smith2018-09-191-0/+23
| | | | | | | | | | Adds a test to ensure that BuildStream alerts the user of a skipped push when the remote already has the artifact cached.
| * Rework Skipped usageJosh Smith2018-09-1910-45/+50
|/ | | | | | | | | | The SKIPPED message type is now used to indicate the end of a task which was successful without having to perform the given task. This overhauls the use of `Queue.done()` and therefore queues do not need to provide a processed/skipped return value from `done()`. Instead this is replaced with the action of raising a `SkipJob` exception from within `Queue.process()`.
* Merge branch 'issue-642-Invalid_project.conf_seen_as_missing' into 'master'Phillip Smyth2018-09-194-1/+20
|\ | | | | | | | | | | | | Incorrect error when malformed project.conf Closes #642 See merge request BuildStream/buildstream!792
| * Adding test for Invalid Yamlissue-642-Invalid_project.conf_seen_as_missingknownexus2018-09-183-0/+16
| |
| * Incorrect error when malformed project.confknownexus2018-09-181-1/+4
|/ | | | | | | | bst build returns "missing project.conf" when a project.conf is invalid This results in an existing project with malformed yaml being dismissed and attempts to make a new project Added new exception
* Merge branch 'richardmaw/fix-chroot-sandbox-devices' into 'master'Tristan Van Berkom2018-09-186-9/+38
|\ | | | | | | | | fix chroot sandbox devices See merge request BuildStream/buildstream!781
| * tests: test that integration commands can use /devRichard Maw2018-09-182-0/+19
| |
| * FUSE: Mount with -odev in chroot sandboxRichard Maw2018-09-184-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | This is needed to permit access to the device nodes added to /dev on Linux when FUSE is used as root. The chroot sandbox only works with all privileges, so there's no explicit check for being root or having the appropriate capabilities. A check for whether it's running as root isn't needed on Linux with bubblewrap because /dev or its devices are mounted on top of the FUSE layer, so device nodes are accessed directly rather than through the FUSE layer.
| * fuse: Report the correct device number for devicesRichard Maw2018-09-181-1/+1
|/ | | | | | This fixes all devices being mapped to the non-existant device 0, which prevents being able to use even safe devices like /dev/null through the hardlinks FUSE layer.
* Merge branch 'tristan/fix-artifact-config-crash' into 'master'Tristan Van Berkom2018-09-185-1/+46
|\ | | | | | | | | | | | | Fix artifact config crash Closes #625 See merge request BuildStream/buildstream!804
| * tests/artifactcache/config.py: Added test for invalid push remote configurationTristan Van Berkom2018-09-184-0/+35
| | | | | | | | | | Test that we get the expected error when configuring a client-cert without client-key, or the inverse.
| * _artifactcache/artifactcache.py: Error out gracefully when push remote is ↵Tristan Van Berkom2018-09-181-1/+11
|/ | | | | | | | | | mal-specified When configuring a push remote and specifying either the client-cert or the client-key, then both must be specified. This ensures we get an informative error instead of a stack trace and BUG. Fixes issue #625
* Merge branch 'danielsilverstone-ct/fix-654' into 'master'Tristan Van Berkom2018-09-183-15/+12
|\ | | | | | | | | sandbox/_sandboxremote.py: Acquire cache via Platform See merge request BuildStream/buildstream!797
| * sandbox/_sandboxremote.py: Acquire artifact cache via PlatformDaniel Silverstone2018-09-181-12/+7
| | | | | | | | | | | | | | | | | | The SandboxRemote used to construct its own CASCache which was considered dangerous. This patch replaces that with acquisition of the cache via the Platform singleton, hopefully eliminating issues from having more than one artifact cache object in a single process. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * tests/artifactcache/pull.py: Do not double-initialize remotesDaniel Silverstone2018-09-181-3/+0
| | | | | | | | | | | | | | | | The initialization of remotes is done by ArtifactCache.setup_remotes() and as such it was wrong for these tests to be calling CASCache.initialize_remotes() a second time. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * _artifactcache/artifactcache.py: Ensure no double-setup of remotesDaniel Silverstone2018-09-181-0/+5
|/ | | | | | | | Since ArtifactCache.setup_remotes() can be expensive and should only happen once, this commit will assert() if it is called a second time on an artifact cache instance. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'tristan/fix-override-options' into 'master'Tristan Van Berkom2018-09-184-0/+52
|\ | | | | | | | | | | | | Fix override options Closes #658 See merge request BuildStream/buildstream!802
| * tests/format/optionoverrides.py: Added test for options in element overridesTristan Van Berkom2018-09-183-0/+49
| | | | | | | | This is a regression test for issue #658
| * _project.py: Fix option resolution in element & source overridesTristan Van Berkom2018-09-181-0/+3
|/ | | | | | | | | This ensures that option expressions are resolved in the project level overrides before attempting to composite them on the instantiated elements. Seems this is a regression from introducing the include directive. This fixes issue #658
* Merge branch 'tristan/contributing-guide' into 'master'Tristan Van Berkom2018-09-176-4/+10
|\ | | | | | | | | Update contributing guide See merge request BuildStream/buildstream!801
| * update HACKING referencesAdam Jones2018-09-175-4/+4
| |
| * Rename HACKING.rst to CONTRIBUTING.rstAdam Jones2018-09-171-0/+0
| |
| * Add a section on how to raise an issueAdam Jones2018-09-171-0/+6
|/
* Merge branch 'richardmaw/subprocess-PWD' into 'master'Tristan Van Berkom2018-09-1633-63/+59
|\ | | | | | | | | Address post-merge review of Ensure PWD is set in process environment See merge request BuildStream/buildstream!788
| * Cachekey update helper: Document ensuring . in PYTHONPATHRichard Maw2018-09-161-1/+1
| | | | | | | | | | | | | | | | | | | | The current directory isn't always in the python module search path, so we have to ensure it is for the script to work. Strictly speaking, the user may already have a modified PYTHONPATH at which point PYTHONPATH=".${PYTHONPATH+:$PYTHONPATH}" is necessary, but it's probably premature to overcomplicate the documentation like that before we discover it's a problem.
| * Bump Artifact VersionRichard Maw2018-09-1629-29/+29
| | | | | | | | | | Since we now set PWD in the environment of builds existing builds may behave differently so must cache differently now.
| * sandbox: deduplicate default environment logicRichard Maw2018-09-163-33/+29
|/
* buildstream/_frontend/complete.py: Added missing click license complianceTristan Van Berkom2018-09-161-2/+17
| | | | | | Somehow I missed this when originally forking the file from the click library, now noticing that we should have followed what was written in: https://github.com/pallets/click/blob/master/LICENSE
* Merge branch 'tiagogomes/some-cleanups' into 'master'Tiago Gomes2018-09-147-27/+65
|\ | | | | | | | | Bunch of cleanups See merge request BuildStream/buildstream!798