IMO 1.0 for a product typically promises :

1) Reasonable stability of interfaces.
Typically only major version changes break interface compatibility.
While we are at 0.x, it seems to be considered 'okish' to violate this : but once you are at 1.0 and higher, breaking interface contracts will not be desired behavior.

We should be reasonably confident about the interfaces we expose to users : this includes the shell, exec envs, properties, api and spi's.


(This also depends on hadoop btw).




2) Reasonable stability and code quality.


Typically a major release promises reasonable rigor in terms of code quality, stability and functionality.

As mentioned, it is easier to get amazon, etc to move to pig 1.0, but probably not so for 0.7 or 1.0.1 or 1.1, etc. Declaring something as 1.0 typically has this expectation.

Considering the pretty invasive changes which has happened off late, maybe we do need to have a cool off period for the code to settle and focus on the bugs instead of features if we need a 1.0 release ?

Though as a developer, we always want to work on new & exciting things, we should balance it against user expectations for a stable product.




3) reasonable 'polish' in the product.

In general, it is not very easy to use pig - and it keeps violating principle of least surprise even after having used it for 3+ years now.

Typically related to schema, parsing, changing udf contracts, property interactions, multi-query optimization effects, null handling/interactions and the like.

A lot of it is probably just due to idioms and expectations which are not well known, bugs which should be filed, problems of trying to debug in a distributed cluster, constructs which are not adequately/well-defined, and lot due to mismatch between a novice user and pig-dev expectations.


We tend to work around/avoid a lot of these issues without a second thought, but exposing to someone new does bring out the confusion.


Considering the scope of pig, probably this is a pie in the sky goal - but it definitely would be good if pig "felt" stable and usable without need for too many caveats/gotchas.



Until these are "reasonably" well tackled, imo, it is not a good idea to go 1.0.

Regards,
Mridul





On Thursday 03 March 2011 06:22 AM, Olga Natkovich wrote:
Pig Users and Developers,

We are starting to plan the work after Pig 0.9. One thing we need to decide is 
what name/number to give to the next release: Pig 0.10 or Pig 1.0.

I believe that we are ready to declare 1.0. Here are my reasons:

(1)     We are mature enough and produce good quality releases
(2)     Our interface no longer change in major ways
(3)     We have a growing user community and we want the newcomers to know that 
our releases are stable
(4)     If the next release is 0.10 and we decide that we should switch on the 
following release going from 0.10 to 1.0 will generate a lot of confusion.

I wanted to start this conversation and see what others think before deciding 
if it is worth while to call a vote.

Olga

Reply via email to