summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* main.py: Add -c / --command option to `bst shell`shell-commandJürg Billeter2017-08-171-2/+5
| | | | Fixes #65
* element.py: Add optional command argument to _shell()Jürg Billeter2017-08-171-5/+12
| | | | If specified, the command will run in non-interactive mode.
* _frontend/main.py: Use click.INT type for bst workspace --sourceThomas Chetwin2017-08-161-3/+3
| | | | | | | | | | | | `bst workspace {open,close,reset} <bst> --source <index>` commands currently give an indexing error. The python click library needs to be told that the expected argument is of type integer. This patch also makes use of metavar to display a placeholder in the help prompt, like: -s, --source INDEX The source to create a workspace for. Projects with one source may omit this
* workspace open: --no-checkout doesn't need --forceAngelos Evripiotis2017-08-151-1/+1
| | | | | | | | | | Remove the requirement to specify '--force' in conjunction with '--no-checkout' if there are already files in the workspace. We won't write anything when opening the workspace, so there's nothing to force. For example, when opening a workspace to an existing clone of a repository, it seems alarming to have to '--force' the workspace open. It made me wonder if it will actually be overwritten.
* main.py: Print status message when fetching artifact listJürg Billeter2017-08-151-0/+4
| | | | Fixes #60
* _pipeline.py: Add remote_ticker for artifact list fetchingJürg Billeter2017-08-151-0/+3
|
* Add '-h' as alias for '--help' on all commandsAngelos Evripiotis2017-08-111-1/+1
|
* Add a pip elementMathieu Bridon2017-08-103-0/+66
| | | | | | | | | | | | | | | | | | | Packaging is a big topic in the Python community these days. Things are evolving, but a consensus seems to have formed around the path forward. With PEP 518, Pip is becoming the primary tool to install Python modules. In turn, Pip will use the right underlying tool for the job. (distutils, setuptools, flint, ...) Given all this, it makes sense to have a pip element in BuildStream. This element installs a single Python module, telling Pip not to go and download its dependencies, to make builds reproducible and not rely on the network during builds. By default it will use the `pip` command which generally points to Pip for Python 2. Users can override the "pip" variable, for example to use the `pip3` command, which generally points to Pip for Python 3.
* makemaker.py: Fix typo in commentMathieu Bridon2017-08-101-1/+1
| | | | This seems to be a simple copy-paste mistake.
* main.py: Include all dependencies in source bundleJürg Billeter2017-08-101-14/+3
| | | | | | | | To build all elements, the source bundle has to include the sources and scripts for all elements, not just build dependencies and their runtime dependencies. This removes the --deps option as it doesn't make sense in this context.
* main.py: Fix crash with `bst workspace list` in bad directoryJürg Billeter2017-08-101-3/+7
| | | | Fixes #57
* _pipeline.py: Fix --deps runJürg Billeter2017-08-101-1/+1
|
* setup.py: Catch exception with OSTree < 2017.4Jürg Billeter2017-08-101-5/+8
| | | | Fixes #58
* tests/loader: Test dependency type 'all'Jürg Billeter2017-08-102-0/+22
|
* _loader.py: Support dependency type 'all'Jürg Billeter2017-08-101-2/+3
| | | | | | This is equivalent to not specifying a dependency type at all. Fixes #61
* Add `bst pull` commandJürg Billeter2017-08-082-0/+69
|
* Add initial `bst push` commandSam Thursfield2017-08-082-0/+69
| | | | | | | This is mainly useful for testing artifact caches and such. Most users will hopefully be able to make use of artifact caches populated by automated build machines, but right now it's unlikely that most people will be pushing artifacts around.
* element.py: Allow calling _skip_push() for uncached elementsJürg Billeter2017-08-081-1/+2
| | | | This is required when using a push queue without build queue.
* Update Dockerfile to fc26 as it has a fixed ostree.Justin Erenkrantz2017-08-032-26/+3
|
* _artifactcache: Fix pull in non-strict modeJürg Billeter2017-08-021-3/+3
| | | | Strong ref was not created.
* frontend: Implement interactive 'retry' optionTristan Van Berkom2017-08-013-11/+17
| | | | Not useful for builds, but interesting for network related tasks.
* setup.py: Hard require OSTree >= 2017.8Tristan Van Berkom2017-08-011-15/+13
|
* widget.py: Added 'downloadable' element status.Tristan Van Berkom2017-08-011-0/+2
|
* element.py: Fix broken exception for non-strict rebuilds of certain elements ↵Tristan Van Berkom2017-07-311-1/+1
| | | | | | | (strict_rebuild) This was doing a non-recursive calculation of weak cache keys, but the intention was to do a recursive one; this is why my demo was an epic failure.
* scriptelement.py plugin: Mark for strict_rebuildTristan Van Berkom2017-07-291-0/+2
|
* compose.py plugin: Mark for strict_rebuildTristan Van Berkom2017-07-291-0/+2
|
* element.py: Added strict_rebuild class attributeTristan Van Berkom2017-07-291-3/+15
| | | | | | | | | | This allows plugin types to declare that their instances must be rebuilt when their dependencies change in non-strict build mode. This is specifically for non-strict builds and allows appropriate reassembly of composition elements, which take their dependencies as verbatim input to create output.
* _artifactcache/pushreceive.py: Fix stream offset checkJürg Billeter2017-07-281-1/+1
| | | | | The offset difference includes the padded bytes of the last file, i.e., up to 511 bytes in addition to the 512 byte block.
* _artifactcache/pushreceive.py: Ensure stream is at the right positionJürg Billeter2017-07-281-0/+7
|
* Updated man pages.Tristan Van Berkom2017-07-2715-33/+174
| | | | | Now includes man pages for workspace commands and also the bst-artifact-receive helper program.
* _artifactcache/pushreceive.py: Verify that we have the commit objectsJürg Billeter2017-07-271-0/+6
|
* _artifactcache/pushreceive.py: Add handshake after sending objectsJürg Billeter2017-07-271-1/+13
| | | | | Ensure all objects have been sent before moving them into the repository and do not terminate pusher while receiver is still processing.
* dpkg_build.yaml: Remove useless debiandir from artifactsJonathan Maw2017-07-271-0/+4
| | | | | | | dpkg_build artifacts used to include a DEBIAN/ dir containing a bunch of files which didn't even come from the same package. This commit removes them, to avoid future confusion.
* Fix dpkg_build and dpkg_deploy documentation using wrong script namesJonathan Maw2017-07-272-6/+6
| | | | | When writing the yaml, pre-install and post-install scripts' fields are named "preinst" and "postinst", not "preinstall" and "postinstall"
* Add network-retries optionJürg Billeter2017-07-276-6/+41
| | | | | | Retry network tasks up to two times by default. Fixes #30
* _scheduler/job.py: Fix respawnJürg Billeter2017-07-271-2/+2
| | | | | Move parent_start_listening() from __init__ to spawn() to support respawning a job after shutdown.
* _scheduler/job.py: Ignore SIGTSTP error for already exited processJürg Billeter2017-07-271-10/+14
|
* _artifactcache/pushreceive.py: Raise PushException on connection failureJürg Billeter2017-07-261-0/+4
| | | | | | Unexpected connection termination should not be considered a bug. Fixes #51
* main.py: Dont handle build failures interactively when --on-error is specifiedTristan Van Berkom2017-07-261-1/+12
| | | | | If --on-error is specified to decide the failure action on the command line, then dont interactively handle that decision.
* _sandboxbwrap.py: Ensure existence of the cwdTristan Van Berkom2017-07-261-0/+5
| | | | | Before we were assuming the user would specify a cwd which exists, now we dont care and just create it if it's not there.
* element.py: Fix self.__public being written to during buildsJonathan Maw2017-07-261-1/+1
|
* dpkg_build.py: Prevent cache-key changing mid-buildJonathan Maw2017-07-261-1/+16
|
* _artifactcache/pushreceive.py: Drop branch check in receiverJürg Billeter2017-07-261-18/+1
| | | | | | | | | | The pusher already checks this and the check in the receiver does not provide any additional guarantees as it is prone to race conditions. This prevents a push error in case two clients push an artifact with the same key around the same time. Fixes #52
* _sandboxbwrap.py: Restore terminal after exit of interactive childJürg Billeter2017-07-251-0/+12
| | | | | | | | | | | | | | Make the main BuildStream process the foreground process again when the interactive child exits. Otherwise the next read() on stdin will trigger SIGTTIN and stop the process. This is required because the sandboxed process does not have permission to do this on its own (running in separate PID namespace). dash still prints an error because it fails to restore the foreground process, however, this is harmless. bash doesn't print an error in this case, but the behavior is otherwise identical. Fixes #41
* element.py: Introduce artifact versionsJürg Billeter2017-07-251-0/+29
| | | | Fixes #49
* buildstream/_loader.py: Don't repeat elements in resolve_project_variantPedro Alvarez Piedehierro2017-07-251-2/+10
| | | | | Add an extra argument to the function to know which elements were already resolved.
* element.py: Check consistency before recursion in _get_cache_key()Jürg Billeter2017-07-251-8/+8
|
* Check for write access to remote artifact cache early on in the pipelinesam/artifactcache-preflight-checkSam Thursfield2017-07-213-38/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the first time you configured an artifact cache, you would get to the end of your first build and then BuildStream would exit because of some stupid mistake like you got the address slightly wrong or you forgot to add the host keys of the remote artifact cache to `~/.ssh/known_hosts`. To avoid surprises, if there's an artifacts push-url configured we now try to connect to it as a preflight check so that issues are raised early. On success, you will see something like this: [--:--:--][90904fe4][ main:gnu-toolchain/stage2.bst ] START Checking connectivity to remote artifact cache [00:00:00][90904fe4][ main:gnu-toolchain/stage2.bst ] SUCCESS Connectivity OK On failure, it looks like this: [--:--:--][90904fe4][ main:gnu-toolchain/stage2.bst ] START Checking connectivity to remote artifact cache [00:00:03][90904fe4][ main:gnu-toolchain/stage2.bst ] FAILURE BuildStream will be unable to push artifacts to the shared cache: ssh: connect to host ostree.baserock.org port 2220: Connection timed out As a bonus, for some reason this check causes SSH to ask about unknown host keys rather than just failing, so you may now see messages like this if the host keys are unknown rather than an error: The authenticity of host '[ostree.baserock.org]:22200 ([185.43.218.170]:22200)' can't be established. ECDSA key fingerprint is SHA256:mB+MNfYREOdRfp2FG6dceOlguE/Skd4QwnS0tvCPcnI. ECDSA key fingerprint is MD5:8f:fa:ab:90:19:31:f9:f7:f1:d4:e5:f0:a2:be:56:71. Are you sure you want to continue connecting (yes/no)?
* _artifactcache/pushreceive.py: Do not list all refsJürg Billeter2017-07-201-5/+20
| | | | | | | The full ref list can easily exceed the maximum message size. Limit list to refs being pushed. Fixes #47
* userconfig.yaml: Mention push-url restrictionsummaryJürg Billeter2017-07-201-0/+1
| | | | | If push-url is specified, it must point to the same repository as pull-url as the summary file is used for pull and push operations.