Yup, this is a good point, the interface includes stuff like launch scripts and 
environment variables. However I do think that the current features of 
spark-submit can all be supported in future releases. We’ll definitely have a 
very strict standard for modifying these later on.

Matei

On May 17, 2014, at 2:05 PM, Mridul Muralidharan <mri...@gmail.com> wrote:

> I would make the case for interface stability not just api stability.
> Particularly given that we have significantly changed some of our
> interfaces, I want to ensure developers/users are not seeing red flags.
> 
> Bugs and code stability can be addressed in minor releases if found, but
> behavioral change and/or interface changes would be a much more invasive
> issue for our users.
> 
> Regards
> Mridul
> On 18-May-2014 2:19 am, "Matei Zaharia" <matei.zaha...@gmail.com> wrote:
> 
>> As others have said, the 1.0 milestone is about API stability, not about
>> saying “we’ve eliminated all bugs”. The sooner you declare 1.0, the sooner
>> users can confidently build on Spark, knowing that the application they
>> build today will still run on Spark 1.9.9 three years from now. This is
>> something that I’ve seen done badly (and experienced the effects thereof)
>> in other big data projects, such as MapReduce and even YARN. The result is
>> that you annoy users, you end up with a fragmented userbase where everyone
>> is building against a different version, and you drastically slow down
>> development.
>> 
>> With a project as fast-growing as fast-growing as Spark in particular,
>> there will be new bugs discovered and reported continuously, especially in
>> the non-core components. Look at the graph of # of contributors in time to
>> Spark: https://www.ohloh.net/p/apache-spark (bottom-most graph; “commits”
>> changed when we started merging each patch as a single commit). This is not
>> slowing down, and we need to have the culture now that we treat API
>> stability and release numbers at the level expected for a 1.0 project
>> instead of having people come in and randomly change the API.
>> 
>> I’ll also note that the issues marked “blocker” were marked so by their
>> reporters, since the reporter can set the priority. I don’t consider stuff
>> like parallelize() not partitioning ranges in the same way as other
>> collections a blocker — it’s a bug, it would be good to fix it, but it only
>> affects a small number of use cases. Of course if we find a real blocker
>> (in particular a regression from a previous version, or a feature that’s
>> just completely broken), we will delay the release for that, but at some
>> point you have to say “okay, this fix will go into the next maintenance
>> release”. Maybe we need to write a clear policy for what the issue
>> priorities mean.
>> 
>> Finally, I believe it’s much better to have a culture where you can make
>> releases on a regular schedule, and have the option to make a maintenance
>> release in 3-4 days if you find new bugs, than one where you pile up stuff
>> into each release. This is what much large project than us, like Linux, do,
>> and it’s the only way to avoid indefinite stalling with a large contributor
>> base. In the worst case, if you find a new bug that warrants immediate
>> release, it goes into 1.0.1 a week after 1.0.0 (we can vote on 1.0.1 in
>> three days with just your bug fix in it). And if you find an API that you’d
>> like to improve, just add a new one and maybe deprecate the old one — at
>> some point we have to respect our users and let them know that code they
>> write today will still run tomorrow.
>> 
>> Matei
>> 
>> On May 17, 2014, at 10:32 AM, Kan Zhang <kzh...@apache.org> wrote:
>> 
>>> +1 on the running commentary here, non-binding of course :-)
>>> 
>>> 
>>> On Sat, May 17, 2014 at 8:44 AM, Andrew Ash <and...@andrewash.com>
>> wrote:
>>> 
>>>> +1 on the next release feeling more like a 0.10 than a 1.0
>>>> On May 17, 2014 4:38 AM, "Mridul Muralidharan" <mri...@gmail.com>
>> wrote:
>>>> 
>>>>> I had echoed similar sentiments a while back when there was a
>> discussion
>>>>> around 0.10 vs 1.0 ... I would have preferred 0.10 to stabilize the api
>>>>> changes, add missing functionality, go through a hardening release
>> before
>>>>> 1.0
>>>>> 
>>>>> But the community preferred a 1.0 :-)
>>>>> 
>>>>> Regards,
>>>>> Mridul
>>>>> 
>>>>> On 17-May-2014 3:19 pm, "Sean Owen" <so...@cloudera.com> wrote:
>>>>>> 
>>>>>> On this note, non-binding commentary:
>>>>>> 
>>>>>> Releases happen in local minima of change, usually created by
>>>>>> internally enforced code freeze. Spark is incredibly busy now due to
>>>>>> external factors -- recently a TLP, recently discovered by a large new
>>>>>> audience, ease of contribution enabled by Github. It's getting like
>>>>>> the first year of mainstream battle-testing in a month. It's been very
>>>>>> hard to freeze anything! I see a number of non-trivial issues being
>>>>>> reported, and I don't think it has been possible to triage all of
>>>>>> them, even.
>>>>>> 
>>>>>> Given the high rate of change, my instinct would have been to release
>>>>>> 0.10.0 now. But won't it always be very busy? I do think the rate of
>>>>>> significant issues will slow down.
>>>>>> 
>>>>>> Version ain't nothing but a number, but if it has any meaning it's the
>>>>>> semantic versioning meaning. 1.0 imposes extra handicaps around
>>>>>> striving to maintain backwards-compatibility. That may end up being
>>>>>> bent to fit in important changes that are going to be required in this
>>>>>> continuing period of change. Hadoop does this all the time
>>>>>> unfortunately and gets away with it, I suppose -- minor version
>>>>>> releases are really major. (On the other extreme, HBase is at 0.98 and
>>>>>> quite production-ready.)
>>>>>> 
>>>>>> Just consider this a second vote for focus on fixes and 1.0.x rather
>>>>>> than new features and 1.x. I think there are a few steps that could
>>>>>> streamline triage of this flood of contributions, and make all of this
>>>>>> easier, but that's for another thread.
>>>>>> 
>>>>>> 
>>>>>> On Fri, May 16, 2014 at 8:50 PM, Mark Hamstra <
>> m...@clearstorydata.com
>>>>> 
>>>>> wrote:
>>>>>>> +1, but just barely.  We've got quite a number of outstanding bugs
>>>>>>> identified, and many of them have fixes in progress.  I'd hate to see
>>>>> those
>>>>>>> efforts get lost in a post-1.0.0 flood of new features targeted at
>>>>> 1.1.0 --
>>>>>>> in other words, I'd like to see 1.0.1 retain a high priority relative
>>>>> to
>>>>>>> 1.1.0.
>>>>>>> 
>>>>>>> Looking through the unresolved JIRAs, it doesn't look like any of the
>>>>>>> identified bugs are show-stoppers or strictly regressions (although I
>>>>> will
>>>>>>> note that one that I have in progress, SPARK-1749, is a bug that we
>>>>>>> introduced with recent work -- it's not strictly a regression because
>>>>> we
>>>>>>> had equally bad but different behavior when the DAGScheduler
>>>> exceptions
>>>>>>> weren't previously being handled at all vs. being slightly
>>>> mis-handled
>>>>>>> now), so I'm not currently seeing a reason not to release.
>>>>> 
>>>> 
>> 
>> 

Reply via email to