Hi all,

Yesterday we finally got together to discuss BuildStream 2.0 again and
we made great strides towards putting this long overdue release on the
fast track.

The new milestone overview, which dictates what we expect to land before
our first candidate release, can be viewed here:

    https://github.com/apache/buildstream/milestone/2

I've included the minutes below for reference.

Cheers,
    -Tristan


Meeting minutes
===============

 * Walk back over zealous plan to disallow writing in the sandbox

   In our last meeting I had pushed for us to disallow plugins writing
   to the sandbox using python code, as there have been some instances
   of non-deterministic output as a result.

   This turns out to be complicated and is dragging the release, so instead
   just consider plugins who generate non-deterministic to be buggy and
   need fixing.

   VOTE: +1 unanimous

 * Remove #1274 and #1275 from the blocker list

   We had intended to use the remote asset cache to improve performance
   of fetching and tracking when infrastructure allows for this.

   Motion to not block on these features.

   VOTE: +1 unanimous

   NOTE: When implementing this after freezing the API, source plugins
         will need to explicitly opt-in to participate in such
         optimizations.

 * Minimum time to market for plugin testing API

   Discussion reached the following unanimous agreements:

   - The 'buildstream.testing' API will be made private until it
     can be deemed stable, as this need not block a 2.0 release.

   - Some plugins which we intend to remove from BuildStream core
     are required in order to preserve adequate test coverage of
     the BuildStream core, in order to test the core API surfaces.

     These plugins will be copied verbatim under the tests/ directory
     before removing the plugins from BuildStream core, in order to
     preserve test coverage.

     NOTE: The ideal is still to produce minimal dummy plugins for testing
           purposes, but for now there is no need to block on this.

 * Plugin migration

   Discussion reached the following unanimous agreements:

   - Prominant plugins migrated outside of the BuildStream core for which we
     intend to maintain, shall be migrated to a 'buildstream-plugins' repository
     in apache github.

     These shall be distributed on PyPI as a single package, even if the package
     might not contain all plugins on platforms which lack support for 
potentially
     platform specific plugins.

   - These plugins include:

     Source plugins: zip, git, bzr, pip, docker, cargo, patch

     Element plugins: cmake, meson, autotools, make, pip, distutils

     NOTE: The distutils element plugin will be renamed 'setuptools'

     NOTE: The 'patch' source plugin may be promoted back to the core in the
           case that we find that we need to use 'patch' with 'tar' in order
           to load external plugins via junctions, but for now this is not
           expected.

   - Adding core plugins in the future could potentially cause namespace issues.

     To solve this, we shall ensure that core plugin names are shadowed by
     explicitly loaded external plugins

  ACTION: Sander to work on obtaining our new 'buildstream-plugins' repo

  ACTION: Tristan to file an issue regarding plugin name shadowing and add
          this to the BuildStream 2.0 milestone (blocker list)

  * Review remaining blockers on the milestone

   Discussion reached the following unanimous agreements:

   - Remove #1327 from the blocker list.

     This was a requirement for a proposal regarding composite plugins, which
     is complex and most probably unneeded - in the worst case it may result
     in a less than perfect API to create the composite plugin mechanism.

   - Remove #1385 from the blocker list.

     This is the policy about cache keys being stable indefinitely.

     At this stage there are no action items remaining to make this a reality,
     and we need follow our policy of not breaking cache key stability in the
     core.

     NOTE: External plugins can still potentially break cache keys, or they
           can be written in such a was as to preserve cache keys. The new
           'junction' plugin origin which allows strict plugin version pinning
           helps the consumer to avoid consuming plugins which break cache keys.

   - Remove #1296 from the blocker list.

     This issue proposes a nice feature to attempt to automatically upgrade
     your project to be BuildStream 2.0 ready when running `bst init`, while
     this is a nice feature, there is no need to block a release on this.

 * Relicensing effort

   After a long and arduous process of contacting contributors which continue
   to have code changes that exist in the master branch, we are finally ready
   to merge #1464 and formally relicense BuildStream under the apache license.

   VOTE: +1 unanimous


Reply via email to