summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* doc/source/formatintro.rst: Better explanation of defaultsjmac/composition-docs-fixJim MacArthur2018-03-141-13/+12
| | | | | | | Users shouldn't see any difference between values hardcoded in Python (if there are any) and the values in projectconfig.yaml, which were previously items 0 and 1 respectively. Combined these both into 1 and made it clear that not all of project.conf is applied right away.
* Revert "Add sequence ID and widget for it."jmac/remove-sequence-idJim MacArthur2018-03-133-27/+5
| | | | This reverts commit 14234ccce3e7eec1153e810fab75afb2e90a2b22.
* Remove other references to SequenceID from the code and testsJim MacArthur2018-03-132-4/+3
| | | | | widget.py: Remove SequenceID from the list of widgets. tests/frontend/logging.py: Remove %{sequence} check.
* _frontend/widget.py: Never abbreviate frontend messagesTristan Van Berkom2018-03-131-1/+4
| | | | | | | Messages which come from the frontend do not have any backing log file where the remainder of the message can be reviewed. In the case of lengthly detailed messages originating from the frontend, we dont allow any abbreviation of the message.
* element.py: Report errors using `self.get_kind()`Tristan Van Berkom2018-03-101-4/+4
| | | | | We should always show the user the "kind" string when referring to a plugin type, not the type name with `type(self).__name__`.
* status.py: Restore brackets to time in job display areaJim MacArthur2018-03-071-2/+4
|
* Silence messages from Source cache interrogationTristan Van Berkom2018-03-072-1/+18
| | | | | | | | | | | Source interrogation usually involves calling out to host tools to quickly check if a given ref exists. This has however regressed over time when running `bst build --track`. This patch adds a new context manager to silence the messages, and silences messages while calling `Source.get_consistency()` Fixes #280
* HACKING.rst: Mention benchmarking and profiling toolsSam Thursfield2018-03-071-0/+57
| | | | | | | | This adds a reference to the benchmarking tool generated as part of https://gitlab.com/BuildStream/buildstream/issues/205. It also documents recommended strategies for profiling, which fixes https://gitlab.com/BuildStream/buildstream/issues/206.
* _pipeline.py: Remove undefined variable source_indexJames Ennis2018-03-071-2/+1
|
* doc/source/projectconfig.rst: Document `sources` overrides as since format ↵Tristan Van Berkom2018-03-061-0/+4
| | | | | | | | version 1 This was added slightly before format version 1, but was done without a version increment. Previous format versions cannot be relied upon for use of this feature.
* man: Updated man pages for the release1.1.1Tristan Van Berkom2018-03-0616-50/+56
|
* NEWS: Adding a few missing entries for the releaseTristan Van Berkom2018-03-061-0/+10
|
* Removing all traces of `environment-inherit` shell configuration.Tristan Van Berkom2018-03-064-61/+29
| | | | | This is made redundant by the more complete `environment` configuration, so lets quickly remove the former in this new format version 4.
* doc/source/projectconf.rst: Documenting new `environment` shell configurationTristan Van Berkom2018-03-061-2/+38
| | | | | | | And also ammend the documentation for `host-files` to note that the paths support host side environment variable expansion. Documenting both `host-files` and `environment` to require format version 4.
* tests/integration/shell.py: Testing new shell environment configurationTristan Van Berkom2018-03-061-2/+42
|
* Implement explicit environment assignments for `bst shell`Tristan Van Berkom2018-03-062-2/+13
| | | | | | | | | This introduces a new `environment` section of the project `shell` configuration to set explicit env vars when running a non-isolated shell. This supports host environment variable expansion. This is a part of addressing #223
* tests/integration/shell.py: Adding tests for env var expansions in `host-files`tristan/shell-enhancementsTristan Van Berkom2018-03-061-0/+25
|
* _project.py: Support host environment expansion in `host-files` pathsTristan Van Berkom2018-03-061-0/+5
| | | | | | | | This allows one to mount paths based on host specific environment variables, this can be useful for mounting things under XDG_RUNTIME_DIR, which is needed for host pulseaudio connections. This is another part of addressing #223
* integration tests: Refactoring for dynamic project configurationsTristan Van Berkom2018-03-064-56/+83
| | | | | | | | | | | | | | o CliIntegration.run() now takes a `project_config` option, this will be composited on top of the existing, substituted project.conf o Removing gnomesdk alias from integration tests project.conf o Using `sysroot` alias instead of `gnome7` alias o Make base-alpine.bst use the `sysroot` alias now o Removed `create_project_config()` from shell.py tests, now use the new built-in feature for this which is cleaner.
* NEWS: Adding entry for new `--mount` options of `bst shell`Tristan Van Berkom2018-03-061-0/+4
|
* projectconf.rst: Amending documentation for `host-files`Tristan Van Berkom2018-03-041-18/+54
| | | | This is now enhanced and an API change was introduced.
* tests/integration/shell.py: Updated shell testsTristan Van Berkom2018-03-041-32/+34
| | | | | | | | | | | o Added new test for `bst shell --mount` o Removed the test that a directory is refused in `host-files`, this is no longer a requirement o Updated names of the `host-files` mount specification members o Test the new `optional` feature of the mount specifications
* Enhanced bst shell configuration and cli optionsTristan Van Berkom2018-03-044-20/+55
| | | | | | | | | | | | | | | | | | | Some changes to the host-files configuration: o Dont require `host-files` to not be directories We need to specify directories to mount from `project.conf` after all. o Added possibility of specifying optional mounts, to avoid meaningless warnings where optional files don't exist on the host Added --mount CLI option to `bst shell` This allows users to explicitly mount whatever they want into the sandbox environment for `bst shell`. This closes issue #274
* _sandboxbwrap.py: Force cleanup when in interactive modeTristan Van Berkom2018-03-021-7/+24
| | | | | | | | | | | | | | | | | | | | When running a sandbox in interactive mode (implies `bst shell` was launched or an interactive shell for debugging), dont bail out when cleaning up directories which are not empty. We treat this as a bug, if any of the base sandbox directories (/dev, /tmp or /proc) are not empty when tearing down the sandbox, because it would indicate something is wrong with bwrap. When in interactive mode however, the user/project may have mounted additional directories inside these base directories; for which we need to create intermediate directories for the mount. Instead of keeping track of every intermediate directory, just force remove in interactive mode, as this is safe. Ideally, we should fix upstream bwrap to cleanup the debris it creates when exiting.
* _sandboxbwrap.py: Allow device nodes to be bind mountedTristan Van Berkom2018-03-021-1/+10
|
* NEWS: Adding missing entries for recently added featuresTristan Van Berkom2018-03-021-0/+15
|
* _frontend/cli.py: Adjust help output for `bst shell`Tristan Van Berkom2018-03-021-1/+1
| | | | | Dont specify how we fallback to launching a shell with `sh -i`, since this is now configurable in project.conf.
* _frontend/cli.py: Better help output for the `--option` main option.Tristan Van Berkom2018-03-021-1/+1
| | | | | | Added metavar, making it more clear that you specify: bst --option OPTION VALUE
* tests: Add filter element testsJonathan Maw2018-03-0114-0/+168
|
* Add Filter elementJonathan Maw2018-03-013-0/+134
|
* Pipeline: Give more helpful errors when opening a workspace for an element ↵Jonathan Maw2018-03-012-3/+7
| | | | | | | | | that has no sources When trying to look at the source code for an element, elements that modify artifacts (e.g. script and compose elements) don't have sources, so we suggest some other elements that they might try opening workspaces for.
* scriptelement: Use built-in checks on runtime depends and sourcesJonathan Maw2018-03-011-10/+8
|
* compose: Use built-in checks on runtime depends and sourcesJonathan Maw2018-03-011-11/+9
|
* Allow plugins to forbid runtime dependencies and sourcesJonathan Maw2018-03-014-2/+36
| | | | | | The flags BST_FORBID_RDEPENDS and BST_FORBID_SOURCES can be set in the plugin's class declaration, and exceptions will be raised during pre-flight checks
* Add a test for default and custom loggingJim MacArthur2018-03-011-0/+81
|
* Remove brackets added inside widgetsJim MacArthur2018-03-012-20/+7
| | | | | | | | Brackets can now be added as plain text in a custom logging format string, so there's no need to add them in widgets. widget.py: Remove brackets. _status.py: Remove the 'brackets' optional argument to TimeCode.
* Add logfile format tokeniserJim MacArthur2018-03-014-13/+52
| | | | | | widget.py: Main body of tokenizer. _context.py: Read message-format from user config YAML. main.py: Pass in context message-format to LogLine constructor.
* Add the FixedText and WallclockTime widgetsJim MacArthur2018-03-012-0/+23
| | | | | | | | | | WallclockTime is set at the time a message is created. Since messages can be placed in queues before being rendered, this is not always the same time as the wallclock time when rendering the message, so it needs to be stored in the message. widget.py: Add the two new widgets _message.py: record system time when a message is created.
* Add sequence ID and widget for it.Jim MacArthur2018-03-013-6/+27
| | | | | | | | | | The idea of a sequence number/ID is to tie together all messages associated with a given timed activity, to make performance analysis easier. _context.py: Add sequence number with atomic increment _widget.py: SequenceID widget, which displays this value _message.py: sequence_id variable storing the sequence for a message.
* widget.py: Modify TimeCode to take a microseconds argumentJim MacArthur2018-03-011-1/+9
|
* widget.py: Make the displayed text for LogLine messages a widget tooJim MacArthur2018-03-011-10/+22
| | | | | Adds MessageOrLogFile widget, which contains the same functionality previously used to display messages.
* Update expected cache keys in testsJames Ennis2018-02-286-6/+6
|
* compose.py: key dictionary is now correctly initialisedJames Ennis2018-02-281-4/+3
|
* Modify how the INTEGRATION_CACHE environment var is interpretedSam Thursfield2018-02-282-3/+3
| | | | | | | | When specifying a location for the integration tests cache directory, we would previously append '/integration-cache' to whatever path we were given. This is regarded as confusing. See: https://gitlab.com/BuildStream/buildstream/issues/267
* Store integration tests cache inside the current directory by defaultSam Thursfield2018-02-281-6/+6
| | | | | | | | Previously the code would default to a directory in `/tmp`, but this is often unsuitable as the Linux 'tmpfs' filesystem doesn't support extended file attributes and thus cannot store OSTree repositories. See: https://gitlab.com/BuildStream/buildstream/issues/267
* doc/source/projectconf.rst: Documenting `host-files` shell configurationTristan Van Berkom2018-02-281-0/+42
|
* tests/integration/shell.py: Added tests for host-filesTristan Van Berkom2018-02-282-0/+98
| | | | | | | | | | | | | | | | | Newly added tests: o Test that bind mounting a file works o Test that bind mounting a file into a non-existing directory works o Test that bind mounting is disabled in an isolated shell o Test that the shell still works, but a warning is printed and the mount is refused in case the specified file on the host was found to be a directory o Test that the shell still works, but a warning is printed in the case that the file specified on the host does not exist
* sandbox/_mount.py: Ensure file existence for bind mountsTristan Van Berkom2018-02-281-1/+17
| | | | | | | This logic existed but is now a bit more complex with the addition of allowing explicit bind mounts to be defined for the shell; the change is that now files can also be mounted into the sandbox instead of just directories.
* element.py: Inform the sandbox of host-files when running a shellTristan Van Berkom2018-02-281-0/+10
| | | | Does not apply to isolated shells.
* _project.py: Added 'host-files' shell configurationTristan Van Berkom2018-02-281-2/+16
| | | | | | | | | | | A shell configuration allowing one to bind mount files into the shell sandbox. This bumps the BST_FORMAT_VERSION to 2. This is related to #223, and solves #241 (name resolution problems) by making it possible to specify a bind mount for `/etc/resolv.conf` in the project configuration.