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
      438ed34c
  2. 29 Mar, 2019 1 commit
  3. 27 Mar, 2019 1 commit
  4. 25 Mar, 2019 3 commits
  5. 21 Mar, 2019 2 commits
  6. 20 Mar, 2019 1 commit
  7. 16 Mar, 2019 3 commits
    • Jürg Billeter's avatar
      Rename cache-buildtrees option value 'failure' to 'auto' · 3951eb56
      Jürg Billeter authored
      We anticipate other cases than build failures where buildtree caching
      will be required.  E.g., incremental workspace build with remote
      execution. Or running tests in a buildtree in parallel with the build of
      reverse dependencies.
      
      This renames the option value 'failure' to the more generic 'auto' to
      cover these other cases as well.
      3951eb56
    • Jürg Billeter's avatar
      _frontend/app.py: Fail on missing buildtree in failure handler · ab708fb6
      Jürg Billeter authored
      In the interactive failure handler we should never enter the interactive
      shell if the buildtree is missing (due to cache-buildtrees=never).
      ab708fb6
    • Jürg Billeter's avatar
      _artifact.py: Do not create empty buildtree directories · 142ef9cd
      Jürg Billeter authored
      Creating an empty buildtree directory when buildtree caching is disabled
      means cached_buildtree() can return True even if no buildtree is
      available, which breaks logic in the frontend and in Stream.
      
      This adds the buildtree_exists() method to indicate whether an artifact
      was created with a buildtree, independent of whether the buildtree is
      available in the local cache.
      142ef9cd
  8. 14 Mar, 2019 3 commits
    • Angelos Evripiotis's avatar
      'artifact log': document the 'artifacts' argument · f0490bc3
      Angelos Evripiotis authored
      I found it quite difficult to guess what format the 'bst artifact log'
      command would like artifact references in. Put them in the help for that
      command, to save folks time.
      
      In future work, we probably want to document the behaviour of
      'Stream._classify_artifacts' globally - most commands take them and the
      results can be surprising if you don't know about artifact refs.
      f0490bc3
    • 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
      6a1e7461
    • Tom Pollard's avatar
  9. 13 Mar, 2019 1 commit
    • James Ennis's avatar
      cli.py: Add artifact delete command · 01abedd6
      James Ennis authored
      This command provides a --no-prune option because or a large cache, pruning
      can be an expensive operation. If a developer wishes to quicky rebuild an artifact,
      they may consider using this option.
      01abedd6
  10. 19 Feb, 2019 2 commits
  11. 15 Feb, 2019 2 commits
    • Angelos Evripiotis's avatar
      userconfig: rm really-workspace-close-project-inaccessible · c24f2971
      Angelos Evripiotis authored
      Remove the need for the 'really-workspace-close-project-inaccessible'
      config option, as well as the option itself.
      
      As agreed on the mailing list [1], all the 'are you sure?' prompts on
      workspace reset and close were removed. While that discussion was going
      on, this new prompt and option was added. At the 2019 BuildStream
      Gathering, it was verbally agreed between myself and Tristan VB that we
      would also remove this instance.
      
      It was also agreed that we should have a notice to let the user know
      what they'd done, this was already in place if interactive. Moved it to
      be unconditional so that there's no difference in non-interactive
      behaviour. Made it output to stderr, as it's diagnostic meant for the
      user. Made it the last thing echo'd so it's next to the prompt - it's
      very relevant to what they type next. Added a test to make sure the text
      makes it to stderr in the appropriate case, and not in an inappropriate
      one.
      
      This is the last instance of any prompt configuration, so BuildStream
      can also forget all of that machinery.
      
      [1] https://mail.gnome.org/archives/buildstream-list/2018-December/msg00111.html
      c24f2971
    • Daniel Silverstone's avatar
      Variables: Rework how expansion strings work · 0f78a47d
      Daniel Silverstone authored
      Rather than constantly using regular expressions and retrieval from YAML
      nodes, pre-parse expansion strings into a list representation cached
      for reuse, and then expand them as simple string concatenation.
      Signed-off-by: Daniel Silverstone's avatarDaniel Silverstone <daniel.silverstone@codethink.co.uk>
      0f78a47d
  12. 13 Feb, 2019 4 commits
  13. 12 Feb, 2019 1 commit
    • Chandan Singh's avatar
      _frontend: Allow printing dependencies using `bst show` · 9b6c18e4
      Chandan Singh authored
      At present, there isn't an easy way to print anything from `bst show`
      that would give the users an idea of what the dependency graph looks
      like. One could use things like `--deps build`, but that will just print
      a list, without any information about the dependency edges.
      
      Add `%{deps}`, `%{build-deps}` and `%{runtime-deps}` format strings to
      `bst show` that would simply print the list of all dependencies, build
      dependencies and runtime dependencies respectively.
      
      Summary of changes:
      
        * buildstream/_frontend/cli.py: Add help for new format symbols.
        * buildstream/_frontend/widget.py: Add support for new format symbols
                                           for dependencies.
        * tests/frontend/show.py: Add tests for new format symbols.
      9b6c18e4
  14. 07 Feb, 2019 1 commit
  15. 05 Feb, 2019 1 commit
  16. 29 Jan, 2019 1 commit
    • Angelos Evripiotis's avatar
      BREAK:remove unconditional 'are you sure?' prompts · 86c8e414
      Angelos Evripiotis authored
      This is a breaking change, as it affects behaviour that people might be
      relying on. An entry has been added to NEWS.
      
      As proposed on the mailing list, this change removes the unconditional
      prompts on:
      
          o: bst workspace reset
          o: bst workspace close --remove-dir
      
      If interactive, these commands would always interrupt you with a prompt
      like this:
      
          This will remove all your changes, are you sure?
      
      This seems like it may just save someone's work some time. It may also
      condition folks to hit 'y' quickly without thinking.
      
      This change also makes the non-interactive behaviour consistent with the
      interactive behaviour in the default case. There is also the case of the
      prompt configured by 'really-workspace-close-project-inaccessible',
      which may be tackled in later work.
      
      This change also removes the new config options to suppress those
      prompts, and their associated news entry.
      
      The relevant bit of the mailing list conversation is here:
      https://mail.gnome.org/archives/buildstream-list/2018-December/msg00106.html
      
      The issue to make interactive and non-interactive behaviour consistent
      is here:
      #744
      86c8e414
  17. 28 Jan, 2019 1 commit
    • Tom Pollard's avatar
      Download buildtrees on demand for bst shell --use-buildtree · 805baf7d
      Tom Pollard authored
      Provide bst shell --use-buildtree the ability to attempt to
      acquire missing buildtrees, given respective option, user
      pull-buildtree context and remote availability.
      
      _frontend/cli.py: Refactor logic for determining --use-buildtree
      option with given opportunity to attempt pulling a non-local
      buildtree. Element loaded with artifact_config to allow remote
      querying.
      
      _stream.py: With given user option and element state, construct
      PullQueue to fetch remote buildtree. Continue or Error without
      buildtree if cannot be attained.
      
      tests/integration/build-tree.py: Update to support new usecases
      805baf7d
  18. 24 Jan, 2019 7 commits
  19. 22 Jan, 2019 4 commits
    • James Ennis's avatar
      cli.py: Add an obsoletion note to our deprecated commands. · 35377522
      James Ennis authored
      Click 7.0 allows us to declare commands as 'hidden'.
      However, sphinx-click and click-man still generate these hidden
      commands in the documentation and man pages, respectively.
      
      This is a stop gap solution until the upstream issues (tracked in
      issues #879 and #881) have been addressed.
      35377522
    • James Ennis's avatar
      Mark 'old' checkout command as obsolete · fbd15939
      James Ennis authored
      This commit marks 'bst checkout' as a 'hidden' command. If used,
      the user will be prompted to use the new 'bst artifact checkout'
      command.
      
      All tests which used 'bst checkout' have been modified to use
      the new artifact sub-command.
      
      This partially solves #822.
      fbd15939
    • James Ennis's avatar
      cli: Add artifact checkout subcommand · 9eefe863
      James Ennis authored
      'artifact checkout' has slightly different behaviour from 'checkout',
      that is, either '--directory' or '--tar' are now required options.
      This is a step towards allowing checkout to take multiple args.
      9eefe863
    • James Ennis's avatar
      Move push and pull to the new artifact subcommand group · a3fc350f
      James Ennis authored
      This commit also ensures that if we try to use the 'old' commands,
      BuildStream will fail and instruct the user to use the new command.
      a3fc350f