You may be surprised that I agree with almost everything you say. However, there is one sticky fact that drove me onto the path of an exhibit 2.3 release: Exhibit 2 is a full-featured system in active use at a couple thousand sites, while Exhibit 3, due to the limits of what we received funding to accomplish, is an incomplete upgrade that does not yet meet the needs of the current E2 users.

As you observe, my proposed 2.3 is a mix of a maintenance and a "research" release. In the maintenance category we have bugfixes and the elimination of the painter service dependence in the map view. In the research category we have logging, embedded data, new input formats, and data editing.

The rationale for doing maintenance on E2 is that, as observed above, E3 is not yet at a point where current E2 users can transition to it. Because painter has been a longstanding problem point for E2 users, I judged it worth improving the quality of their current tool.

In a perfect world, we would have first completed development of E3 to match E2 capabilities, then added these changes to E3. However, none of us have the manpower for that, so these needed changes would not have happened without E2. I judged that the need to have these changes available *now* trumped the value of shifting all effort to E3.

As for the research component of the release, most of these changes were again driven by current users. The data editing extension was actually created by the Ensemble Project at Liverpool University because they need it for their application of Exhibit in e-learning (and E3 doesn't yet have what they need). The XML importer was also a request of the Ensemble project. Embedded data was a specific response for users who had problems getting their content indexed when the content was on a linked page, and also ties to the editable data work of the ensemble project. Logging is indeed something we inserted for our own research purposes, but it's literally 10 lines of code, not worth attention.

In a sense, the existence of E3 reduced my concern about pushing experimental changes to E2. We know that eventually E3 will overtake E2 in functionality, and at that point E2 will be decommissioned. E2 therefore becomes a perfect prototyping environment within which to test-drive ideas that might someday be incorporated in E3 when it reaches full functionality. Again, those ideas can't be test-driven in E3 yet, because E3 isn't complete.

To your forking objection, that we "split focus and energy" from E3, I can only observe how tiny our manpower is at MIT. All of my (as opposed to ensemble's) contributions to E2.3 represent tinkering at the edges that I was able to carve out of a small amount of "hobby time". My contribution to E3 would have been negligible in quantity (and probably negative in quality---as you say, production code is different). Essentially, 2.3 is the exhibit "research lab" you recommend at the end of your note. It isn't a fork because it hasn't taken any meaningful energy from E3.

I'm happy to continue this discussion, but so far none of the arguments you've given convince me that there is any negative value in making the small improvements we've produced available as a new 2.3 release.



On 02/02/2012 05:13 PM, Ryan Lee wrote:
This is going to be a bit long, so please bear with me.  It's important.

I am supportive of a maintenance release to Exhibit 2.2.0 (what is
currently deployed) where long standing bugs get fixed, libraries
updated, etc., for those who feel they can't make a switch to 3.0 just
yet.  But this proposed alpha changes semantics and adds features.  It
is essentially a fork release.  And forking releases sucks: parallel and
divergent lines of development get very hard to reconcile, and they
split focus and energy.

Even so, I'd be happy to take a look at a diff for between June and now
to see what fixes could be incorporated into Exhibit 3.0.  But I'm not
going to take in changes to the configuration language or other material
that almost certainly does not belong in the core of Exhibit at all.

Your involvement with Exhibit at the research level is incredibly
valuable, don't get me wrong there; I think it could be amazing to have
a constant flow into the Exhibit community of fresh ideas emanating from
your research group.  At the same time, how that's been done to date is
at direct odds with one of the cornerstones of making an open source
project successful: gatekeeping for who can get commit access to the
core trunk.

When any of your students can get in to satisfy your group's
requirements but others from the wider community need to actively
demonstrate participation and core competency to receive the same, the
overall quality of the project is rather more harmed than improved, and
the community gets unhelpful signals about how exactly they're involved.
  Code that's been generated for research is almost never the same as
code that's been tested and engineered for production, for many good
reasons - but the difference is there nonetheless.

Still, I do believe these competing interests both deserve their place
in the project, and I think they can be reconciled.  One of the reasons
we moved to GitHub was to provide a better social model for working on
Exhibit.  With GitHub, everybody is working on their own personal fork
for development, even the gatekeepers.  It becomes the gatekeepers job
to merge in any changes as submitted by contributors.  This way, anybody
can participate - subject to review.  The best contributors then
become gatekeepers themselves.  Within this model, your students get the
opportunity to both simply work on code and use it as a proving ground
for promotion to gatekeeper, if that's at all their interest.

Ideally, Exhibit 3.0 also makes it easier to write code for Exhibit
without touching its core.  I'm sure it could use some refinement with
experience, but given that that's the direction we're moving in, your
students could then write extensions to pursue their ideas, and your
group serve them up as a sort of Exhibit research lab to the community,
the best features and implementations being adopted into Exhibit over time.

This release you propose conflates what is useful in a maintenance
release with what your group's most recent research focus has been.  I
do not believe the two should be joined together in one release.

The interim between the prior release and the next shows how little of a
release process we currently have in place as a community, so I suppose
it feels like fair game to just take individual initiative.  There's a
release proposal to the community coming up soon to address just that point.

Nobody is going to force you to stop.  But please don't issue a fork
release.

On 2012-01-24 23:21 , David Karger wrote:
This is to announce an alpha release of an update to the Exhibit 2
codebase, one that I hope will eventually become Exhibit version 2.3. As
Exhibit 3 matures we aim to shift our developments efforts there, but
for the time being the greater maturity of E2 makes it a better testbed
for these updates. This release fixes a number of bugs and also offers
additional functionality; we'd like to see how that functionality gets
used in order to understand what is important to incorporate into E3.

These changes are all live on
http://trunk.simile-widgets.org/exhibit/api, so all you need to do to
try them is link to that API instead of api.simile-widgets.org .  Please
do so, and provide feedback on what is working and what isn't.

Major changes include:

* support for new import data formats including xml and html tables
* exhibit data can be embedded directly in html documents
* map view upgraded to use google maps v3 (gmaps key no longer required)
* map view renders icons locally (using canvas) instead of using painter
service
* a new extension supporting wysiwyg inline editing of data displayed in
any exhibit

There are also several bug fixes.  Details of these and other changes
can be found at http://people.csail.mit.edu/karger/Exhibit/alpha.html


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

Reply via email to