1. 01 Apr, 2019 1 commit
    • Benjamin Schubert's avatar
      lint: Fix or silence 'cyclic-import' errors and enable pylint for it · 438ed34c
      Benjamin Schubert authored
      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
  2. 29 Mar, 2019 1 commit
  3. 27 Mar, 2019 2 commits
  4. 26 Mar, 2019 1 commit
    • Angelos Evripiotis's avatar
      loader: provenance in LoadErrors from _get_loader · 85d13fc4
      Angelos Evripiotis authored
      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
  5. 15 Mar, 2019 2 commits
    • Angelos Evripiotis's avatar
      _project: don't _find_project_dir if a junction · da347932
      Angelos Evripiotis authored
      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.
    • Angelos Evripiotis's avatar
      loader: clearer error if no junction project.conf · bbbe1f14
      Angelos Evripiotis authored
      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.
          Could not find the project.conf file for junction element at
          hello-junction.bst [line 1 column 0]. Expecting a project at path
          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'.
  6. 14 Mar, 2019 1 commit
    • Raoul Hidalgo Charman's avatar
      Integrate source cache with rest of buildstream · 6a1e7461
      Raoul Hidalgo Charman authored
      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
  7. 12 Mar, 2019 2 commits
  8. 25 Feb, 2019 1 commit
    • Chandan Singh's avatar
      loader: Allow dependencies to use ":" to refer to junctioned elements · 88ace418
      Chandan Singh authored
      This will allow cross-junction dependencies to be listed as strings on a
      single line.
      As part of this, some logic around initializing `Dependency()` objects
      have been moved out of `_extract_depends_from_node()` method into the
      constructor of `Dependency()` class, to keep all related code in one
      * _loader/types.py: While initializing `Dependency` objects, attempt to
                          split filenames, only if no `junction` was specified
                          explicitly. If a `junction` was specified, then
                          filenames with `:` in their names will result in an
      * _loader/loadelement.py: Refactor logic to initialize `Dependency()`
                                objects to move it to the `Dependency()`
      * tests/frontend/buildcheckout.py: Add tests to ensure the above.
      * _versions.py: Bump BST_FORMAT_VERSION.
      Fixes #809.
  9. 15 Feb, 2019 1 commit
  10. 13 Feb, 2019 2 commits
  11. 12 Feb, 2019 3 commits
  12. 06 Feb, 2019 1 commit
  13. 05 Feb, 2019 1 commit
  14. 31 Jan, 2019 2 commits
  15. 28 Jan, 2019 2 commits
  16. 31 Dec, 2018 2 commits
  17. 06 Dec, 2018 1 commit
  18. 30 Nov, 2018 1 commit
  19. 27 Nov, 2018 1 commit
  20. 05 Nov, 2018 1 commit
  21. 26 Oct, 2018 1 commit
  22. 18 Oct, 2018 2 commits
  23. 15 Oct, 2018 1 commit
  24. 27 Sep, 2018 1 commit
  25. 21 Aug, 2018 1 commit
  26. 15 Aug, 2018 1 commit
    • Chandan Singh's avatar
      Allow source plugins to access previous sources · 9d2442b2
      Chandan Singh authored
      Source plugin implementations can now specify that they need access to
      previously staged sources by specifying
      `BST_REQUIRES_PREVIOUS_SOURCES_FETCH`, corresponding to access at `track`
      and `fetch` times respectively.
      Fixes #381.
      Replaces !505. For relevant discussion, see this discussion:
      !505 (comment 83780747)
  27. 14 Aug, 2018 1 commit
  28. 02 Aug, 2018 3 commits