| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
No empty lines after a section title, 2 empty lines before a section title.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
As recommended by Valentin David in issue #332.
|
|
|
|
| |
format version 8
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Leave this error to be handled by preflight.
Updated test case to expect the new ElementError instead of a LoadError
|
|
|
|
|
| |
Move this logic into the junction element itself, instead
of special case erroring for this in the loader.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
A late fix for issue #285
|
| |
|
|
|
|
| |
See #431
|
|
|
|
| |
needed
|
|
|
|
| |
See #358
|
|
|
|
| |
See #358
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This is a regression test for the issue raised here:
https://gitlab.com/BuildStream/buildstream/issues/270
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
There is no significant order for the lists of added, removed and
modified files, so use an unordered set() to store the data.
|
| |
|
|
|
|
| |
Titles have 2 blank lines before them, and no blank lines after them.
|
| |
|
|
|
|
|
|
| |
_artifactcache/pushreceive.py: Wrap OSTreeReceiver.do_run in a
profiling domain.
_profile.py: Add 'ARTIFACT_RECEIVE' domain.
|
|
|
|
| |
Sections have 2 blank lines before them, and no blank line after them.
|
| |
|
|
|
|
|
|
|
|
|
| |
Seems this was not propperly rebased; libostree and bubblewrap requirements
are already there.
Also the paragraph about docker was removed in
commit f0b350f158ed14c97613dc22b83ed89759b8d255
This reverts commit 7854fc5037204474d16618c657a1cd1ca12c888e.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This uses the existing messaging system to report errors in the main
application as a BUG type. It requires the use of a global_app variable
which isn't ideal; this may be replaced in future. This partially addresses
issue #197.
Theoretically, an exception could occur before Scheduler.loop is set up,
hence the check for it when terminating all jobs.
NOTE: This was originally submitted by Jim MacArthur, and manually
reapplied after some refactoring took place.
|
| |
|
|
|
|
| |
Drop the happy welcome phrase with exclamation point.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The required version is 0.1.2 based on the fact that we're using
--hostname and --remount-ro.
|
|
|
|
|
|
|
| |
This will give us an error if an instance attribute is ever
declared outside of the constructor, which usually constitutes
either a bug or a violation of the coding standard, rendering
code more difficult to read.
|
|
|
|
|
| |
This is in a derived Process from the standard lib, we add this
here because we are unsure about the constructor signature.
|
|
|
|
| |
in constructor
|
| |
|
| |
|
|
|
|
|
| |
Plugins set their attributes in configure(), because the
constructor is not public API.
|
| |
|