1. 23 Jun, 2018 1 commit
  2. 19 Jun, 2018 1 commit
  3. 09 Jun, 2018 1 commit
  4. 08 Jun, 2018 1 commit
    • Valentin David's avatar
      Handle cross junction elements in workspaces. · 130bfbb8
      Valentin David authored
      Workspaces are now index by colon separated junction path. This
      now allows to create workspaces for elements in external projects.
      
      Workspaces are owned by context instead of root project. However
      it is initialized once top-level project is registered as we need
      to resolve paths relatively to this top-level project.
      
      Part of #359.
      130bfbb8
  5. 17 May, 2018 2 commits
  6. 11 May, 2018 3 commits
  7. 06 May, 2018 1 commit
  8. 03 May, 2018 1 commit
    • Jürg Billeter's avatar
      element.py: Fix buildable check in non-strict mode · eceb7c98
      Jürg Billeter authored
      Ensure that the strong cache key of each build dependency is available
      before an element is built. Otherwise the strong cache key of the
      element cannot be calculated and caching the artifact produces an
      AssertionError.
      
      In non-strict mode an element's strong cache key may not be available
      yet even though an artifact is available in the local cache. This can
      happen if the pull job is still pending as the remote cache may have an
      artifact that matches the strict cache key, which is preferred over a
      locally cached artifact with a weak cache key match.
      
      Fixes #383.
      eceb7c98
  9. 30 Apr, 2018 1 commit
  10. 26 Apr, 2018 1 commit
  11. 19 Apr, 2018 1 commit
  12. 17 Apr, 2018 1 commit
    • Tristan Van Berkom's avatar
      element.py: Fix force opening of workspaces. · 4fc2da9a
      Tristan Van Berkom authored
      This was broken because we let the Source objects initialize workspaces
      directly in the target workspace directory, where files might already
      exist.
      
      Instead, initialize the workspace in a tempdir and hardlink the files
      from there.
      
      This fixes issue #364
      4fc2da9a
  13. 16 Apr, 2018 4 commits
  14. 14 Apr, 2018 2 commits
  15. 13 Apr, 2018 3 commits
  16. 11 Apr, 2018 3 commits
    • Tristan Van Berkom's avatar
      element.py, source.py: Cleanup how Source cache keys are calculated. · c94f1264
      Tristan Van Berkom authored
      Recently after a refactor we kept the Source adding workspace keys
      to the source keys because, now clean this up to have the workspace
      key added directly in the Element cache key calculation.
      
      This breaks cache keys.
      c94f1264
    • Tristan Van Berkom's avatar
      element.py: Restructure artifact metadata · 6ad88ecb
      Tristan Van Berkom authored
       o Store the artifact.yaml into 4 separate files now
       o Only load on demand what is needed at a given time
       o Add local caching for what was loaded, ensuring we never redundantly load metadata
      
      This breaks artifact format and will require an artifact revision
      
      This should improve performance for issue #294
      6ad88ecb
    • Tristan Van Berkom's avatar
      element.py: Preserve workspace state in failed build sandboxes. · d46fbbcb
      Tristan Van Berkom authored
      As reported in regression #346, since we started mounting the workspaces
      we now fail to debug build failures for workspaces, the shell command
      no longer sees the workspaces files to debug.
      
      As the failed sysroot represents a very particular build failure, it
      is incorrect to attempt to remount a workspace again after a failed
      build, as the workspace files may have changed since the build.
      
      Instead, in the case of a build failure on a workspaced element, we
      copy the files from the workspace in place (while automatically preserving
      the mtimes and everything, as utils.safe_copy() does).
      
      When we implement failed build artifacts, this case will have to be
      handled in a very similar way, too.
      
      This fixes issue #346
      d46fbbcb
  17. 10 Apr, 2018 3 commits
    • Tristan Van Berkom's avatar
      Serialize workspace modifications in the main process. · a9cbb0f7
      Tristan Van Berkom authored
      This patch makes the child process send any workspace state back
      to the main process and saves it there directly before processing
      the result of a build job, such that workspace modifications in
      child tasks work transparently and no special care needs to be taken
      to save them except when doing so in the main process.
      
      Also this removes the line where we update workspace data at staging
      time.
      
      This fixes issue #352
      a9cbb0f7
    • Tristan Van Berkom's avatar
      _workspaces.py: Remove knowledge of Elements completely · be6b353d
      Tristan Van Berkom authored
      This makes workspaces more cleanly separated from everything else.
      
        o Removed some methods from Workspace()
      
        o Added Element._open_workspace() to initialize workspaces on
          sources
      
        o Cleanup some code in the pipeline
      
        o Have the App() call Element._open_workspace() instead of Workspace.open()
      be6b353d
    • Tristan Van Berkom's avatar
      element.py: Removed useless __workspace pointer · 8da99651
      Tristan Van Berkom authored
      I added this in the last refactor and forgot to remove it.
      8da99651
  18. 09 Apr, 2018 5 commits
  19. 08 Apr, 2018 1 commit
    • Tristan Van Berkom's avatar
      _versions.py: Added new file just to hold basic symbolic versions · 9be2dc5a
      Tristan Van Berkom authored
      This is where we're going to store BST_CORE_ARTIFACT_VERSION
      and BST_FORMAT_VERSION from now on.
      
      This was a little bit weirdly defined before, and now we need to
      at least have BST_FORMAT_VERSION available from the frontend/cli
      without onerous imports (we need to import it there, but dont want
      to slow down load time for bash completion runs).
      9be2dc5a
  20. 07 Apr, 2018 1 commit
  21. 05 Apr, 2018 3 commits