I agree with the github approach as the Spark connector was originally
designed to be in it's own repo with dependencies on the Spark and Geode
jars.  I think the backwards compatibility for the Spark versions would be
as John described, based on the sbt dependencies file.

If we go with the single repo approach, as everyone has stated, we would
want to have more releases for Geode, which would mean Geode would have at
least as many releases as Spark.


On Tue, Jul 7, 2015 at 10:21 AM, Kirk Lund <kl...@pivotal.io> wrote:

> The recommended ideal time for building and executing all unit tests for a
> project is 10 minutes.[0][1][2]
>
> "Builds should be fast. Anything beyond 10 minutes becomes a dysfunction in
> the process, because people won’t commit as frequently. Large builds can be
> broken into multiple jobs and executed in parallel."[3]
>
> Now imagine packing 6 projects together into 1 project. Assuming all 6 have
> very fast unit tests that use Mockito then each takes 10 minutes to run and
> you end up with 60 minutes for building the overall project.
>
> This is then heading in the opposite direction from where Geode needs to
> go. If Geode continues to execute distributedTest and integrationTest from
> the main build target then this drives it up even longer. I'd recommend
> considering every option to reduce build time including moving independent
> tools to other repos.
>
> I think it's more likely that other contributors will join in on the Spark
> connector or JVSD or even Geode if they are isolated in their own projects.
>
> But, if group consensus is to keep everything in 1 project, then let's at
> least talk seriously about committing to breaking up tests into multiple
> jobs for parallel execution.
>
> [0] http://www.jamesshore.com/Agile-Book/ten_minute_build.html
> [1]
>
> http://www.martinfowler.com/articles/continuousIntegration.html#KeepTheBuildFast
> [2]
> http://www.energizedwork.com/weblog/2006/02/ten-minute-build-continuous
> [3]
>
> http://blogs.collab.net/devopsci/ten-best-practices-for-continuous-integration
>
> On Tue, Jul 7, 2015 at 9:55 AM, Anthony Baker <aba...@pivotal.io> wrote:
>
> > Given the rate of change, it doesn’t seem like we should be trying to add
> > (and maintain) support for every single Spark release.  We’re early in
> the
> > lifecycle of the Spark connector and too much emphasis on
> > backwards-compatibility will be a drag on our ongoing development,
> > particularly since the Spark community is valuing rapid evolution over
> > stability.
> >
> > (apologies if I have misconstrued the state of Spark)
> >
> > Anthony
> >
> >
> > > On Jul 6, 2015, at 11:22 PM, Qihong Chen <qc...@pivotal.io> wrote:
> > >
> > > The problem is caused by multiple major dependencies and different
> > release
> > > cycles. Spark Geode Connector depends on two products: Spark and Geode
> > (not
> > > counting other dependencies), and Spark moves much faster than Geode,
> and
> > > some features/code are not backward compatible.
> > >
> > > Our initial connector implementation depends on Spark 1.2 in before the
> > > last week of March 15. Then Spark 1.3 was released on the last week of
> > > March, and some connector feature doesn't work with Spark 1.3, then we
> > > moved on, and now support Spark 1.3 (but not 1.2 any more, we did
> create
> > > tag). Two weeks ago, Spark 1.4 was released, and it breaks our
> connector
> > > code again.
> > >
> > > Therefore, for each Geode release, we probably need multiple Connector
> > > releases, and probably need to maintain last 2 or 3 Connector releases,
> > for
> > > example, we need to support both Spark 1.3 and 1.4 with the current
> Geode
> > > code.
> > >
> > > The question is how to support this with single source repository?
> > >
> > > Thanks,
> > > Qihong
> >
> >
>

Reply via email to