1. 06 Jun, 2018 2 commits
  2. 05 Jun, 2018 4 commits
    • Chandan Singh's avatar
      _artifactcache/pushreceive.py: Add Click type for CLI argument 'repo' · 1d694b28
      Chandan Singh authored
      The CLI for `bst-artifact-receive` expects a `repo` argument, which is
      supposed to be a directory, but Click currently expects it to be just
      any string. This results in stack traces like the one below when the
      argument provided is not a directory:
      
              $ ~/.local/bin/bst-artifact-receive --pull-url http://foo foobaz
              Traceback (most recent call last):
                File "/root/.local/bin/bst-artifact-receive", line 8, in <module>
                  sys.exit(receive_main())
                ...
                File "/src/buildstream/buildstream/_artifactcache/pushreceive.py", line 581, in __init__
                  self.repo.open(None)
              GLib.Error: g-io-error-quark: /src/buildstream/43fref: opendir(/src/buildstream/foobaz): No such file or directory (1)
      
      Add types for this argument such that it throws better error messages
      when it receives bad arguments. With the Click types added, it will
      instead fail with messages like these:
      
              $ ~/.local/bin/bst-artifact-receive --pull-url http://foo foobaz
              Usage: bst-artifact-receive [OPTIONS] REPO
      
              Error: Invalid value for "repo": Directory "foobaz" does not exist.
      
              $ ~/.local/bin/bst-artifact-receive --pull-url http://foo setup.py
              Usage: bst-artifact-receive [OPTIONS] REPO
      
              Error: Invalid value for "repo": Directory "setup.py" is a file.
      
      Fixes #409.
      1d694b28
    • Phillip Smyth's avatar
      8d88b52a
    • Gökçen Nurlu's avatar
      _sandboxbwrap.py: Fix post-bwrap cleanup behaviour · 75fe8037
      Gökçen Nurlu authored
      The cleanup was supposed not to remove folders (`/dev`, `/tmp`, `/proc`) if
      they already existed before bwrap but it did the opposite: it tried to remove
      them if they existed before, and didn't remove them if they were created during
      bwrap. This was caused by a `not` clause, and this removes it.
      
      Fixes #379
      75fe8037
    • Tristan Maat's avatar
      _context.py: Normalize user-defined paths · 065f5ac7
      Tristan Maat authored
      065f5ac7
  3. 31 May, 2018 1 commit
  4. 23 May, 2018 1 commit
  5. 17 May, 2018 6 commits
  6. 11 May, 2018 16 commits
  7. 10 May, 2018 3 commits
  8. 07 May, 2018 7 commits
    • Tristan Van Berkom's avatar
      _frontend/cli.py: Fetch all elements when tracking a build plan · 1ec80edc
      Tristan Van Berkom authored
      It makes not sense to type `bst fetch --track --deps all <targets>`,
      because tracking will inevitably modify the build plan.
      
      Stream initialization will not cope with this either, instead of
      silently doing something which does not make any sense, we add an
      assertion that this should not happen.
      
      Unfortunately since `plan` is the default deps type for `bst fetch`,
      this is likely to happen so it's important to correct.
      
      This patch adds a warning in the case tracking of the build plan
      elements is requested, and converts the request to track all elements
      instead.
      1ec80edc
    • Tristan Van Berkom's avatar
      _stream.py, _pipeline.py: Refactoring of the pipeline itself · 5bdc0a79
      Tristan Van Berkom authored
      Here the pipeline becomes essentially stateless, some dangling
      state remains to be factored out because of frontend accesses
      which will be changed in a later commit.
      
      Essentially, the Pipeline.load() method no longer has any knowledge
      of the specific purposes of the loaded targets, and now takes
      a list of target groups and returns a corresponding list of element
      groups.
      
      The Stream() business logic methods now use other pipeline helper
      methods to create and filter lists from the loaded target elements.
      
      The Stream() also finally absorbs the Scheduler frontend facing
      APIs. However Queues are still exposed on the Stream object for
      logging purposes and through callbacks such that the frontend can
      retry elements.
      5bdc0a79
    • Tristan Van Berkom's avatar
      _artifactcache: Added ArtifactCache.setup_remotes() · b8e15706
      Tristan Van Berkom authored
      This removes some additional initialization code from Pipeline().
      
      Some symbols have changed here, the initialization is now called
      from Stream(), and a test case was also adjusted for this.
      b8e15706
    • Tristan Van Berkom's avatar
      _frontend/app.py: Remove partially_initialized() · a542c818
      Tristan Van Berkom authored
      There is no more need for this distinction.
      a542c818
    • Tristan Van Berkom's avatar
      Moving 'fetch_subprojects' configuration to stream <--> loader · c81fb2da
      Tristan Van Berkom authored
      This was previously decided in CLI, but knowledge of what to initialize
      has been moved to Stream().
      
      Now there is no more point to store this configuration in the Context,
      we just have the Stream() decide it when asking the Pipeline() to
      invoke the Loader().
      c81fb2da
    • Tristan Van Berkom's avatar
      _stream.py, _frontend: Call Stream() APIs with CLI arguments directly. · 541cd760
      Tristan Van Berkom authored
      This shifts the whole responsibility of interpreting command line
      targets etc to the Stream() object itself. With this commit, the
      Pipeline() truly becomes slaved to the Stream().
      541cd760
    • Tristan Van Berkom's avatar
      _frontend: Early logging initialization · c9f67f1e
      Tristan Van Berkom authored
        o This makes logging independent from the Pipeline()
      
        o Removed size_request Widget() method, add context to Widget() initializer
      
        o Make the Status() widget derive anything it needs through the Context()
      c9f67f1e