-
c2c10d68
by Daniel Silverstone
at 2019-02-14T13:02:07Z
Cache Keys: Update to use JSON rather than pickle
This affects the cache key version (updated to 7) and introduces
a dependency on `ujson` which is BSD licenced as of the version
locked in `requirements.txt`
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
868c057e
by Tristan Van Berkom
at 2019-02-14T13:58:39Z
Merge branch 'danielsilverstone-ct/json-cache-key' into 'master'
Update cache keys to use JSON
See merge request BuildStream/buildstream!1151
-
ace15fa6
by Benjamin Schubert
at 2019-02-14T14:04:45Z
Don't keep MetaSource around in Source
We can easily rebiuld MetaSource from any source so there is no
reason to keep them around.
This will slightly improve memory usage.
-
174f5394
by Tristan Van Berkom
at 2019-02-14T15:04:27Z
Merge branch 'bschubert/dont-keep-metasource' into 'master'
Don't keep MetaSource around in Source
See merge request BuildStream/buildstream!1150
-
e7e4086e
by Jürg Billeter
at 2019-02-14T15:05:38Z
utils.py: Change _ensure_real_directory() to not resolve symlinks
Resolving symlinks during staging causes various issues:
* Split rules may not work properly as the resolved paths will differ
depending on whether another artifact with a directory symlink has
been staged in the same root directory or not, e.g., as part of
compose.
* The order of symlinks in file lists is difficult to get right to
guarantee consistent and predictable behavior as paths in a file list
might rely on symlinks in the same file list. See #647 and #817.
* Staging order differences can lead to surprising results. See #390.
* Difficult to properly support absolute symlinks. Absolute symlinks are
currently converted to relative symlinks, however, this doesn't always
work. See #606 and #830.
This will require changes in projects that rely on the current behavior.
However, the changes are expected to be small and are often a sign of
buggy element files. E.g., elements that don't fully obey `bindir` or
`sbindir` variables.
-
c0570871
by Jürg Billeter
at 2019-02-14T15:05:38Z
_casbaseddirectory.py: Do not resolve symlinks
This matches the change in utils._process_list().
This also removes the _Resolver class as it is now unused. We may want
to support controlled symlink resolution in the future, in which case
the _Resolver class can be resurrected from this commit.
-
55bccf63
by Jürg Billeter
at 2019-02-14T15:05:38Z
utils.py: Do not mangle absolute symlinks
Copy symlinks as they are, absolute or relative. We no longer resolve
symlinks when copying files, which makes this safe.
-
94c6d59b
by Jürg Billeter
at 2019-02-14T15:05:38Z
Bump artifact version for changes in symlink handling
-
949962f8
by Jürg Billeter
at 2019-02-14T15:05:38Z
NEWS: Add entry for change in symlink handling
-
56c07baa
by Jürg Billeter
at 2019-02-14T16:08:42Z
Merge branch 'juerg/symlinks2' into 'master'
Do not resolve or mangle symlinks during staging
See merge request BuildStream/buildstream!1140
-
69520011
by Chandan Singh
at 2019-02-15T06:58:27Z
contrib/bst-graph: Add script to print graph in DOT format
This script leverages the recently added format strings
(`%{build-deps}`, `%{runtime-deps}`) to `bst show` to print a graph in
DOT format. This requires users to have the `graphviz` python package
installed.
Additionally, users can also render the graph using the `--format`
option if they have the `graphviz` command line tool installed.
-
51dae747
by Chandan Singh
at 2019-02-15T08:50:21Z
Merge branch 'chandan/dot-graph' into 'master'
contrib/bst-graph: Add script to print graph in DOT format
Closes #705
See merge request BuildStream/buildstream!1148
-
0f78a47d
by Daniel Silverstone
at 2019-02-15T10:03:46Z
Variables: Rework how expansion strings work
Rather than constantly using regular expressions and retrieval from YAML
nodes, pre-parse expansion strings into a list representation cached
for reuse, and then expand them as simple string concatenation.
Signed-off-by: Daniel Silverstone <daniel silverstone codethink co uk>
-
14176e51
by Benjamin Schubert
at 2019-02-15T11:04:10Z
Merge branch 'danielsilverstone-ct/variables-rework' into 'master'
Variables: Rework how expansion strings work
See merge request BuildStream/buildstream!1152
-
39febfda
by Angelos Evripiotis
at 2019-02-15T11:10:51Z
storage.Directory.export_to_tar: mtime=_magic...
Change the default value of mtime when doing export_to_tar() from `0` to
`_utils._magic_timestamp`. This avoids problems in other software, which
assume that an mtime of `0` means the file does not exist.
There is more than one example where files with an mtime of zero are
treated as non-existant by other software. e.g. [ninja][1] and [Template
Toolkit][2].
The OSTree project also [express an intention][3] to move from an mtime
of 0 to an mtime of 1:
> For this reason, OSTree acts as though all timestamps are set to
> time_t 0, so that comparisons will be considered up-to-date. Note that
> for a few releases, OSTree used 1 to fix warnings such as GNU Tar
> emitting "implausibly old time stamp" with 0; however, until we have a
> mechanism to transition cleanly to 1, for compatibilty OSTree is
> reverted to use zero again.
>From the comments on export_to_tar(), the motivation for having an mtime
of 0 was to have reproducible results, rather than it specifically being
the value 0.
Additionally, the reproducible builds project has a [page on
archives][4]; it mentions the benefits of setting all the files to have
the same mtime, or clamping the mtime. It makes no mention of a
motivation for the mtime to be specifically 0.
Fixes #914
[1]: https://github.com/ninja-build/ninja/issues/1120
[2]: https://github.com/abw/Template2/blob/8d7d37200af436f1ad43628278d3caad257c8e27/lib/Template/Provider.pm#L635
[3]: https://ostree.readthedocs.io/en/latest/manual/repo/
[4]: https://reproducible-builds.org/docs/archives/
-
8b34e356
by Angelos Evripiotis
at 2019-02-15T12:25:21Z
Merge branch 'aevri/mtime1' into 'master'
storage.Directory.export_to_tar: default mtime=utils._magic_timestamp
Closes #914
See merge request BuildStream/buildstream!1149
-
3bbb90e7
by Benjamin Schubert
at 2019-02-15T12:34:36Z
Use sets when checking for existence of an element
-
0921ccf4
by Benjamin Schubert
at 2019-02-15T13:39:52Z
Merge branch 'bschubert/set-as-set' into 'master'
Use sets when checking for existence of an element
See merge request BuildStream/buildstream!1154
-
c24f2971
by Angelos Evripiotis
at 2019-02-15T13:56:48Z
userconfig: rm really-workspace-close-project-inaccessible
Remove the need for the 'really-workspace-close-project-inaccessible'
config option, as well as the option itself.
As agreed on the mailing list [1], all the 'are you sure?' prompts on
workspace reset and close were removed. While that discussion was going
on, this new prompt and option was added. At the 2019 BuildStream
Gathering, it was verbally agreed between myself and Tristan VB that we
would also remove this instance.
It was also agreed that we should have a notice to let the user know
what they'd done, this was already in place if interactive. Moved it to
be unconditional so that there's no difference in non-interactive
behaviour. Made it output to stderr, as it's diagnostic meant for the
user. Made it the last thing echo'd so it's next to the prompt - it's
very relevant to what they type next. Added a test to make sure the text
makes it to stderr in the appropriate case, and not in an inappropriate
one.
This is the last instance of any prompt configuration, so BuildStream
can also forget all of that machinery.
[1] https://mail.gnome.org/archives/buildstream-list/2018-December/msg00111.html
-
91eb29a6
by Angelos Evripiotis
at 2019-02-15T14:55:06Z
Merge branch 'are_you_sure2' into 'master'
userconfig: rm really-workspace-close-project-inaccessible
Closes #726 and #744
See merge request BuildStream/buildstream!1130
-
b8561fb1
by Chandan Singh
at 2019-02-15T14:58:22Z
contrib/bst-here: Change default image to buildstream/buildstream
See https://gitlab.com/BuildStream/buildstream-docker-images/issues/26
for detailed discussion around this.
`buildstream/buildstream-fedora` is now considered deprecated. Switch to
`buildstream/buildstream` image. This image also offers more tags that
will provide users more flexibility.
-
2699c77c
by Chandan Singh
at 2019-02-15T14:58:31Z
contrib/bst-here: Allow users to specify image variant
Now that the `buildstream/buildstream` image has 9 variants, let's make
it easier to choose the desired tag, using a command-line option.
This is otherwise possible by specifying the full image name `image:tag`
using the `-i` option. But, this will make it easier to specify just the
tag using `-j`.
The following two invocations of `bst-here` are now equivalent:
bst-here -i buildstream/buildstream:dev
bst-here -j dev
-
677fc6c5
by Chandan Singh
at 2019-02-15T16:09:21Z
Merge branch 'chandan/bst-here-tags' into 'master'
contrib/bst-here: Allow users to specify image variant
See merge request BuildStream/buildstream!1153
-
3b889eb8
by Javier Jardón
at 2019-02-15T20:22:08Z
README.rst: Add table with distros with packaged buildstream
[ci skip]
-
232906b1
by Javier Jardón
at 2019-02-15T23:08:50Z
Merge branch 'jjardon/distros' into 'master'
README.rst: Add table with distros with packaged buildstream
See merge request BuildStream/buildstream!1143
-
b77068a1
by Tristan Van Berkom
at 2019-02-17T13:35:21Z
CONTRIBUTING.rst: Documenting the release process
So that other people can also make releases.