<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/buildstream.git, branch adamjones/contributing</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>Using CONTRIBUTING instead of HACKING means Gitlab</title>
<updated>2018-09-14T11:18:01+00:00</updated>
<author>
<name>Adam Jones</name>
<email>adam.jones@codethink.co.uk</email>
</author>
<published>2018-09-14T11:18:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=9beefb832a8d5a8a0b062810f0edff4b63e11fd3'/>
<id>9beefb832a8d5a8a0b062810f0edff4b63e11fd3</id>
<content type='text'>
will automatically track the file via the UI.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
will automatically track the file via the UI.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a section explaining how to open an issue</title>
<updated>2018-09-14T11:17:09+00:00</updated>
<author>
<name>Adam Jones</name>
<email>adam.jones@codethink.co.uk</email>
</author>
<published>2018-09-14T11:17:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=ea799329f9d11ed0978b032ee1c4b72ba20a6332'/>
<id>ea799329f9d11ed0978b032ee1c4b72ba20a6332</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'tristan/fix-cache-exclusivity-1.2' into 'bst-1.2'</title>
<updated>2018-09-10T09:22:57+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.van.berkom@gmail.com</email>
</author>
<published>2018-09-10T09:22:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=32d0ce664093a3b5256b7af449a047cc4ffe0a87'/>
<id>32d0ce664093a3b5256b7af449a047cc4ffe0a87</id>
<content type='text'>
Tristan/fix cache exclusivity 1.2

See merge request BuildStream/buildstream!779</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Tristan/fix cache exclusivity 1.2

See merge request BuildStream/buildstream!779</pre>
</div>
</content>
</entry>
<entry>
<title>_artifactcache: There shalt be only one cache size</title>
<updated>2018-09-10T06:56:12+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2018-09-10T05:40:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=78499b7dfcaf962a6da221081be06760f7ea3637'/>
<id>78499b7dfcaf962a6da221081be06760f7ea3637</id>
<content type='text'>
This does a lot of house cleaning, finally bringing cache
cleanup logic to a level of comprehensibility.

Changes in this commit include:

  o _artifactcache/artifactcache.py: _cache_size, _cache_quota and
    _cache_lower_threshold are now all private variables.

    get_approximate_cache_size() is now get_cache_size()

    Added get_quota_exceeded() for the purpose of safely checking
    if we have exceeded the quota.

    set_cache_size() now asserts that the passed size is not None,
    it is not acceptable to set a None size cache anymore.

  o _artifactcache/cascache.py: No longer set the ArtifactCache
    'cache_size' variable violently in the commit() method.

    Also the calculate_cache_size() method now unconditionally
    calculates the cache size, that is what it's for.

  o _scheduler/jobs/cachesizejob.py &amp; _scheduler/jobs/cleanupjob.py:

    Now check the success status. Don't try to set the cache size
    in the case that the job was terminated.

  o _scheduler/jobs/elementjob.py &amp; _scheduler/queues/queue.py:

    No longer passing around the cache size from child tasks,
    this happens only explicitly, not implicitly for all tasks.

  o _scheduler/queues/buildqueue.py &amp; _scheduler/scheduler.py:

    Use get_quota_exceeded() accessor

This is a part of #623
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This does a lot of house cleaning, finally bringing cache
cleanup logic to a level of comprehensibility.

Changes in this commit include:

  o _artifactcache/artifactcache.py: _cache_size, _cache_quota and
    _cache_lower_threshold are now all private variables.

    get_approximate_cache_size() is now get_cache_size()

    Added get_quota_exceeded() for the purpose of safely checking
    if we have exceeded the quota.

    set_cache_size() now asserts that the passed size is not None,
    it is not acceptable to set a None size cache anymore.

  o _artifactcache/cascache.py: No longer set the ArtifactCache
    'cache_size' variable violently in the commit() method.

    Also the calculate_cache_size() method now unconditionally
    calculates the cache size, that is what it's for.

  o _scheduler/jobs/cachesizejob.py &amp; _scheduler/jobs/cleanupjob.py:

    Now check the success status. Don't try to set the cache size
    in the case that the job was terminated.

  o _scheduler/jobs/elementjob.py &amp; _scheduler/queues/queue.py:

    No longer passing around the cache size from child tasks,
    this happens only explicitly, not implicitly for all tasks.

  o _scheduler/queues/buildqueue.py &amp; _scheduler/scheduler.py:

    Use get_quota_exceeded() accessor

This is a part of #623
</pre>
</div>
</content>
</entry>
<entry>
<title>element.py: Remove _get_artifact_cache() accessor.</title>
<updated>2018-09-10T06:56:12+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2018-09-09T10:24:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=303240abdcd01acad5e5daeeda16e2e9bc5aa28b'/>
<id>303240abdcd01acad5e5daeeda16e2e9bc5aa28b</id>
<content type='text'>
The artifact cache is anyway a singleton, the Element itself
has an internal handle on the artifact cache because it is
needed very frequently; but an artifact cache is not element
specific and should not be looked up by surrounding code
on a per element basis.

Updated _scheduler/queues/queue.py, _scheduler/queues/buildqueue.py
and _scheduler/jobs/elementjob.py to get the artifact cache directly
from the Platform
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The artifact cache is anyway a singleton, the Element itself
has an internal handle on the artifact cache because it is
needed very frequently; but an artifact cache is not element
specific and should not be looked up by surrounding code
on a per element basis.

Updated _scheduler/queues/queue.py, _scheduler/queues/buildqueue.py
and _scheduler/jobs/elementjob.py to get the artifact cache directly
from the Platform
</pre>
</div>
</content>
</entry>
<entry>
<title>_scheduler/jobs/cleanupjob.py: Use Platform.get_platform() public accessor</title>
<updated>2018-09-10T06:56:12+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2018-09-09T09:48:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=67fa96e1489790f0f92ba7660644bb0a72297a37'/>
<id>67fa96e1489790f0f92ba7660644bb0a72297a37</id>
<content type='text'>
This was previously poking directly at the Platform._instance.

Also, use the name 'artifacts' to hold the artifact cache to
be consistent with other parts of the codebase, instead of
calling it 'cache'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was previously poking directly at the Platform._instance.

Also, use the name 'artifacts' to hold the artifact cache to
be consistent with other parts of the codebase, instead of
calling it 'cache'.
</pre>
</div>
</content>
</entry>
<entry>
<title>_scheduler/jobs/cachesizejob.py: Use Platform.get_platform() public accessor</title>
<updated>2018-09-10T06:56:12+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2018-09-09T09:46:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=222c5034cf9ddd213475c51413306a334e133424'/>
<id>222c5034cf9ddd213475c51413306a334e133424</id>
<content type='text'>
This was previously poking directly at the Platform._instance.

Also, use the name 'artifacts' to hold the artifact cache to
be consistent with other parts of the codebase, instead of
calling it 'cache'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was previously poking directly at the Platform._instance.

Also, use the name 'artifacts' to hold the artifact cache to
be consistent with other parts of the codebase, instead of
calling it 'cache'.
</pre>
</div>
</content>
</entry>
<entry>
<title>element.py: Remove _get_artifact_size()</title>
<updated>2018-09-10T06:56:12+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2018-09-09T09:37:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=af0bfaeeda28186df3accebb688f208cf6036a29'/>
<id>af0bfaeeda28186df3accebb688f208cf6036a29</id>
<content type='text'>
There is no justification to hold onto this state here.

Instead, just make `Element._assemble()` return the size of the
artifact it cached, and localize handling of that return value in
the BuildQueue implementation where the value is observed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is no justification to hold onto this state here.

Instead, just make `Element._assemble()` return the size of the
artifact it cached, and localize handling of that return value in
the BuildQueue implementation where the value is observed.
</pre>
</div>
</content>
</entry>
<entry>
<title>_artifactcache/artifactcache.py: Sealing away some the estimated size</title>
<updated>2018-09-10T06:56:12+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2018-09-08T10:03:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=55266475f599a82aa90a0cc7c7cd60efc57cc576'/>
<id>55266475f599a82aa90a0cc7c7cd60efc57cc576</id>
<content type='text'>
Previously, the API contract was to expose the estimated_size variable
on the ArtifactCache instance for all to see, however it is only relevant
to the ArtifactCache abstract class code. Subclasses were informed to
update the estimated_size variable in their calculate_cache_size()
implementation.

To untangle this and hide away the estimated size, this commit
does the following:

  o Introduces ArtifactCache.compute_cache_size() API for external
    callers

  o ArtifactCache.compute_cache_size() calls the abstract method
    for the CasCache subclass to implement

  o ArtifactCache.compute_cache_size() updates the private
    estimated_size variable

  o All direct callers to ArtifactCache.calculate_cache_size(),
    have been updated to use the ArtifactCache.compute_cache_size()
    method instead, which takes care of updating anything local
    to the ArtifactCache abstract class code (the estimated_size)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, the API contract was to expose the estimated_size variable
on the ArtifactCache instance for all to see, however it is only relevant
to the ArtifactCache abstract class code. Subclasses were informed to
update the estimated_size variable in their calculate_cache_size()
implementation.

To untangle this and hide away the estimated size, this commit
does the following:

  o Introduces ArtifactCache.compute_cache_size() API for external
    callers

  o ArtifactCache.compute_cache_size() calls the abstract method
    for the CasCache subclass to implement

  o ArtifactCache.compute_cache_size() updates the private
    estimated_size variable

  o All direct callers to ArtifactCache.calculate_cache_size(),
    have been updated to use the ArtifactCache.compute_cache_size()
    method instead, which takes care of updating anything local
    to the ArtifactCache abstract class code (the estimated_size)
</pre>
</div>
</content>
</entry>
<entry>
<title>_artifactcache/artifactcache.py: Removing unused variable.</title>
<updated>2018-09-10T06:56:12+00:00</updated>
<author>
<name>Tristan Van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2018-09-08T09:27:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=2c898796940275073c5c0b1cc12ca3054a98006e'/>
<id>2c898796940275073c5c0b1cc12ca3054a98006e</id>
<content type='text'>
The ArtifactCache._local variable used to exist in order to
use a special hack to allow absolute paths to a remote artifact
cache, this was all for the purpose of testing.

This has all gone away with the introduction of CAS, leaving behind
a stale variable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The ArtifactCache._local variable used to exist in order to
use a special hack to allow absolute paths to a remote artifact
cache, this was all for the purpose of testing.

This has all gone away with the introduction of CAS, leaving behind
a stale variable.
</pre>
</div>
</content>
</entry>
</feed>
