summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* doc/examples/composition: Adding user guide about split-rules and compose ↵tristan/user-guide-refactor-testTristan Van Berkom2020-04-1517-1/+410
| | | | elements
* doc/source/sessions-stored: Adding new files and refreshing old sessionsTristan Van Berkom2020-04-1545-683/+1550
| | | | | | These are the stored/prebuilt HTML files which allow contributors to quickly make documentation fixes and view the results without having the run the more intense documentation build process.
* doc/source/conf.py: Update copyright yearTristan Van Berkom2020-04-151-1/+1
|
* doc/examples/strict-mode: Adding a user guide for using non-strict build plansTristan Van Berkom2020-04-1517-0/+507
|
* doc/examples/directives: Add user guide for using project options and directivesTristan Van Berkom2020-04-1510-0/+318
|
* doc/examples/junction-includes: Adding new example about includes with junctionsTristan Van Berkom2020-04-1511-0/+376
|
* doc: Refactoring junction documentationTristan Van Berkom2020-04-1511-97/+176
| | | | | | | | | | | | Renamed the "Advanced topics" section to "Combining projects", and splitting up the junctions section into two separate documents, one which describes the simplest junction example and another which explains how to use workspaces in conjunction with junctions. This commit also makes some minor changes the examples, correcting some grammatical errors, improving links and formatting, also rewording a `note::` in order to clarify that it would be unusual to junction a project that is in a subdirectory.
* doc/source/using_developing.rst: Renamed to "Developing"Tristan Van Berkom2020-04-151-5/+5
| | | | | | | | Calling this "Developing using BuildStream" is just redundant, seeing that this is a part of a BuildStream user guide already. Also, rephrased the introduction text (which appears on a page which is rarely frequented anyway).
* doc/source/using_tutorial.rst: Renamed to "Getting started"Tristan Van Berkom2020-04-151-2/+2
| | | | | | | | | | | | This section of the user manual describes the basics of creating your first BuildStream project, while we've discussed this in terms of a "Getting started" guide while developing it, we ended up naming this a "Tutorial" because of it's walkthrough nature. Due to it's name as a Tutorial, developers (our target audience) have a tendency to avoid it and look for more terse and advanced material, while this material could be more suitable for getting started.
* doc/source/format_intro.rst: Clarifications around directivesTristan Van Berkom2020-04-151-15/+26
| | | | | | | | | | | | | | Clarification of (@) include documentation The "important" annotation here was very confusing to read, rewrote this section to clarify that files included across a junction cannot be used to inform the declaration of a junction, as this can present a circular dependency. Clarification around conditionals and includes Clarify that conditional statements are always resolved in the context of the project where the conditional statement was declared.
* doc/source/main_glossary.rst: rename 'Core Plugin' -> 'Core plugin'Tristan Van Berkom2020-04-151-2/+2
| | | | Fix an error in documentation build.
* Process options in includes files with the options of their junctionValentin David2020-04-1520-12/+214
| | | | | | | | | Unfortunately the options from main project cannot always be processed in the include processing since project configuration might load option declarations from a separate file. For that reason the result of `Include.process` should still be passed through the option processor. But all options files included from junctioned are already evaluated.
* tests/frontend/buildcheckout.py: Add non-strict testJürg Billeter2020-04-151-0/+22
| | | | | Test that a clean build in non-strict mode produces an artifact matching the strict cache key.
* element.py: Tweak cache key calculation for `BST_STRICT_REBUILD`Jürg Billeter2020-04-151-1/+1
| | | | | Include the project name and element name of dependencies in all cache key variants as the dependency names are stored in the artifact proto.
* element.py: Fix strong cache key calculation in non-strict modeJürg Billeter2020-04-151-1/+1
| | | | | The algorithm for calculating the strong cache key should be identical in strict and non-strict mode.
* Merge branch 'juerg/platform' into 'master'bst-marge-bot2020-04-1413-66/+66
|\ | | | | | | | | Improve sandbox configuration handling See merge request BuildStream/buildstream!1845
| * _sandboxbuildboxrun.py: Detect platforms supported by buildbox-runjuerg/platformJürg Billeter2020-04-142-8/+22
| | | | | | | | | | | | This allows builds where the host OS or architecture doesn't match the build OS or architecture, if the buildbox-run implementation supports it. E.g., this allows x86-32 builds on x86-64 systems.
| * sandbox: Reinitialize class when pickle is usedJürg Billeter2020-04-142-0/+8
| | | | | | | | | | | | Class data is not pickled and thus, class variables set by `check_available()` are not set when `check_sandbox_config()` is called by a job subprocess.
| * element.py: Move sandbox configuration check to __sandbox()Jürg Billeter2020-04-141-4/+2
| | | | | | | | | | This allows `bst show` and other commands that don't require a sandbox to work with elements that are not supported by the current sandbox.
| * Drop concept of partially supported sandbox configurationJürg Billeter2020-04-148-23/+7
| | | | | | | | | | | | | | | | | | | | | | | | Allowing builds without affecting the cache key but disallowing push, when the sandbox configuration is not fully compatible, results in an inconsistent user experience and may lead to unexpected build issues. Especially as push is allowed or disallowed based on the sandbox available at the time of push, not at the time of build. The previous commit making build-uid and build-gid configuration optional allows each project to decide whether the sandbox is required to support UID/GID configuration or not.
| * sandbox: Make build-uid and build-gid configuration optionalJürg Billeter2020-04-146-28/+22
| | | | | | | | | | This allows use of sandbox implementations that don't support configuring sandbox UID/GID such as buildbox-run-userchroot.
| * node.pyx: MappingNode.get_int(): Support `None` as defaultJürg Billeter2020-04-142-4/+6
|/
* Merge branch 'tristan/fix-docs-build-error' into 'master'Tristan Van Berkom2020-04-111-2/+2
|\ | | | | | | | | doc/source/main_glossary.rst: Fix docs build errors See merge request BuildStream/buildstream!1863
| * doc/source/main_glossary.rst: Fix docs build errorstristan/fix-docs-build-errorTristan Van Berkom2020-04-111-2/+2
|/ | | | | Some of the referenced terms within the glossary were not using the capitalization for which the term was declared.
* Merge branch 'juerg/job-sigterm' into 'master'bst-marge-bot2020-04-093-11/+13
|\ | | | | | | | | Fix SIGTERM handling in job processes See merge request BuildStream/buildstream!1861
| * _sandboxbuildboxrun.py: Reduce SIGTERM timeout to 15sJürg Billeter2020-04-091-1/+1
| | | | | | | | | | | | | | The scheduler timeout for `SIGTERM` of job processes is 20s. The timeout in the sandbox backend should be shorter to allow graceful termination of the job process even when `buildbox-run` fails to terminate gracefully.
| * job.py: Use `_signals.terminator()` to handle `SIGTERM`Jürg Billeter2020-04-091-9/+7
| | | | | | | | | | | | `Sandbox` subclasses use `_signals.terminator()` to gracefully terminate the running command and cleanup the sandbox. Setting a `SIGTERM` handler in `job.py` breaks this.
| * _signals.py: Allow SIGTERM handler to call `os.exit()`Jürg Billeter2020-04-091-1/+5
|/ | | | Use exit code from the `SystemExit` exception raised by `os.exit()`.
* Merge branch 'jjardon/wsl' into 'master'bst-marge-bot2020-04-081-3/+0
|\ | | | | | | | | | | | | Revert ".gitlab-ci.yml: Allow WSL test to fail" Closes #1277 See merge request BuildStream/buildstream!1860
| * Revert ".gitlab-ci.yml: Allow WSL test to fail"jjardon/wslJavier Jardón2020-04-081-3/+0
|/ | | | This reverts commit edcd52f8f0d9e062bb9a4d089799b47625c37ab6.
* Merge branch 'abderrahim/public-data' into 'master'bst-marge-bot2020-04-082-1/+12
|\ | | | | | | | | | | | | Fix expiry of public data of artifact Closes #1264 See merge request BuildStream/buildstream!1837
| * cascache.py: use buildbox-casd when checking whether a file is cachedabderrahim/public-dataAbderrahim Kitouni2020-04-081-1/+7
| | | | | | | | this lets buildbox-casd know it is needed and not delete it when pruning
| * _artifact.py: don't consider an artifact cached if public data is missingAbderrahim Kitouni2020-04-081-0/+5
|/ | | | Part of #1264
* Merge branch 'juerg/ci-schedules' into 'master'bst-marge-bot2020-04-081-0/+4
|\ | | | | | | | | .gitlab-ci.yml: Don't run win32 and wsl tests in scheduled pipelines See merge request BuildStream/buildstream!1859
| * .gitlab-ci.yml: Don't run win32 and wsl tests in scheduled pipelinesjuerg/ci-schedulesJürg Billeter2020-04-081-0/+4
|/ | | | | | We already run these tests on master after each merge. There is no need to run them in the scheduled pipelines as well. This is in line with the Linux tests (see `.tests-template`).
* Merge branch 'juerg/export-to-tar' into 'master'bst-marge-bot2020-04-083-9/+35
|\ | | | | | | | | Improve Directory.export_to_tar() See merge request BuildStream/buildstream!1858
| * tests/frontend/buildcheckout.py: Check mode and uid/gid in tarballjuerg/export-to-tarJürg Billeter2020-04-081-2/+13
| |
| * _filebaseddirectory.py: Clear uid/gid/uname/gname in export_to_tar()Jürg Billeter2020-04-081-0/+4
| | | | | | | | We want to ensure the output is deterministic.
| * _casbaseddirectory.py: Sort entries in export_to_tar()Jürg Billeter2020-04-081-1/+1
| | | | | | | | We want to ensure the output is deterministic.
| * _casbaseddirectory.py: Fix file mode in export_to_tar()Jürg Billeter2020-04-081-2/+3
| | | | | | | | | | | | Bitwise-and of a boolean and `stat.S_IXUSR` is always 0. Also, `is_executable` only applies to regular files, not symlinks.
| * _filebaseddirectory.py: Fix encoding in open_file() for binary filesJürg Billeter2020-04-081-2/+7
| | | | | | | | Python doesn't ignore `encoding` for binary files, it must be `None`.
| * _casbaseddirectory.py: Fix encoding in open_file() for binary filesJürg Billeter2020-04-081-2/+7
|/ | | | Python doesn't ignore `encoding` for binary files, it must be `None`.
* Merge branch 'jjardon/allow_fail_wsl' into 'master'bst-marge-bot2020-04-071-0/+3
|\ | | | | | | | | .gitlab-ci.yml: Allow WSL tests to fail See merge request BuildStream/buildstream!1844
| * .gitlab-ci.yml: Allow WSL test to failjjardon/allow_fail_wslJavier Jardón2020-04-071-0/+3
|/ | | | Current WSL runners are not reachable
* Merge branch 'abderrahim/options' into 'master'bst-marge-bot2020-04-053-13/+46
|\ | | | | | | | | _project.py: resolve options before running the final assertions See merge request BuildStream/buildstream!1835
| * _project.py: resolve options before running the final assertionsabderrahim/optionsAbderrahim Kitouni2020-04-053-13/+46
|/ | | | | | otherwise, having an optional list append in theh configuration wouldn't work This also avoids special casing for element and source overrides
* Merge branch 'juerg/buildbox' into 'master'bst-marge-bot2020-04-043-13/+21
|\ | | | | | | | | Update BuildBox components to 0.0.7 See merge request BuildStream/buildstream!1852
| * tests/integration/script.py: Drop read-only root xfail for buildbox-runJürg Billeter2020-04-041-4/+0
| | | | | | | | buildbox-fuse now supports SubtreeReadOnly.
| * tests/integration/build-uid.py: Don't skip tests with buildbox-runJürg Billeter2020-04-041-4/+16
| | | | | | | | buildbox-run-bubblewrap now supports custom uid/gid.
| * .gitlab-ci.yml: Update BuildBox components to 0.0.7Jürg Billeter2020-04-041-5/+5
|/