summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add soft reset functionality for workspaceschandan/workspace-soft-resetChandan Singh2018-05-072-4/+13
| | | | | | | | | Add `--soft` option to `bst workspace reset` which would allow uses to reset workspace-related state without affecting its contents. This will be useful in case when an user wants to re-run configure-commands for a workspaced element. Fixes #375.
* Replace bwrap checks with calls to check_bwrap_versionmilloni2018-05-071-18/+2
| | | | See: #373
* _site.py: Add check_bwrap_version() functionmilloni2018-05-071-0/+49
| | | | | | | Lazily parse the version of bwrap the first time the function is called. On subsequent calls, used cached version info. See: #373
* .gitlab-ci.yml: Remove redundant declaration of dependencies:Javier Jardón2018-05-071-6/+0
| | | | | "artifacts from all previous stages are passed by default." https://docs.gitlab.com/ee/ci/yaml/#dependencies
* bst-here: Allow users to specify additional volumes to mountChandan Singh2018-05-071-2/+9
| | | | | | | | | One may want to mount additional volumes to preserve certain directories or to share some data between the host and the container. Allow users to do so by providing a `-v` option that passes its arguments to corresponding `-v`/`--volume` option for `docker run` command. Part of #378.
* bst-here: Allow users to specify Docker imageChandan Singh2018-05-071-12/+17
| | | | | | | | | | | | | | | | | Currently, the name of the Docker image is hardcoded in bst-here script. This makes it harder for users to override it, which may be needed for various reasons (custom plugins, private Docker registries etc.) Add `-i` option to allow users to specify the base image. When `-i` is not provided, default to `BST_HERE_IMAGE` environment variable if it's set and otherwise to the current image - `buildstream/buildstream-fedora`. Also, re-order the command-line options in help text and source code in alphabetical order to maintain sanity as the number of options is slowly growing. Part of #378.
* bst-here: Fix typo in help textChandan Singh2018-05-071-1/+1
|
* app.py: Ensure an elements sub-dir is created upon project initialisationJames Ennis2018-05-071-0/+8
|
* tests/format/variables.py: Add a test for undefined variable error messageValentin David2018-05-063-0/+24
|
* Fix provenance in error message for undefined variables.Valentin David2018-05-062-4/+19
|
* commands.rst: Split up commands to easily allow for further descriptionJames Ennis2018-05-041-1/+119
| | | | An introduction for this section was also added
* element.py: Fix buildable check in non-strict modejuerg/non-strict-buildableJürg Billeter2018-05-031-1/+6
| | | | | | | | | | | | | | | Ensure that the strong cache key of each build dependency is available before an element is built. Otherwise the strong cache key of the element cannot be calculated and caching the artifact produces an AssertionError. In non-strict mode an element's strong cache key may not be available yet even though an artifact is available in the local cache. This can happen if the pull job is still pending as the remote cache may have an artifact that matches the strict cache key, which is preferred over a locally cached artifact with a weak cache key match. Fixes #383.
* _artifactcache/pushreceive.py: Modified incorrect error messagePhillip Smyth2018-05-011-1/+1
| | | | | | | changed encode_message push exception from 'Command must by GLib.Variant' to 'Command must be PushCommand'
* tests/testutils/runcli.py: Improve detection of pulled/pushed elementsJürg Billeter2018-04-301-2/+2
|
* element.py: Print info message when artifact was actually pushedJürg Billeter2018-04-301-1/+8
| | | | This matches the pull code path.
* _artifactcache/pushreceive.py: Do not return True for skipped pushJürg Billeter2018-04-301-1/+1
|
* _artifactcache/pushreceive.py: Fix commit object check in send_info()Jürg Billeter2018-04-301-1/+1
| | | | Fixes #325.
* README.rst: Fixed formatting1.1.3Tristan Van Berkom2018-04-261-5/+5
| | | | No empty lines after a section title, 2 empty lines before a section title.
* README.rst: Removed 'covers many programming languages' from the About ↵Tristan Van Berkom2018-04-261-3/+2
| | | | | | | | BuildStream This is rather innacurate, you can build software in any programming languange given that you have provided the required resources for this in the runtime you are using.
* man: Updated man pages for 1.1.3 releaseTristan Van Berkom2018-04-2617-61/+106
|
* setup.py: Stop installing test cases.Tristan Van Berkom2018-04-261-1/+1
| | | | As recommended by Valentin David in issue #332.
* doc/source/projectconf.rst: Documenting ref-storage as available since ↵Tristan Van Berkom2018-04-261-1/+1
| | | | format version 8
* _versions.py: Bumping format version for changes project.refs behaviorTristan Van Berkom2018-04-261-1/+1
| | | | | | | | If we want to depend on being able to revision junction.refs and project.refs separately, then we are better off just considering the project.refs feature as available since the new version 8. This will not harm projects which depended on it since version 5 instead.
* _loader.py: Removing special case error for junctions depending on elementsTristan Van Berkom2018-04-262-7/+3
| | | | | | Leave this error to be handled by preflight. Updated test case to expect the new ElementError instead of a LoadError
* plugins/elements/junction.py: Forbid dependenciesTristan Van Berkom2018-04-261-0/+4
| | | | | Move this logic into the junction element itself, instead of special case erroring for this in the loader.
* element.py: Added BST_FORBID_BDEPENDS to compliment BST_FORBID_RDEPENDSTristan Van Berkom2018-04-261-1/+18
|
* NEWS: Added news entry for versioning fixesTristan Van Berkom2018-04-261-0/+7
|
* Use versioneer instead of setuptools_scmTristan Van Berkom2018-04-269-17/+2379
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using setuptools_scm had a couple of bad problems: o Unexpected versioning semantics, setuptools_scm would increment the micro version by itself in the case that we derive a version number from something that is not a tag, making the assumption that we are "leading up to" the next micro version. People mostly dont expect this. o When installing in developer mode, i.e. with `pip3 install --user -e .`, then we were always picking the generated version at install time and never again dynamically resolving it. Many of our users install this way and update through git, so it's important that we report more precise versions all the time. This commit needs to make a series of changes at the same time: o Adds versioneer.py to the toplevel, this is used by setup.py for various activities. This is modified only to inform the linter to skip o Adds buildstream/_version.py, which is generated by versioneer and gives us the machinery to automatically derive the correct version This is modified only to inform the linter to skip o Adds a .gitattributes file which informs git to substitute the buildstream/_version.py file, this is just to ensure that the versioning output would work if ever we used `git archive` to release a tarball. o Modifies setup.py and setup.cfg for versioneer o Modifies utils.py and _frontend/cli.py such as to avoid importing the derived version when running bash completion mode, we dont derive the version at completion time because this can result in running a subprocess (when running in developer install mode) and is an undesirable overhead. o Updates tests/frontend/version.py to expect changed version output
* .gitlab-ci.yml: Run test in current Debian stable (stretch)Javier Jardón2018-04-251-0/+5
|
* doc: Clarify that junction sources are stored separately from project.refstristan/separate-junction-refsTristan Van Berkom2018-04-252-1/+5
|
* Load and save junctioned source refs from/to junction.refsTristan Van Berkom2018-04-256-13/+40
| | | | | | | | | | | | o _projectrefs.py: Additional constructor option to choose the base name o _project.py: Load two ProjectRefs objects, one for the junctions o source.py: Load and save junctioned source refs with the appropriate ProjectRefs object o tests: Updated some tests to expect junctions to be stored in junction.refs This fixes issue #361
* _loader: Give the loaded MetaSource objects the kind of the owning elementTristan Van Berkom2018-04-252-5/+7
| | | | | | This is needed so that Sources can derive whether they belong to a junction or not, which is needed for separating where junction refs are stored.
* _projectrefs.py: Adhere to policy on private symbolsTristan Van Berkom2018-04-251-18/+16
| | | | A late fix for issue #285
* .gitlab-ci.yml: Move radon job to post stageJavier Jardón2018-04-251-25/+26
|
* .gitlab-ci.yml: Add job to analyze project code quality with Code Climate CLIJavier Jardón2018-04-251-0/+22
| | | | See #431
* Move curent before_script: commands to the only jobs where they are actually ↵Javier Jardón2018-04-251-8/+6
| | | | needed
* doc/source/install.rst: Add requirements to use the bst cachejjardon/install_depsJavier Jardón2018-04-241-0/+5
| | | | See #358
* doc/source/install.rst: Add fuse to the list of dependenciesJavier Jardón2018-04-241-0/+1
| | | | See #358
* doc/source/install.rst: Update build instructions for FedoraJavier Jardón2018-04-241-2/+2
|
* doc/source/install.rst: Update build instructions for Debian Testing/SidJavier Jardón2018-04-241-3/+2
|
* doc/source/install.rst: Update install instruction for Debian strechJavier Jardón2018-04-241-2/+2
|
* tests/testutils/integration.py: Avoid inconsistent symlink handlingSam Thursfield2018-04-231-0/+5
| | | | | | | | The output of walk_dir() seemed to be inconsistent in how it traversed symlinks. Presumably this is to do with differences in how the filesystem return files. If we do an in-place sort of the list of files and directories that we get, os.walk() will honour that order which should make the output stable.
* Add compose-symlinks testcaseSam Thursfield2018-04-236-0/+66
| | | | | This is a regression test for the issue raised here: https://gitlab.com/BuildStream/buildstream/issues/270
* plugins/elements/compose.py: Avoid losing files inside directory symlinksSam Thursfield2018-04-231-13/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The logic for determining which files were removed by integration commands was broken when dealing with files staged within symlink directories. This rather weird scenario is only possible because of the way BuildStream layers artifacts. If artifact 1 contains a symlink from `/sbin` to `/usr/sbin`, and artifact 2 is staged on top and contains a file `/sbin/init`, then the resulting filesystem contains a file at `/usr/sbin/init`. The manifest used by the compose element is generated from the contents of the individual artifacts, so it lists the original paths such as `/sbin/init`, but would would not contain `/usr/sbin/init` as nothing has processed the symlinks. The path `/sbin/init` is valid inside the composed tree, but filesystem traversals that don't follow symlinks will not report that path in their results. The compose plugin would look for `/sbin/init` in the results of `utils.list_relative_paths()`, find it missing, and would act as if some integration command had removed the file. This meant it would not end up in the results. To fix this, I have inverted the logic that processes the results of the integration commands. We now work through every path in the manifest and check it against the results of the integration commands, rather than the other way around, and if any path from the manifest doesn't appear in the snapshot we assume that it has staged in a different location due to symlinks. See: https://gitlab.com/BuildStream/buildstream/issues/270
* plugins/elements/compose.py: Only calculate snapshot when neededSam Thursfield2018-04-231-5/+8
| | | | | | This is an optimisation for the case where the compose element doesn't do any splitting, and also brings 2 related code fragments closer to each other.
* plugins/elements/compose.py: Use sets instead of lists where appropriateSam Thursfield2018-04-231-7/+8
| | | | | There is no significant order for the lists of added, removed and modified files, so use an unordered set() to store the data.
* bst-here: Add '-p' flag to upgrade buildstream (Issue #291)Tristan Maat2018-04-231-3/+15
|
* HACKING.rst: Fixing formatting of titles.Tristan Van Berkom2018-04-231-2/+2
| | | | Titles have 2 blank lines before them, and no blank lines after them.
* HACKING.rst: Add a section on BST_PROFILE and the artifact cache.Jim MacArthur2018-04-231-0/+33
|
* Add artifact cache receive profiling domainJim MacArthur2018-04-232-1/+16
| | | | | | _artifactcache/pushreceive.py: Wrap OSTreeReceiver.do_run in a profiling domain. _profile.py: Add 'ARTIFACT_RECEIVE' domain.