summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merging integration tests into buildstream proper.merging-integration-testTristan Van Berkom2017-10-14239-10/+3148
| | | | This fixes #96
* .gitignore: Dont ignore .pyc files in integration-tests/Tristan Van Berkom2017-10-141-1/+2
|
* ostree.py source plugin: More informative error when missing track & refTristan Van Berkom2017-10-141-1/+1
|
* git.py source plugin: More informative error when missing track & refTristan Van Berkom2017-10-141-1/+1
|
* doc/source/projectconf.rst: Document option variable exporting featureTristan Van Berkom2017-10-141-0/+60
|
* tests/format/optionexports.py: Testing variable exports for base option typesTristan Van Berkom2017-10-143-0/+69
|
* project.py: Export options as variables if that was asked forTristan Van Berkom2017-10-141-12/+13
| | | | | Here we just use the new exporting mechanics to apply to the base variable dictionary defined by the project.
* _options: Options can now be exported to variables in string formTristan Van Berkom2017-10-144-1/+28
| | | | | | | | | | This patch adds a `variable` attribute to all option definitions, which if specified, can be used to override and declare variable at the project.conf level. A new `get_value()` method was added allowing implementations to create a string for the value of the option - main subclasses updated to support the string conversion with `get_value()`
* doc/source/install.rst: Add instructions for Arch systemsJavier Jardón2017-10-131-0/+6
|
* element.py: Fix cleanup after collection of artifact with read-only directoriesfix-artifact-cleanupTristan Van Berkom2017-10-131-47/+40
| | | | | | | | | | Part of issue #81 This was failing because the tmpdir contextmanager was trying to still use it's own mechanics to cleanup the artifact assembly directory. This is fixed by *not* using a tmpdir, which was just wrong to begin with because we're already working inside a temp directory.
* _plugincontext.py: Fix third party plugin loadingTristan Maat2017-10-131-15/+28
|
* element.py: Force remove artifact assembly directory on failure to commitTristan Van Berkom2017-10-131-2/+10
| | | | | | This is there because an ArtifactError on failure to commit indicates some permissions issue with the directory structure, and it's better to not leave this dangling behind for users to deal with.
* Ensure that artifact file permissions are set in the right orderTristan Maat2017-10-134-9/+39
|
* doc/source/formatintro.rst: Remove reference to architecture conditionalsTristan Van Berkom2017-10-111-1/+5
|
* doc/source/formatintro.rst: Documenting (!) assertion directivesTristan Van Berkom2017-10-111-0/+23
|
* tests/format/assertion.py: Added tests for the (!) assertion directiveTristan Van Berkom2017-10-115-0/+74
|
* _options/optionpool.py: Implement the (!) assertion directiveTristan Van Berkom2017-10-111-2/+11
| | | | | | These are processed inline with conditionals and before each iteration of conditional processing, ensuring that we always trigger the first assertion ever composited.
* exceptions.py: Added USER_ASSERTION load errorTristan Van Berkom2017-10-111-0/+3
|
* .gitlab-ci.yml: Follow latest BuildStream Docker imageSam Thursfield2017-10-101-13/+5
| | | | | | | | | | This allows us to remove env vars that are now set in the image, and some packages which are already installed in the image. I've left Sphinx (which is needed for the documentation task) out of the image as it pulls in a bunch of Python 2 dependencies that would bloat the image. Although note that Python 2 is already present in the image because Bazaar depends on it.
* Added missing file from documentation makeoverTristan Van Berkom2017-10-101-0/+26
|
* Restructuring documentation and documenting project optionsoptions-refactorTristan Van Berkom2017-10-109-318/+693
|
* tests/format/optionarch.py: Added arch option specific test casesTristan Van Berkom2017-10-103-0/+97
|
* tests/format/optioneltmask.py: Added element-mask option specific test casesTristan Van Berkom2017-10-108-0/+135
|
* tests/format/optionflags.py: Added flags option specific test casesTristan Van Berkom2017-10-106-0/+180
|
* tests/format/optionenum.py: Added enum option specific test casesTristan Van Berkom2017-10-106-0/+162
|
* tests/format/optionbool.py: Added boolean option specific test casesTristan Van Berkom2017-10-106-0/+146
|
* tests/format/options.py: General tests for project optionsTristan Van Berkom2017-10-1018-0/+365
|
* tests/testutils/runcli.py: Provide the last raised exception in the resultTristan Van Berkom2017-10-102-1/+14
|
* exceptions.py: Added _get_last_exception() for testingTristan Van Berkom2017-10-101-0/+13
| | | | | So when we run the full CLI, we can test failure modes by inspecting the last raised exception.
* Updated test cases for internal API changes stemming from project optionsTristan Van Berkom2017-10-1012-41/+58
|
* _frontend/widget.py: Report selected project options, if any.Tristan Van Berkom2017-10-101-0/+9
|
* _frontend/main.py: Added -o/--option main CLI paramsTristan Van Berkom2017-10-101-6/+16
| | | | | | Allows specifying option name/value tuples on the command line. Also updated frontend for minor API changes with Project & Context
* _pipeline.py: Pass the project options to the loaderTristan Van Berkom2017-10-101-0/+1
|
* _loader.py: Now takes an OptionPool and processes each loaded fileTristan Van Berkom2017-10-101-16/+14
|
* project.py: Support project optionsTristan Van Berkom2017-10-102-142/+47
| | | | | | | | | | | | | | | 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.
* context.py: Support user specified project optionsTristan Van Berkom2017-10-081-6/+5
| | | | | | Constructor now expects cli_options to be specified, and now loading the project overrides supports the 'options' for a given project.
* _options: OptionPool implementation, core project options moduleTristan Van Berkom2017-10-088-0/+649
| | | | | | | | | This sub package includes the OptionPool which is the buildstream facing API for handling project options, loading them, evaluating expressions based on options and pre-processing loaded YAML. This also includes an abstract Option class and an implementation for each supported option type.
* exceptions.py: Added LoadErrorReason.EXPRESSION_FAILEDTristan Van Berkom2017-10-081-0/+3
| | | | For handling failed jinja2 expression evaluation.
* setup.py: Added jinja2 dependencyTristan Van Berkom2017-10-081-1/+2
|
* _yaml.py: Dont blindly coerse strings to bool in _yaml.node_get()Tristan Van Berkom2017-10-081-4/+12
| | | | | | | | | This leads to True booleans being evaluated for any string that is not None, even when a string value is "False" or "false". Instead, handle only "True", "true", "False" and "false" strings, and raise an error if another string was specified for a boolean value.
* project.py: More consistent api for workspacesremove-variantsTristan Van Berkom2017-10-083-17/+17
| | | | | | | | Renamed _workspaces() -> _list_workspaces(), and changed local cache of workspaces from __workspaces -> _workspaces. We only really use the double underscore when there is a concern for freeing up namespace for public subclassing.
* doc/source/format.rst: Removing all references to variants.Tristan Van Berkom2017-10-081-82/+2
|
* Updating test cases to construct the project/loader properly again.Tristan Van Berkom2017-10-0811-208/+44
| | | | | This had changed when we added project variants and had to split up the loading steps a bit, now all is back to normal without variants.
* Removing variant testsTristan Van Berkom2017-10-0823-545/+0
|
* _frontend/main.py: Removed all --variant CLI optionsTristan Van Berkom2017-10-081-54/+27
| | | | And construct the pipeline without any variant now.
* _frontend/widget.py: print_heading() no longer recognizes %{variant}Tristan Van Berkom2017-10-081-6/+1
| | | | | No more variants on `bst show` or when printing the pipeline at session startup time.
* _pipeline.py: No more target variantTristan Van Berkom2017-10-081-7/+4
|
* project.py: Removing traces of variantsTristan Van Berkom2017-10-081-98/+23
| | | | | | This means we also revert back to the older, simpler one step loading of the Project. This was broken into multiple steps since we had introduced the project variants.
* _loader.py: Removing all traces of loading variants.Tristan Van Berkom2017-10-081-452/+16
|
* _metaelement.py: No more variant attribute to carryTristan Van Berkom2017-10-081-3/+1
|