<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/buildstream.git, branch user-namespace-fallback</title>
<subtitle>gitlab.com: buildstream/buildstream.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/buildstream.git/'/>
<entry>
<title>_artifactcache/ostreecache.py: Allow explicit disabling of pushes</title>
<updated>2017-10-31T11:16:37+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2017-10-31T09:52:27+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/buildstream.git/commit/?id=de35793125af66650568316c21b4a878b00ecb23'/>
<id>de35793125af66650568316c21b4a878b00ecb23</id>
<content type='text'>
This is used by the platform to disable pushing explicitly in
the case that we're falling back to not using user namespaces, in
which case we dont entirely trust the artifacts we create.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is used by the platform to disable pushing explicitly in
the case that we're falling back to not using user namespaces, in
which case we dont entirely trust the artifacts we create.
</pre>
</div>
</content>
</entry>
<entry>
<title>sandbox/_sandboxbwrap.py: Dont use user namespaces if they are unavailable</title>
<updated>2017-10-31T11:16:37+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2017-10-31T09:44:02+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/buildstream.git/commit/?id=b539ef4664179ae26f4f9b9931b7b428560937ad'/>
<id>b539ef4664179ae26f4f9b9931b7b428560937ad</id>
<content type='text'>
Part of the fix for #92
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Part of the fix for #92
</pre>
</div>
</content>
</entry>
<entry>
<title>_platform/linux.py: Add preflight check to detect user namespaces</title>
<updated>2017-10-31T11:16:37+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2017-10-31T09:41:20+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/buildstream.git/commit/?id=a9a2bcece3b90092d9260f5c46675a0e17df381d'/>
<id>a9a2bcece3b90092d9260f5c46675a0e17df381d</id>
<content type='text'>
Here we check if `bwrap --ro-bind / / --unshare-user --uid 0 --gid 0 whoami`
returns successfully and prints 'root', to check if we are indeed capable
of creating user namespaces on the host.

If we are unable, then we save that state in the platform allowing
buildstream to behave differently, and print an informative startup
warning about this.

This fixes issue #92
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Here we check if `bwrap --ro-bind / / --unshare-user --uid 0 --gid 0 whoami`
returns successfully and prints 'root', to check if we are indeed capable
of creating user namespaces on the host.

If we are unable, then we save that state in the platform allowing
buildstream to behave differently, and print an informative startup
warning about this.

This fixes issue #92
</pre>
</div>
</content>
</entry>
<entry>
<title>_scheduler/job.py: Ensure messages are logged to the correct log file</title>
<updated>2017-10-31T11:16:26+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2017-10-31T11:15:09+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/buildstream.git/commit/?id=40f5fe7789d4085183717cfc158297959d8b380b'/>
<id>40f5fe7789d4085183717cfc158297959d8b380b</id>
<content type='text'>
Dont use the plugin which the message originates from, use the
plugin associated with the child task.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Dont use the plugin which the message originates from, use the
plugin associated with the child task.
</pre>
</div>
</content>
</entry>
<entry>
<title>doc: Explain how to configure project options</title>
<updated>2017-10-31T10:05:46+00:00</updated>
<author>
<name>Mathieu Bridon</name>
<email>bochecha@daitauha.fr</email>
</author>
<published>2017-10-30T10:09:40+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/buildstream.git/commit/?id=d8f63606c7b7b17be8da7732a88d10039e483eff'/>
<id>d8f63606c7b7b17be8da7732a88d10039e483eff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>_frontend/main.py: Hold on to unconditional startup messages</title>
<updated>2017-10-31T10:05:46+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2017-10-31T09:37:03+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/buildstream.git/commit/?id=e8309af42d6e9ce554961503638b4925c1a8a53d'/>
<id>e8309af42d6e9ce554961503638b4925c1a8a53d</id>
<content type='text'>
We avoid printing regular start/success/status messages etc
at startup time in advance of the heading, this would introduce
a lot of noise while interrogating source plugins for consistency
state.

This patch holds on to important errors and warnings which might
be raised by core components at startup time, and prints them
immediately after printing the heading.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We avoid printing regular start/success/status messages etc
at startup time in advance of the heading, this would introduce
a lot of noise while interrogating source plugins for consistency
state.

This patch holds on to important errors and warnings which might
be raised by core components at startup time, and prints them
immediately after printing the heading.
</pre>
</div>
</content>
</entry>
<entry>
<title>Catch attempts to compose a list</title>
<updated>2017-10-31T06:59:38+00:00</updated>
<author>
<name>Sam Thursfield</name>
<email>sam.thursfield@codethink.co.uk</email>
</author>
<published>2017-10-27T16:15:20+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/buildstream.git/commit/?id=8c4d8ca2b7c886690fb933428c6768c745667db7'/>
<id>8c4d8ca2b7c886690fb933428c6768c745667db7</id>
<content type='text'>
Attempting to compose a list property would result in an unhandled
exception:

    AttributeError: 'CommentedSeq' object has no attribute 'get'

We now at least detect the situation and produce an exception that
the frontend will report neatly:

    Error loading pipeline: element.bst [line 11 column 4]: Only values of type 'dict' can be composed.

I was getting this error from an attempt to conditionally extend the
sources list:

    sources:
      (?):
        arch == "x86_64":
          - url: http://example.com/x86_64

The correct way to do this is to move the conditional into the parent
dict, e.g.:

    (?):
      arch == "x86_64":
        sources:
          - url: https://example.com/x86_64

It would be nice if the error message could hint at how the user can do
what they want, but it doesn't seem possible in this case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Attempting to compose a list property would result in an unhandled
exception:

    AttributeError: 'CommentedSeq' object has no attribute 'get'

We now at least detect the situation and produce an exception that
the frontend will report neatly:

    Error loading pipeline: element.bst [line 11 column 4]: Only values of type 'dict' can be composed.

I was getting this error from an attempt to conditionally extend the
sources list:

    sources:
      (?):
        arch == "x86_64":
          - url: http://example.com/x86_64

The correct way to do this is to move the conditional into the parent
dict, e.g.:

    (?):
      arch == "x86_64":
        sources:
          - url: https://example.com/x86_64

It would be nice if the error message could hint at how the user can do
what they want, but it doesn't seem possible in this case.
</pre>
</div>
</content>
</entry>
<entry>
<title>context.py: Fixed project override validation to allow new 'strict' keyword</title>
<updated>2017-10-30T11:56:30+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2017-10-30T11:56:30+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/buildstream.git/commit/?id=459cc8a2c16c1485cf891485caa61fec51e91b23'/>
<id>459cc8a2c16c1485cf891485caa61fec51e91b23</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>utils.list_relative_paths: Clarify empty dirs note</title>
<updated>2017-10-30T11:15:43+00:00</updated>
<author>
<name>Angelos Evripiotis</name>
<email>jevripiotis@bloomberg.net</email>
</author>
<published>2017-10-27T15:25:30+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/buildstream.git/commit/?id=f10815ee0a9eeb9c7d595b32608f2dd63ca9a7bf'/>
<id>f10815ee0a9eeb9c7d595b32608f2dd63ca9a7bf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>utils.list_relative_paths: avoid os.path.relpath</title>
<updated>2017-10-30T11:15:43+00:00</updated>
<author>
<name>Angelos Evripiotis</name>
<email>jevripiotis@bloomberg.net</email>
</author>
<published>2017-10-27T15:00:36+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/buildstream.git/commit/?id=4bc656c598d5eaa47bfe52c4956311a0ef64aacc'/>
<id>4bc656c598d5eaa47bfe52c4956311a0ef64aacc</id>
<content type='text'>
Profiling suggested that the cumulative time spent in os.path.relpath()
was the dominant cost of utils.list_relative_paths().

Try to call this only once per directory walked.

In Python 3.5, we can optimise further by using os.scandir() and
maintaining relative paths as we go.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Profiling suggested that the cumulative time spent in os.path.relpath()
was the dominant cost of utils.list_relative_paths().

Try to call this only once per directory walked.

In Python 3.5, we can optimise further by using os.scandir() and
maintaining relative paths as we go.
</pre>
</div>
</content>
</entry>
</feed>
