summaryrefslogtreecommitdiff
path: root/buildstream/data
Commit message (Collapse)AuthorAgeFilesLines
* _project.py: Add fatal-warnings configuration itemJosh Smith2018-08-151-4/+0
| | | | | | | | | | | | | | | | | | | | This allows for users to configure fatal-warnings to be either a list of warnings. This commit deprecates the use of fail-on-overlap within project.conf, this will now use the fatal-warnings configuration item. element.py: Cache key calculation now takes into account all of the fatal-warnings tests: This modifys the tests/frontend/overlaps.py tests to support the new fatal-warnings configuration. Backwards compatibility is also tested for `fail-on-overlap` _versions.py: BST_FORMAT_VERSION bumped to 15 for fatal-warnings BST_CORE_ARTIFACT_VERSION bumpted to 5 for fatal-warnings Fixes: #526
* PullQueue: fix resource usedTiago Gomes2018-08-061-2/+2
| | | | | | Improve fetchers, builders and pushers documentation. Closes #550.
* Add cache_quota to user configTristan Maat2018-07-181-0/+8
|
* data/userconfig.yaml: Change default logging to print full shas at init and ↵Tristan Van Berkom2018-04-061-1/+1
| | | | | | | | | | bst show This may be obnoxious for `bst show` purposes, which will now also print the full artifact cache keys instead of nicely abbreviated ones, but it is a more appropriate default for the heading of a build session. This fixes issue #343
* Generate unique subdirs for built elementsPhillip Smyth2018-03-261-2/+6
| | | | | | | | | | | | | Based on issue 89 (https://gitlab.com/BuildStream/buildstream/issues/89) Ensuring that elements are staged into unique subdirs while building. This patch supports that by doing the following: * Modify project config to add 2 new variables ("project-name" and "element-name") * Changed the default install-root from "/buildstream/install" to "/buildstream-install" * Update the tests to accommodate these changes * Update the expected cache keys in the tests This fixes #89
* Add 'sandbox' configuration key and build-uid/build-gid elementsJim MacArthur2018-03-231-0/+7
| | | | | | | | | | | | | | | | | | | | This only affects SandboxBWrap at the moment. buildstream/_loader.py: Add Symbol.SANDBOX and allow it in validation buildstream/_metaelement.py: Add 'sandbox' variable and store it in the object buildstream/_project.py: Add 'sandbox' configuration key and load it from project.conf. buildstream/data/projectconfig.yaml: Default build-uid/build-gid values of 0 for 'sandbox'. buildstream/element.py: Add __extract_sandbox_config to find the final sandbox configuration. Pass this to the sandbox constructor. buildstream/sandbox/_sandboxbwrap.py: If sandbox configuration was supplied, use it for uid and gid instead of the default 0. buildstream/sandbox/_sandboxchroot.py: Throw exception if non-0 uid/gid were supplied. buildstream/sandbox/__init__.py: Import SandboxConfig. buildstream/sandbox/_private.py: New file, containing SandboxConfig. Made private to avoid documentation for this class.
* _project.py: Load project.refs while loading the project.Tristan Van Berkom2018-03-201-3/+6
| | | | | This also bumps the format version to signify a new format where storing refs centralized in project.refs is now supported.
* _project.py and docs: Move defaults into the defaults yaml fileTristan Van Berkom2018-03-161-0/+22
| | | | | | | | | | | Over time, the _project.py module has regressed into expressing some defaults only hard coded into the python file instead of properly exposing their default in the base configuration file in data/projectconfig.yaml, where the default values can be observed by users. This patch rectifies that, and also restructures the relevant surrounding documentation a bit.
* Add logfile format tokeniserJim MacArthur2018-03-011-0/+5
| | | | | | 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 support for multiple remote cachesSam Thursfield2018-01-111-8/+0
| | | | | | | | | | | | | | | | | | | | | | This extends the 'artifacts' configuration block such that a list of `url` mappings can be given instead of a single entry. For example: artifacts: - url: http://example.com/artifacts1 - url: ssh://ostree@example.com/artifacts2 The OSTreeCache class is updated to set up multiple remotes and query remote refs from all of them. There are no automated tests for this yet. Empty URLs ('') now raise an exception. They cause breakages internally if we allow them through, and they can only occur if the user or our tests are misconfiguring things somehow. We report failure to fetch from the cache by printing a message to stderr for now. This is because BuildStream's actual logging functionality can't be used during frontend init -- see issue #168.
* Replace 'push-url' and 'pull-url' options with just 'url'sam/canonical-push-urlsSam Thursfield2017-11-221-6/+3
| | | | | | | | This is possible now that the SSH protocol can redirect to the appropriate pull URL. Note that this commit makes no attempt at backwards compatibility. Everthing will break!
* Remove the push-port config optionSam Thursfield2017-11-221-4/+0
| | | | | | | | | | | | Ports can and should be specified by using proper ssh:// URL forms, e.g: ssh://artifacts@example.com:22200/artifacts The alternate form of artifacts@example.com:artifacts isn't a valid URL, and doesn't let you specify a different port. People are used to this form due to Git continuing to use it but we should encourage people to use proper URLs.
* context.py: Moving strict mode configuration to be project specificTristan Van Berkom2017-10-271-19/+0
|
* data/projectconfig.yaml: Issue #106 - Compress debug symbols by defaultTristan Van Berkom2017-10-231-8/+19
| | | | | | | | | | Deconstructed the default strip-commands to declare some objcopy and strip arguments separately, so it's easier to override these in the case that you are building with an older toolchain which does not support compression of debug symbols (or if you want to strip them with something in a more exotic way). By default pass --compress-debug-sections to objcopy.
* data/projectconfig.yaml: Fixes #105 - Set SOURCE_DATE_EPOCH to constant valueTristan Van Berkom2017-10-201-0/+2
|
* project.py: Support project optionsTristan Van Berkom2017-10-101-112/+0
| | | | | | | | | | | | | | | o Load the option definitions with the OptionPool o Set the user selected project option values according to the passed Context o Process conditionals in the loaded project configuration, excepting for the project name and actual option definitions o Removed a lot of examples from the default config. This is getting moved into more structured documentation, and the default config is only presented to the user beside the documentation which describes what each thing means.
* userconfig.py: Default element format doesnt include %{variant} anymoreTristan Van Berkom2017-10-081-1/+1
|
* Fix timestamps in Python bytecodefix-pyc-timestampsMathieu Bridon2017-09-291-0/+5
| | | | | | | | | | | | | | | | | | When building Python modules, a bytecode `.pyc` file is generated from the source `.py` file. The former contains 4 bytes representing the timestamp of the latter at the time it was generated. Unfortunately, after building OSTree sets all the file timestamps to 0, which introduces a discrepency between the timestamp of the `.py` file and the 4 bytes stored inside the `.pyc` file. As a result, when running a Python module from a checkout, Python thinks the bytecode files are stale, which causes a dramatic performance penalty when starting an application. Fixes #94
* build-module.sh.in: Don't attempt to copy empty sources75-source-bundle-generated-script-fails-when-a-build-element-has-no-sourceTristan Maat2017-09-271-1/+3
|
* Let users override project artifacts optionsMathieu Bridon2017-09-191-0/+17
| | | | | | | | | | | | | | | | | | | A project can specify its artifacts cache sharing settings, and users can define a default artifacts cache to use as a fallback. With this change, users can also override the project configuration with their own. That means for a project named "libfoo", BuildStream will resolve the artifacts-related options in the following order: 1. the projects.libfoo.artifacts options from the user configuration; 2. if the above was not defined, then the artifacts options from the project configuration; 3. if the above was not defined, then the artifacts options from the user configuration; Fixes #87
* Let projects configure their artifacts pull/push optionsMathieu Bridon2017-09-191-0/+16
| | | | | | | With this commit, we first look at the artifacts options in the project configuration, then fall back on the user configuration if necessary. Relates to #87
* source-bundle: don't use a subdirectory of {build_root}Charles Bailey2017-09-051-3/+3
| | | | | | | | | | Use {build_root} itself and not a subdirectory of {build_root} for the build area used in the source-bundle generated build scripts. This is consistent with what %{build-root} is expanded to when generating the build scripts. Fixes issue #67
* data/bst (bash completion scriptlet): Corrected commentTristan Van Berkom2017-08-311-1/+1
| | | | Was instructing users to add this script to the wrong file
* project.py: Load new definitions of project version requirementsTristan Van Berkom2017-08-311-0/+23
| | | | | | | | | | | o Define the base buildstream format as BST_FORMAT_VERSION in the project module o Load and cache any required versions of plugins o Assert overall project version is supported at load time Part of a fix for issue #69
* buildstream/data/bst: Adding a bash completion scriptlet.Tristan Van Berkom2017-08-281-0/+21
| | | | | Currently this gets installed at ${prefix}/share/bash-completion/completions but this is not exactly correct.
* Add network-retries optionJürg Billeter2017-07-271-0/+3
| | | | | | Retry network tasks up to two times by default. Fixes #30
* 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.
* widget.py/userconfig.yaml: Add workspace displayTristan Maat2017-07-171-1/+1
|
* userconfig.yaml: Add %{variant} to default formattingTristan Van Berkom2017-07-171-3/+3
| | | | | And touch up comment string to mention that it is the default also used for `bst show`.
* context.py: Add strict_build_plan optionJürg Billeter2017-07-141-0/+3
|
* context.py: Add option to specify artifact push portTristan Van Berkom2017-07-111-0/+4
|
* Removing ostree-pull-ssh and ostree-pushTristan Van Berkom2017-07-092-304/+0
| | | | Including changes in _site.py and setup.py
* context.py & userconfig.yaml: New syntax for remote artifact cachesTristan Van Berkom2017-07-091-0/+11
|
* build-all.sh.in, build-module.sh.in: Removing unnecessary executable bitsTristan Van Berkom2017-07-052-0/+0
|
* projectconfig.yaml: Restore old default split domain behaviourtristan/split-domainsTristan Maat2017-07-051-0/+16
|
* build-all.sh.in: Fix typo `ldcondig` -> `ldconfig`Sam Thursfield2017-07-051-1/+1
| | | | | | | In some cases executing ldconfig can fail (for example, musl libc provides an `ldconfig` that behaves the same as `false`) so we do need to ignore the return code when running it. However that does make it easier to overlook mistakes such as this one!
* ostree-push/ostree-pull-ssh: Added --basedir and more reliable terminationTristan Van Berkom2017-07-032-30/+70
| | | | | | | We can SIGTERM the sshfs mount, but the ostree process isnt having it, so we kill the ostree process. This is better than before, but still far from 100% reliable termination.
* ostree-pull-sh, ostree-push: Graceful termination on SIGTERM.Tristan Van Berkom2017-07-032-10/+40
|
* ostree-pull-ssh, ostree-push: Dont try to unmount not-mounted directoryTristan Van Berkom2017-07-032-3/+7
| | | | | This will cause the cleanup handler to abort early, causing it to leave a stale mount directory behind.
* projectconfig.yaml: Default split rules are now globsTristan Van Berkom2017-06-301-17/+17
|
* Add script templatesTristan Maat2017-06-282-0/+81
|
* _ostree.py: Add SSH artifact fetch supportJürg Billeter2017-06-271-0/+115
|
* _ostree.py: Add SSH artifact push supportJürg Billeter2017-06-271-0/+115
|
* scheduler: Add push queue typeJürg Billeter2017-06-271-0/+3
|
* default user configuration: Bump maximum fetch tasks up to 10Tristan Van Berkom2017-05-211-1/+1
| | | | | | | These tasks mostly just block on network activity and dont cause the host to slow down, 10 open connections is not a huge workload so let's default this to 10 instead of 4, things go much quicker this way.
* context.py & default user config: Added message_lines optionTristan Van Berkom2017-05-191-0/+6
| | | | | | | Allows one to configure the maximum amount of lines to print of a message detail into the master log and console (the entirety of lengthy lines are always printed in the individual build logs anyway, this just makes the frontend a bit more bearable)
* userconfig.yaml: No indentation on default element formatTristan Van Berkom2017-05-091-1/+1
| | | | | Only 'fetch needed' state requires 12 chars, no need to indent those further when the other element states cost less chars.
* context.py and default config: Added element-format configurationTristan Van Berkom2017-05-091-0/+6
| | | | | Allow some control on how the pipeline elements are formatted and displayed in the heading at startup time.
* project.py, projectconfig.yaml: Removed notion of configurable device nodesTristan Van Berkom2017-05-021-9/+0
|
* project.py: Added element-path configurationTristan Van Berkom2017-03-221-0/+4
| | | | | | Allows one to place elements in a subdirectory instead of forcing all element paths to be project directory relative. This can be convenient just for managing a clean project directory structure.