Make uploading of build trees configurable
Summary
The build tree should be optional in the artifact. When build elements are known not to be trusted for incremental builds, uploading the build tree is very wasteful. In scenarios where the vast majority of builds are going to be clean builds, the uploading of build trees is wasteful as well. The storage requirements of build trees are typically a multiple of the storage requirements without the build tree. Even independent expiry of the build tree, should be an option to trade space vs time. Or rather reclaim space when there is no use for the build tree any longer.
I missed this in #21 (closed):
We do not want any project.conf variable related to this at all if it can be avoided
- The cost of considering that an artifact might, or might not have a cached build tree available is going to be increasingly expensive, this is a distinction we don't want to have to make.
I do think we do want that for reasons above. And I do think that the client needs to gracefully deal with the fact that a build tree may not be present for an artifact.
I can see the following options be valid either in project.conf, user configuration or element configuration:
- failure: only upload the build tree on build failures
- always: always upload the build tree
- never: never upload the build tree
That way you can configure the project to only upload the build tree in case of failure, and then e.g. in webkit.bst configure that specific element to upload its build tree.
Edit, added by Laurence, 21 Nov: see related Mailing List discussion here