1. 22 Mar, 2018 1 commit
  2. 21 Mar, 2018 1 commit
  3. 05 Mar, 2018 1 commit
  4. 24 Jan, 2018 1 commit
    • Christian Hergert's avatar
      config: refactor config providers to be less racey · 1ab088f0
      Christian Hergert authored
      We had a number of issues in practice with configuration providers where
      things would race and as well as some unsafe threading/false-sharing.
      
      This redesigns those components to avoid a number of issues in thread
      safety.
      
      There doesn't seem to be any regressions. However, it has pointed out
      a few things that are/were broken in the flatpak configuration provider.
      We will address those as part of a revamped build preferences that is
      more pluggable (See #344 and #352).
      
      Another piece that would be nice to apply on top of this is tracking
      the last selected configuration so when restarting Builder we keep
      the same config active (See #338).
      
      Fixes #359
      1ab088f0
  5. 23 Jan, 2018 3 commits
  6. 13 Jan, 2018 1 commit
  7. 06 Dec, 2017 1 commit
  8. 27 Nov, 2017 1 commit
  9. 26 Nov, 2017 3 commits
  10. 11 Oct, 2017 1 commit
  11. 24 Sep, 2017 1 commit
  12. 21 Sep, 2017 1 commit
    • Christian Hergert's avatar
      source tree reorganization · 9b9db776
      Christian Hergert authored
      As the project has grown, we've let things get a bit out of their
      logical place. This does a bit of cleanup and tries to bring some
      of the embedded resources closer to where they are used.
      
      But more importantly, this allows us to clean some things up to
      the point that we can move forward statically linking a bunch of
      the plugins into libide. The plan here is to speed up the initial
      loading by avoiding lots of disk I/O stats which are currently
      hurting us.
      9b9db776
  13. 06 Aug, 2017 1 commit
    • Christian Hergert's avatar
      config: add "run-opts" property · d3f27e86
      Christian Hergert authored
      This can be used as a simple way to pass run options to the target
      executable. The flatpak module still needs save support, but this adds
      load support using x-run-args in the .json.
      d3f27e86
  14. 17 May, 2017 1 commit
    • Phaedrus Leeds's avatar
      configuration: Make the default config persist · 39997b29
      Phaedrus Leeds authored
      When the build configuration management changed to using
      IdeConfigurationProviders rather than doing everything in
      IdeConfigurationManager, the default configuration stopped persisting to
      the disk (so changes made are only effective during a session). This is
      because the configuration was being added by the manager as an
      IdeConfiguration rather than an IdeBuildconfigConfiguration, and
      IdeBuildconfigConfigurationProvider knows how to read and write
      ".buildconfig" files.
      
      The most obvious solution, creating the default configuration in the
      IdeBuildconfigConfigurationProvider's load function, doesn't work because the
      loads are asynchronous and there has to be at least one configuration
      when the IdeConfigurationManager finishes initializing (otherwise the
      IdeBuildPipeline will fail to initialize).
      
      Instead, the load interface for IdeConfigurationProviders was changed to
      an async/finish pair, so the IdeConfigurationManager knows when the
      loads finish. At that point, it can check if a configuration was
      restored from a .buildconfig file (in which case nothing needs to be
      done) or if the default configuration was added by the
      IdeConfigurationManager (in which case the buildconfig provider needs to
      be informed of it so it can be persisted when changes are made).
      
      https://bugzilla.gnome.org/show_bug.cgi?id=779240
      39997b29
  15. 14 Feb, 2017 1 commit
    • Christian Hergert's avatar
      buildconfig: only use IdeConfigurationManager API from main thread · 9efa88a6
      Christian Hergert authored
      Most of our libide API is only safe to use from the main-thread. Any
      threading we do should be contained to localized objects we control during
      the threading lifetime.
      
      This instead keeps a GPtrArray of discovered configurations while we are
      threaded, and then defers the registration work back to the main thread
      after the threaded task has completed, ensuring we only use that thread
      unaware API from the main thread.
      9efa88a6
  16. 10 Feb, 2017 3 commits