1. 13 Jun, 2018 1 commit
    • Tristan Van Berkom's avatar
      doc: Overhaul of page names and titles · 9d7296eb
      Tristan Van Berkom authored
       o Giving main pages simple word titles
         This makes the main page:
         * About
         * Installing
         * Using
         * Reference
         * Contributing
       o Now named all rst files with their parent page name as a prefix.
       o Also changed some titles to make overall consistent titles.
  2. 09 Jun, 2018 1 commit
  3. 25 Apr, 2018 1 commit
    • Tristan Van Berkom's avatar
      Load and save junctioned source refs from/to junction.refs · 719a3fc3
      Tristan Van Berkom authored
        o _projectrefs.py: Additional constructor option to choose the base name
        o _project.py: Load two ProjectRefs objects, one for the junctions
        o source.py: Load and save junctioned source refs with the appropriate ProjectRefs object
        o tests: Updated some tests to expect junctions to be stored in junction.refs
      This fixes issue #361
  4. 16 Apr, 2018 1 commit
    • Tristan Van Berkom's avatar
      source.py, element.py, _pipeline.py: Streamling preflighting. · ca2331c3
      Tristan Van Berkom authored
      Instead of having the pipeline preflight all sources separately
      from elements, have the element preflight it's sources.
      This is in order to simplify the shared code path for the pipeline
      and the loader to use for instantiating elements.
      Also updated tests to expect the new ElementError and SourceError
      instead of the PipelineError which was raised for preflighting before.
  5. 14 Apr, 2018 1 commit
  6. 13 Apr, 2018 1 commit
  7. 11 Apr, 2018 1 commit
  8. 09 Apr, 2018 4 commits
  9. 03 Apr, 2018 2 commits
    • Tristan Van Berkom's avatar
      _project.py: Adhere to policy on private symbols · af34d716
      Tristan Van Berkom authored
      And adjust all surrounding sources for changed symbols.
      Additional details:
        o Added Project.get_shell_config() to report the shell configuration,
          instead of making those members all public
        o Moved assertions about project specified format versions required
          of plugins out of Plugin.__init__, and into Project.create_element()
          and Project.create_source(), so we can keep more things private
      This is a part of issue #285
    • Tristan Van Berkom's avatar
      _context.py: Adhere to policy on private symbols · 500f4f33
      Tristan Van Berkom authored
      And adjust all surrounding sources for changed symbols.
      This is a part of issue #285
  10. 02 Apr, 2018 1 commit
    • Tristan Van Berkom's avatar
      source.py: Remove unused method Source._del_workspace() · 202dd7cd
      Tristan Van Berkom authored
      This was never particularly useful, there is no circumstances
      under which a workspace needs to be deleted, and a cache key
      invalidated, in the course of a session.
      A workspace is deleted only atomically as a part of `bst workspace close`,
      which does not even load a pipeline anymore, so the pipeline state need not
      be adjusted in this case.
  11. 27 Mar, 2018 1 commit
  12. 21 Mar, 2018 1 commit
  13. 20 Mar, 2018 3 commits
    • Tristan Van Berkom's avatar
      source.py and loading: Refactoring of origin handles · a3cb8199
      Tristan Van Berkom authored
      The Source object previously stored the __origin_node,
      __origin_toplevel and __origin_filename, this is from a time
      when we did not hold on to the plugin's Provenance object
      Since this information comes from the same place, let's just
      use Plugin._get_provenance() to derive these values, instead
      of redundantly carrying them along separately.
    • Tristan Van Berkom's avatar
      Fix #248 - Support project.refs in the core. · 19cad981
      Tristan Van Berkom authored
      This adds a new Source.load_ref() API which is technically optional to
      implement, projects which make use of a project.refs file must only
      use source plugins which implement the new load_ref() method.
        * source.py: Added load_ref() API to load a ref from a specified node.
          This also adds _load_ref() and _save_ref() wrappers which handle
          the logistics of when to load and save a ref to which location.
          This also fixes _set_ref() to apply the ref to the node unconditionally,
          this must be done independantly of whether the ref actually changed.
        o Modifications to the loading process such that Source now can have
          access to the element name and source index.
        o _pipeline.py: Delegate abstract loading of source refs to Source._load_ref()
          - Print a summarized warning about redundant source references
          - Assert that one cannot track cross-junction elements without project.refs.
        o _scheduler/trackqueue.py: Delegate saving refs to Source._save_ref()
    • Tristan Van Berkom's avatar
      source.py: Document ref accessors to mandate support for None values. · 7777d390
      Tristan Van Berkom authored
      This is technically an API break, but will be transparant for the
      vast majority of the current hand full of source implementations
      which exist at this time. This is a lesser evil than bloating the
      API with new methods.
  14. 14 Mar, 2018 1 commit
  15. 07 Mar, 2018 1 commit
    • Tristan Van Berkom's avatar
      Silence messages from Source cache interrogation · 7fdddf30
      Tristan Van Berkom authored
      Source interrogation usually involves calling out to host tools
      to quickly check if a given ref exists. This has however regressed
      over time when running `bst build --track`.
      This patch adds a new context manager to silence the messages,
      and silences messages while calling `Source.get_consistency()`
      Fixes #280
  16. 19 Feb, 2018 1 commit
  17. 13 Feb, 2018 2 commits
  18. 25 Jan, 2018 2 commits
    • Chandan Singh's avatar
      Raise warning if workspaced source's ref is updated · cf7e4357
      Chandan Singh authored
      In case a source with an open workspace is tracked and it's ref gets
      updated, BuildStream should inform the user that the new ref will not be
      picked up so long as the workspace is open. To start using the updated
      ref, the existing workspace will have to be closed.
    • Chandan Singh's avatar
      Add support for doing incremental builds · 5f1be604
      Chandan Singh authored
      This functionality is only supported for sources which have an open
      workspace. When such sources are present, the workspace directory will
      be mounted directly inside the sandbox. As opposed to the default
      behavior, which is to copy files inside the sandbox.
      This will save time when building large projects as only those files
      will need be re-compiled that have been modified during two consecutive
      builds (assuming the underlying build system supports such behavior).
      A few things to note regarding this behavior:
      - If there are any `configure-commands` present, they will run only once
        for each open workspace. If an element has multiple workspaces and any
        one of them is opened/closed, they will be executed again on the next
        run. But, modifying the contents of a workspace will not trigger the
        `configure-commands` to be executed on the next run.
      - Workspaced builds still leverage the cache. So, if no changes are made
        to the workspace, i.e. no files are modified, then it will not force a
      Fixes #192.
  19. 18 Jan, 2018 1 commit
  20. 16 Jan, 2018 2 commits
  21. 11 Jan, 2018 1 commit
  22. 04 Jan, 2018 1 commit
  23. 02 Jan, 2018 1 commit
  24. 29 Dec, 2017 1 commit
    • Tristan Van Berkom's avatar
      Exceptions refactoring · 3c75781b
      Tristan Van Berkom authored
      Outline of changes to exceptions:
        o Now BstError base class has a `domain` and `reason` member,
          reason members are optional.
        o All derived error classes now specify their `domain`
        o For LoadError, LoadErrorReason defines the error's `reason`
        o Now the scheduler `job` class takes care of sending the error
          reason and domain back to the main process where the last
          exception which caused a child task to fail can be discretely stored.
  25. 13 Dec, 2017 2 commits
  26. 12 Dec, 2017 1 commit
  27. 07 Dec, 2017 1 commit
  28. 17 Nov, 2017 1 commit
  29. 11 Nov, 2017 1 commit
    • Daniel Playle's avatar
      Change origin to point at source repo · 90850f2b
      Daniel Playle authored
      This changes workspaces created with the git source element so that the
      origin remote points to the source repository of the build element as
      opposed to the internal repository in the bst cache.
      This introduces an addition of the init_workspace method in the source
      API. This method, which defaults to calling stage, is for the setup of
      the workspace after the creation of the workspace directory.
      This is a part of issue #53
  30. 08 Nov, 2017 1 commit
    • Tristan Van Berkom's avatar
      Refactor: Move context.py -> _context.py · 213d9072
      Tristan Van Berkom authored
        o Changed Plugin.get_context() to a private Plugin._get_context() accessor.
        o Updated anything which imports Context to do so from private _context module
        o Updated docs to exclude the now private Context