[BuildStream] BuildStream 2.0 - must have's



Hi all,

In one of the previous BuildStream Gathering event, it was decided that
BuildStream 2.0 will be "ready when it's ready". I don't think much has changed
there but I wanted to capture the issues that must be resolved before 2.0 so
that we can plan for it accordingly.

The aim of this thread is not to decide everything here and now, but rather to
capture all decisions that need to be made before we can make a stable release.


Sandboxing
----------

* Removal of sandbox-related code from BuildStream itself. Hard-dependency on
  BuildBox for sandboxing.

* Workspace incremental builds are supported via BuildBox backend.


Plugins
-------

* Agreement on which plugins remain in BuildStream Core, and which move out.

* Other plugins moving into domain-specific repositories, exact split pending
  discussion.

* BuildStream testing infrastructure needs to take into account external plugin
  repositories while running its own tests.

* Plugin API cleanup - some things were done in a non-ideal way before we
  decided to break API wholesale in 2.0. This includes things like private base
  class for git source, downloadable file source etc. Now that we are breaking
  API anyway, we might as well clean up those things.

* Related to above point, we should also review existing plugins and amend the
  ones that are using private BuildStream API.


CLI
---

* Agreement on consistent CLI.

* All breaking changes to the CLI that have been planned/proposed need to get
  finalized and merged.


Artifact Server
---------------

* Consider moving it to a separate project, as it is not directly related to
  BuildStream Core.

* Either way, need to decide what (if any) guarantees we want to provide for it
  since we expect it to change when FetchAPI is more standardized. That is
  expected to happen sometime next year.


Stability guarantees
--------------------

* We have defined what stability guarantees we want to provide. I don't want to
  define this right now but potentially it could include stability of things
  like the CLI, Plugin API, cache keys etc.


Performance
-----------

* BuildStream 2.0 must not be slower than BuildStream 1.0 for common operations
  on projects - big and small.

* It must be scalable, i.e. must not get slower when adding more workers.

---

That's the main areas that I can think of. If you can think of anything else,
please reply back to this message.

Once we have a list that people agree on, my aim is to convert these items into
GitLab issues and tag them with some tag indicating that they are needed for
BuildStream 2. That way anyone wanting to know what's blocking BuildStream 2.0
release will be able to do so by looking at all issues with that tag.

Thanks,
Chandan


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]