This discussion thread has been silent since March, and I would really like to bring it to some resolution.

To recap, I posted (at http://trunk.simile-widgets.org/) a proposed release of exhibit 2.3 with various bug fixes and feature additions. Concerns were raised that it was inappropriate to add features as this would make it harder for e3 to achieve feature parity/compatibility. I accepted this argument and formulated a proposal to exclude the egregious feature additions from the release while including those bug fixes I considered important. I've quoted that specific proposal below.

The discussion then branched into the broader topic of how to manage the commit process, with stefano helpfully posting the proposed change for review at http://codereview.appspot.com/5673046/ . But nobody has contributed to that review, and several months ago the discussion ground to a halt and nothing has happened since. I consider this a bad outcome.

I would like to bolster my revised release proposal below with the argument that it is relatively low stakes. Surely the developer community has migrated by now to exhibit 3. They should have little concern about these compatible changes to e2, and none at all about general commitment process since no further development will happen on e2. My primary concern is for the *users* of e2 who will benefit from these bug fixes (as well as a reduced dependence on the unreliable painter service).

So, can anyone who cares weigh in? If nobody does, I guess that's a sign that I'm free to make the decision on my own....

The specific proposal, quoting from my february 9 email:
You started winnowing; I will continue. This discussion was triggered at, as you say, "this particular, odd moment in time". It has broadened to cover much philosophy germane to long-term planning of our commit/release process. But I think it will simplify to split consideration of the present "odd moment" from the future planning. Perhaps we can put to bed the current issue---what if anything should be put into a 2.3 release---without wrestling with long-term questions.

I *think* that a lot of the objections you raise have to do with offering new functionality. So let's consider winnowing the "new functionality" parts of my proposed release. Looking over the stuff I've put in trunk (http://people.csail.mit.edu/karger/Exhibit/alpha.html) it would seem that the following represent changes that do *not* offer not functionality so won't raise problems being released
* rewrote xml, html, and tsv/csv importer (all have been there for years)
* map extension to use gmaps v3, canvas
* stable sorting in tables
* upgrade jquery to 1.7
* simileajax modified to use simile-widgets.org
* bug fixes

Then there are changes that clearly offer new functionality, so should not be in the release: * logging. it will be a nuisance to remove all the logging calls, but we can remove the parameter test that turns them on
* data editing.  this is a standalone extension, we can host elsewhere

Then there is a grey area. I hope these can be included in the release as argued below, essentially because they are *minor* * label property optional. this is a trivial change (create a label if missing) that fixes an incredibly common inexplicable and frustrating failure for novices trying to create exhibits. * inline data view the <link rel=exhibit/data href="#data"> tag. This is inarguably consistent with the semantics of the link tag, and fixes another one of the most common complaints about exhibit (not indexable) * inline data in body tags with ex:role="data" attribute. Yes. this is a new feature. But it's very convenient (kind of necessary) for people who cannot access the head, and I personally would like to release it here as a way to promise it for E3 * two new example exhibits that demonstrate the data import methods. While certainly new, they aren't part of the code at all, just html documents, but are convenient for people learning about or testing the tool.




On 2/10/2012 12:15 PM, Stefano Mazzocchi wrote:
On Fri, Feb 10, 2012 at 5:51 AM, David Karger <kar...@mit.edu <mailto:kar...@mit.edu>> wrote:

    As I tried to indicate in my last email, I'm actually quite
    sanguine regarding whetever commit process the community evolves
    going forward.  There's no rush to figure it out and I'm sure I'll
    be happy to follow it.  In particular if I find it too burdensome
    I can just stop coding.  Also, this process will be focused on E3,
    as E2 development is ending.

    My *immediate* concern is the code I've *already* developed for
    *E2* in the absence of any clear commit process.  I'd like to
    arrive at a decision about its disposition, one that hopefully
    doesn't involve throwing it all away.  I'm sitting on a (fait
    accompli) bunch of code that I think will be of use to the current
    users, so I'd like to incorporate it.


Fair enough, let's get practical and decouple the immediate needs from the need for more explicit governance rules.

Here is what I would do:

1) move the existing svn "trunk" into a branch, say "branches/davidk_2.3a"

2) copy the "tags/2.2.0" release as "trunk"

3) tell people NOT to update their svn if they're running from trunk until this conflict is resolved

4) create a diff between "branches/davidk_2.3a" and the current "trunk" (which is now the latest released exhibit)

5) put the above patch up for review (for example, a very good one that mimics the tool that Google uses internally is http://codereview.appspot.com/, but any public code review places would work)

6) collect suggestions from the community there on what part of this patch should be "pulled" into trunk for an immediate release and what should remain there up for further discussion on alignment with the 3.0 tree, governance and ownership rules, maintenance responsibilities and what not

7) apply the community reviewed patch to trunk, release it as 2.2.1 if there is no added functionality but only bugfixes, 2.3.0 if there are additions in functionality as well but back compatibility is guaranteed... if it's not back compatible, it shouldn't have made it into the patch in the first place.

8) tell people the harmonization is done and they are free to update from trunk again

8) whatever is left on the floor of the editing room will probably need further discussions on where it should live, although my suggestions would be against further development on a "vendor" branch and rather use the github model instead, and that might require us to move the mainline from svn to git, although it might not be necessary since git can also talk to an svn repository.

The above process would give you increase vitality and freshness in the mainline that you seek and reduce the impedance mismatch between the agreed upon 2.2 -> 3.0 transition path and the currently proposed 2.3a "detour".

Now, granted, the devil is in the details and such a code review might yield consensus that might not fit 100% your needs... at the same time, it will bring confidence to the fact that this community can self-regulate and protect its users interests, however varied they are and will allow you a clear path that can be repeated in the future.

In fact, I would venture to suggest that using a review-then-commit model might be much better suited for this project, considering the variety of interests surrounding it and the different in skillsets in terms of programming and backgrounds in production-quality software engineering.

All the above will sound painfully convoluted, I'm fully aware of that, but I don't see an easier way to resolve the current impasse in ways that help everybody involved.


    On 2/10/2012 3:33 AM, Stefano Mazzocchi wrote:

        Allow me to add my 2c to this discussion, mostly out of personal
        experience with having started, mentored and transferred
        ownership and
        control of several open source projects, some of which highly
        successful and most of which still in existence to this day.

        First, let me say that I see value in both sides of the
        argument: this
        proposed release is indeed a fork (and that is bad) but it's also
        injecting new vitality into the project (and that is good).

        One of the metrics I've used in the past to evaluate the health of
        open source communities is their abilities to survive their
        original
        authors/promoters leaving. DavidH has beent he main
        contributor for
        Exhibit (and various other simile widgets like timeline) and his
        participation is very much reduced. I had a much smaller role in
        development but a bigger one in project/community management,
        and my
        participation is similarly reduced.

        The principal reason why communities implode after the original
        authors leave is what I normally think of as "thermal death":
        without
        a converging force, entropy kicks in and when it passes a certain
        threshold, the project dilutes its social capital and fails to
        convert
        enough users into development contributions. The process is too
        diluted to sustain itself and it decays.

        My understanding of Ryan's strong reaction is a resonation to that
        perception: David actions are in good faith but represent a clear
        signal of entropy increase.... and show a path of entropy
        increase and
        dilution of cohesion and social capital.

        The plan to split the release in patches that fix existing broken
        behaviors from new functionality is wise and a good step
        forward, but
        the problems Ryan outlines are real and should be taken very
        seriously: without an established and meritocratic process for
        vetting
        contributions and granting ownership to vested parties, there
        is no
        way this project will survive thermal death.

        Before you think "governance rules" and drafting committees
        and asking
        for a grants to foundations to fund various get-togethers
        around the
        country to make it happen, let me just save you all that
        problem and
        propose you a simple one that would work:

        1) use a distributed version control system for contributions
        where
        anybody can push their own tree, and the main line pulls from
        what the
        stakeholders consider appropriate (by simple email voting, lazy
        consensus and majority ruling, no veto power).

        2) stakeholders can ask new stakeholders to be granted that
        status by
        nomination and majority ruling

        So, if the majority of stakeholders believes that logging
        every action
        in every page that embeds exhibit to an MIT server is a worthwhile
        feature to have, it will be pulled into the main-line and released
        officially... if not, it stays in a side branch, away from
        where it
        can do damage if mis-used or mis-understood.

        But at least, by virtue of a public process to propose
        additions to
        the mainline, there is the possibility for review... which is what
        David proposal lacks and that is causing Ryan's production
        engineer
        spidey sense to tingle.

        I understand why this will not sound appealing to David: why
        go from
        the ability to commit code as needed to a process that is more
        difficult, time consuming and potentially less appealing for
        external
        (and shy) contributors?

        Because if not this project will splinter in many different
        "vendor"
        branches (one as an MIT research platform, one as a Zepheira
        product,
        one as a Library of Congress publishing system and so on) and the
        Exhibit brand will be diluted, users will be confused by the
        incompatible codebases, the ability to turn their usage into
        potential
        contributions will be drastically reduced, along with the
        potential
        for each vendor to share maintenance costs with one another.

        As a result, the ability to promote Exhibit as a funding
        substrate,
        software product or publishing system respectively will
        considerably
        degrade if unity is not promoted and maintained as a core value.

        This is why, if I had to pick a side, I would side with Ryan and
        focusing on increasing sustainability instead of increasing
        momentum:
        mostly because a valuable and healthy/sustainable project will
        find a
        way to increase its momentum, while a project that increases
        momentum
        by splintering to shed inertia will have diluted its social
        capital
        with that action, potentially so much that it could go below the
        threshold that makes the project appealing and find itself slowing
        down its momentum irreversibly.




--
Stefano.


--
You received this message because you are subscribed to the Google Groups "SIMILE 
Widgets" group.
To post to this group, send email to simile-widgets@googlegroups.com.
To unsubscribe from this group, send email to 
simile-widgets+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/simile-widgets?hl=en.

Reply via email to