<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/buildstream.git/buildstream/_loader/loader.py, branch chandan/symbolic-junction</title>
<subtitle>gitlab.com: buildstream/buildstream.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/'/>
<entry>
<title>WIP: Allow symbolic links to subprojects</title>
<updated>2019-04-10T17:58:00+00:00</updated>
<author>
<name>Chandan Singh</name>
<email>csingh43@bloomberg.net</email>
</author>
<published>2019-04-10T17:58:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=645e5387c2f81765654ce4543ce1f00092e3381b'/>
<id>645e5387c2f81765654ce4543ce1f00092e3381b</id>
<content type='text'>
TODO:

- [ ] Decide on the proper name of the "element" configuration option
- [ ] Check if this works in various corner cases
- [ ] Add tests
- [ ] Add docs
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
TODO:

- [ ] Decide on the proper name of the "element" configuration option
- [ ] Check if this works in various corner cases
- [ ] Add tests
- [ ] Add docs
</pre>
</div>
</content>
</entry>
<entry>
<title>lint: Fix or silence 'cyclic-import' errors and enable pylint for it</title>
<updated>2019-04-01T10:54:31+00:00</updated>
<author>
<name>Benjamin Schubert</name>
<email>ben.c.schubert@gmail.com</email>
</author>
<published>2019-03-20T22:54:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=438ed34c132c5da29495b92f5589ce8c816cccc3'/>
<id>438ed34c132c5da29495b92f5589ce8c816cccc3</id>
<content type='text'>
Cyclic imports can be confusing because the order in which we import
dependencies can make the import fail or not. We should not rely on
ordering of imports for our code. This fixes everywhere possible the
imports and silence explicitely some which are not convenient or would
require big refactors
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Cyclic imports can be confusing because the order in which we import
dependencies can make the import fail or not. We should not rely on
ordering of imports for our code. This fixes everywhere possible the
imports and silence explicitely some which are not convenient or would
require big refactors
</pre>
</div>
</content>
</entry>
<entry>
<title>Rework profiler to act as a context manager</title>
<updated>2019-03-29T11:19:49+00:00</updated>
<author>
<name>Benjamin Schubert</name>
<email>ben.c.schubert@gmail.com</email>
</author>
<published>2019-03-19T09:24:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=c38f26cc8c8c65379a1b145bd99429a7cc1e68e1'/>
<id>c38f26cc8c8c65379a1b145bd99429a7cc1e68e1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>The new YAML World Order</title>
<updated>2019-03-27T21:26:07+00:00</updated>
<author>
<name>Daniel Silverstone</name>
<email>daniel.silverstone@codethink.co.uk</email>
</author>
<published>2019-03-25T15:08:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=3816dcf8901b06f2b9c0153e5b5fe394acf104a5'/>
<id>3816dcf8901b06f2b9c0153e5b5fe394acf104a5</id>
<content type='text'>
Replace YAML internals with a new Node type, and refactor everything
to use it cleanly.

This work was also by James Ennis &lt;james.ennis@codethink.co.uk&gt;

Signed-off-by: Daniel Silverstone &lt;daniel.silverstone@codethink.co.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace YAML internals with a new Node type, and refactor everything
to use it cleanly.

This work was also by James Ennis &lt;james.ennis@codethink.co.uk&gt;

Signed-off-by: Daniel Silverstone &lt;daniel.silverstone@codethink.co.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>YAML Cache: Remove the YAML Cache</title>
<updated>2019-03-27T20:46:43+00:00</updated>
<author>
<name>Daniel Silverstone</name>
<email>daniel.silverstone@codethink.co.uk</email>
</author>
<published>2019-03-25T15:08:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=1e698622caee2da202a2511bbf41f476224d4cb8'/>
<id>1e698622caee2da202a2511bbf41f476224d4cb8</id>
<content type='text'>
The new YAML world order doesn't need the YAML cache, so remove it
before we begin the change.

Signed-off-by: Daniel Silverstone &lt;daniel.silverstone@codethink.co.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The new YAML world order doesn't need the YAML cache, so remove it
before we begin the change.

Signed-off-by: Daniel Silverstone &lt;daniel.silverstone@codethink.co.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>loader: provenance in LoadErrors from _get_loader</title>
<updated>2019-03-26T18:27:58+00:00</updated>
<author>
<name>Angelos Evripiotis</name>
<email>jevripiotis@bloomberg.net</email>
</author>
<published>2019-03-19T10:58:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=85d13fc458097e7db05a7c4efdb0cd9c75126727'/>
<id>85d13fc458097e7db05a7c4efdb0cd9c75126727</id>
<content type='text'>
Give better error messages to the user by including provenance. Pass
'provenance' through to places where we raise exceptions in _get_loader.

For example, here you can see the provenance information now included
(the bit before the ':'):

    callHello.bst [line 8 column 4]: Could not find the project.conf
    file in the project referred to by junction element
    'hello-junction.bst'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Give better error messages to the user by including provenance. Pass
'provenance' through to places where we raise exceptions in _get_loader.

For example, here you can see the provenance information now included
(the bit before the ':'):

    callHello.bst [line 8 column 4]: Could not find the project.conf
    file in the project referred to by junction element
    'hello-junction.bst'.
</pre>
</div>
</content>
</entry>
<entry>
<title>_project: don't _find_project_dir if a junction</title>
<updated>2019-03-15T11:09:31+00:00</updated>
<author>
<name>Angelos Evripiotis</name>
<email>jevripiotis@bloomberg.net</email>
</author>
<published>2019-03-14T11:59:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=da3479322289bc699919ca24e774e21dd0b4a563'/>
<id>da3479322289bc699919ca24e774e21dd0b4a563</id>
<content type='text'>
If we're creating a project for a junction, then don't go looking for
the project directory - the path has already been given to us.

This means that we can now detect when junctions are missing a
'project.conf', and importantly we don't accidentally start resolving
elements in the enclosing project.

Add tests to cover workspaced, local, and git repo cases. Note that
this is also the first test coverage for the INVALID_JUNCTION path.

In later work we might extract the _find_project_dir magic out of the
Project class, so that there are no surprises when instantiating it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we're creating a project for a junction, then don't go looking for
the project directory - the path has already been given to us.

This means that we can now detect when junctions are missing a
'project.conf', and importantly we don't accidentally start resolving
elements in the enclosing project.

Add tests to cover workspaced, local, and git repo cases. Note that
this is also the first test coverage for the INVALID_JUNCTION path.

In later work we might extract the _find_project_dir magic out of the
Project class, so that there are no surprises when instantiating it.
</pre>
</div>
</content>
</entry>
<entry>
<title>loader: clearer error if no junction project.conf</title>
<updated>2019-03-15T11:09:31+00:00</updated>
<author>
<name>Angelos Evripiotis</name>
<email>jevripiotis@bloomberg.net</email>
</author>
<published>2019-03-14T13:21:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=bbbe1f14e0c2644f62c628406c0a26fc9bb67554'/>
<id>bbbe1f14e0c2644f62c628406c0a26fc9bb67554</id>
<content type='text'>
I found the original message confusing - it would talk about wanting a
project at '.', without a frame of reference. After re-reading the code
and junction docs it made more sense, I think this version would save
folks the trouble.

Removing all mention of it, if it's not specified. If it is specified
then explain it a bit more, i.e.

Before:

    Could not find the project.conf file for junction element at
    hello-junction.bst [line 1 column 0]. Expecting a project at path
    'project'

After:

    Could not find the project.conf file in project referred to by
    junction element 'hello-junction.bst'. Was expecting it at path
    'project' in the junction's source.

If no 'path' specified in the junction:

    Could not find the project.conf file in project referred to by
    junction element 'hello-junction.bst'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I found the original message confusing - it would talk about wanting a
project at '.', without a frame of reference. After re-reading the code
and junction docs it made more sense, I think this version would save
folks the trouble.

Removing all mention of it, if it's not specified. If it is specified
then explain it a bit more, i.e.

Before:

    Could not find the project.conf file for junction element at
    hello-junction.bst [line 1 column 0]. Expecting a project at path
    'project'

After:

    Could not find the project.conf file in project referred to by
    junction element 'hello-junction.bst'. Was expecting it at path
    'project' in the junction's source.

If no 'path' specified in the junction:

    Could not find the project.conf file in project referred to by
    junction element 'hello-junction.bst'.
</pre>
</div>
</content>
</entry>
<entry>
<title>Integrate source cache with rest of buildstream</title>
<updated>2019-03-14T07:12:34+00:00</updated>
<author>
<name>Raoul Hidalgo Charman</name>
<email>raoul.hidalgocharman@codethink.co.uk</email>
</author>
<published>2019-02-28T15:13:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=6a1e74619e0009ca5611bba025b8dcf08bec353e'/>
<id>6a1e74619e0009ca5611bba025b8dcf08bec353e</id>
<content type='text'>
This involve introducing new Consistency states `STAGED` and `BOTH` that
represent when the source is just in the local CAS and in both the local
CAS and unstaged in the source directory.

Sources are staged for each element into the local CAS during the fetch
stage. If the sources are in the local consistency state `STAGED` when
wanting to open a workspace, the original sources are fetched.

Relavant tests this affects have been changed.

Part of #440
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This involve introducing new Consistency states `STAGED` and `BOTH` that
represent when the source is just in the local CAS and in both the local
CAS and unstaged in the source directory.

Sources are staged for each element into the local CAS during the fetch
stage. If the sources are in the local consistency state `STAGED` when
wanting to open a workspace, the original sources are fetched.

Relavant tests this affects have been changed.

Part of #440
</pre>
</div>
</content>
</entry>
<entry>
<title>_loader/loader.py: Specify junction name in missing file errors where appropriate</title>
<updated>2019-03-12T07:14:58+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2019-03-09T11:38:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=bb44f093f6169aee5db41a7e4523affff12ed412'/>
<id>bb44f093f6169aee5db41a7e4523affff12ed412</id>
<content type='text'>
When a file is missing in a subproject, it is not particularly meaningful
to specify the filesystem path to the elements directory of the subproject,
as this temporary staging directory belongs to BuildStream and not the user.

Instead, when a file is missing in a subproject, specifying the junction name
is more useful.

This fixes an aspect of #947
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a file is missing in a subproject, it is not particularly meaningful
to specify the filesystem path to the elements directory of the subproject,
as this temporary staging directory belongs to BuildStream and not the user.

Instead, when a file is missing in a subproject, specifying the junction name
is more useful.

This fixes an aspect of #947
</pre>
</div>
</content>
</entry>
</feed>
