While there has been lots of discussion about aspects of the following,
there really hasn't been any dissent about the core vision and other ideas
presented below.  Given that, I propose that we massage this into a public,
web-facing statement, and put it on the website somewhere.  I can start
working on that next week, if nobody beats me to it.

-Hyrum


On Fri, Apr 2, 2010 at 4:28 PM, C. Michael Pilato <cmpil...@collab.net>wrote:

> Last week, five of Subversion's developers -- myself, Hyrum Wright (who
> helped me author this lengthy mail), Greg Stein, Stefan Sperling, and Karl
> Fogel ("we", henceforth) -- met in New York City to evaluate Subversion's
> current trajectory as a project and to jointly develop suggestions for any
> course correction deemed necessary.  The unfortunate impetus for the
> meeting
> was feedback from representatives of some very large installations of
> Subversion that, from where they sat, the Subversion project was
> stagnating.
>  This is a somewhat fair assertion.  It's not that the community is or has
> ever been in danger of doing nothing.  But even when we march in step
> towards a goal, we don't do a good job of communicating outwardly about
> that
> fact, leading to the appearance of inactivity.  And lately, our ongoing
> efforts have been less like a team of folks working in concert towards a
> common vision, and more like the individual piddlings common to mature open
> source software.
>
> Make no mistake:  Subversion is mature open source software.  It works well
> for open source projects and -- in one of the biggest software coups of the
> last decade -- we've found that it's also good enough to supplant other
> well-established version control systems, open-source or otherwise, inside
> the highly structured walls of the enterprise.  Unfortunately, "good
> enough"
> still leaves the enterprise user base frustrated at the most inopportune
> times (like, say, when managing branches near releases).  And if you judge
> success by mindshare, it's now clear the DVCS tools have rendered our "good
> enough" somewhat obsolete when it comes to serving many open source
> projects, even.
>
> VISION
>
> Subversion has no future as a DVCS tool.  Let's just get that out there.
>  At
> least two very successful such tools exist already, and to squeeze another
> horse into that race would be a poor investment of energy and talent.
> What's more, huge classes of users remain categorically opposed to the very
> tenets on which the DVCS systems are based.  They need centralization.
>  They
> need control.  They need meaningful path-based authorization.  They need
> simplicity.  In short, they desperately need Subversion.  It's this class
> of
> user -- the corporate developer -- that stands to benefit hugely from what
> Subversion brings to the party.  And it's that class of user which we
> believe Subversion should cater to, ideally without ostracizing the open
> source volunteers who remain our largest source of development investment.
>
> Corporate developers come in all shapes and sizes, from self-administering
> 10-person teams to geographically-distributed organizations of thousands of
> developers on hundreds of teams serviced by dedicated IT departments.
> Subversion can't be all things to all people, but it can be a well-defined
> subset of things to most people.  It shouldn't sacrifice its trademark
> simplicity when growing the features most likely to be used in large-scale
> deployments; it shouldn't optimize for the large enterprise in a way that
> will alienate the long tail composed of much smaller deployments.  By
> defining the subset of things Subversion is and those it is not, we
> recognize our own boundaries and prevent years of wandering through the
> proverbial wilderness of feature creep.
>
> Someone wiser than I once said, "Where there is no vision, the people
> perish."  So recognizing the benefits that Subversion already offers, and
> projecting a bit into the future what we'd like to see Subversion become,
> we
> offer the following vision statement for your review:
>
>   Subversion exists to be universally recognized and adopted as an
>   open-source, centralized version control system characterized by its
>   reliability as a safe haven for valuable data; the simplicity of its
>   model and usage; and its ability to support the needs of a wide variety
>   of users and projects, from individuals to large-scale enterprise
>   operations.
>
> A shorter, business-card-sized motto (offered as a replacement to the
> obsolete "A compelling replacement for CVS") might be:  "Enterprise-class
> centralized version control for the masses".
>
> ROADMAP
>
> With that vision in mind, we identified a number of high-value improvements
> which Subversion should gain in coming releases.  Then we took a casual
> pass
> at assigning some technical "plumbing" dependencies for each of these.
> Here's what we came up with, in the form "FEATURE: [DEPENDENCY ...]", where
> "FS-NG" = major FS backend overhaul, "WC-NG" = WC-NG, and "Ev2" =
> svn_editor_t:
>
>    * Obliterate:  FS-NG
>    * Shelve/Checkpoint:  WC-NG
>    * Repository-dictated Configuration:  WC-NG (?)
>    * Rename Tracking:  WC-NG, Ev2, FS-NG (?)
>    * Improved Merging:  WC-NG
>    * Improved Tree Conflict Handling:  WC-NG, Ev2, Rename Tracking
>    * Enterprise Authentication Mechanisms:
>    * Forward History Searching:  FS-NG (?)
>    * Log Message Templates:  Repository-dictated Configuration
>
> By examining this dependency chain, factoring in the development momentum
> which will exist around WC-NG, and admitting that some of the major
> plumbing
> overhauls not currently underway may prove to be just as costly as the
> WC-NG
> work (if not more so), we believe that the following feature roadmap is one
> which will serve Subversion users well:
>
>   1.7: WC-NG; HTTPv2; 'svn patch'; typical slew of various bug fixes
>
>   1.8: repository-dictated configuration; tree conflicts improvements;
>        WC-NG-enabled stuff (rename tracking, compressed pristines,
>        shelving/checkpointing, ...)
>
>   1.9: Editor v2 (for server->client rename handling improvements)
>
>   [...]
>
>   2.0: FS-NG (ideally a parallelized task), with some (to-be-identified)
>        FS-NG enabled features.
>
> That last item is likely to be contentious, so it bears explaining.  We
> believe that our current two filesystem offerings are stifling innovation.
> On the one hand we have the BDB backend which is a breeze to develop for
> but
> is only occasional used; on the other is the far-more-popular FSFS backend
> whose fundamental principles so constrain the system as to destroy much
> hope
> of serious design overhaul; and in the middle lies the feature parity
> requirement we've been living under thus far which binds Subversion to the
> union of the two backends' weaknesses.  We confidently assert that to break
> system-wide compatibility with a so-called 2.0 release will be Subversion's
> great overall detriment, both from the perspective of efficient use of
> development energy and in user adoption.  So we propose that an
> as-yet-fictional Subversion 2.0 be allowed to break compatibility with the
> 1.x line only in ways which can be mitigated using the RA layer as a
> compatibility shim.  Additionally, we believe that merely releasing a 2.0
> with a new FS backend but without new user-visible features enabled by that
> overhaul will be ill-received.
>
> COMMUNITY
>
> We also discussed matters of communication and community.  Subversion has
> historically had a very tight-knit community of developers, and we've
> provided a resource for communicating with users through the various
> mailing
> lists.  With the increase in corporate involvement, and the changing roles
> (and employers!) of committers, the Subversion ecosystem can at times seems
> a bit fractured.  To an enterprise manager responsible for thousands of
> users, and millions of dollars of investment, and billions of bytes of
> data,
> this fracturing appears as a liability when considering an investment in
> Subversion.  Most corporations understand the open source nature of
> Subversion's development method (indeed, this very thing has driven
> Subversion adoption), but they still want a unified face when it comes to
> communication, planning, and project feedback.
>
> One proposed solution is a Subversion "planet", to be hosted at a
> re-purposed subversion.org.  The planet would aggregate feeds from
> individual contributors, as well as the various corporate entities
> interested in Subversion development.  While various commercial interests
> (CollabNet, WANdisco, elego, etc.) may compete in some areas, they are all
> committed to improving Subversion as a whole.  Enterprise users need to see
> this unity across Subversion's corporate sponsors, and a communication
> stream which interleaves these corporate voices works toward that end.
>
> Whatever the solution, we need a defined plan which we then communicate to
> the end users and customers who are deploying Subversion installations.
>
> But communication alone isn't enough.  We need to find ways to grow our
> developer community itself.  Attendance at the recent Subversion
> Corporation
> Annual Members Meeting was low (by design and recommendation, of course),
> but a startling realization was made there.  When the agenda item for
> voting
> new full committers into membership was on the table, there were no
> candidates.  Think about that:  no new full committers for Subversion in
> the
> past year.  This is a bad thing.  We need to find a way to embrace and
> empower would-be Subversion contributors.  Telling them to troll through
> the
> issue tracker looking for bite-sized issues is not the way to do that -- it
> communicates "we can't be bothered to mentor you".  When somebody wants to
> start making contributions, our community must recognize the value of that
> contributor and mentor him or her toward full committership, for the good
> of
> that contributor and of the community.  Further, our public roadmap needs
> to
> highlight the items that we really wish we could be working on but lack the
> manpower to handle.  This would provide those looking for ways to
> accelerate
> Subversion's roadmap with some cues for doing that in harmony with the Big
> Picture.
>
> SUMMARY
>
> I've covered a lot of ground here, but decisions in this community have
> always been and will be made on this mailing list, and they deserve to be
> made with as much information as possible.  You now know where a small
> contingent of developers stand on these issues.  I'd like to publicize on
> our project website a *community-endorsed* vision and roadmap ASAP, and
> then
> get to the business of moving Subversion forward along those lines.
>
> So what say you?
>
> -- C-Mike, for the NYC conference attendees
>
> --
> C. Michael Pilato <cmpil...@collab.net>
> CollabNet   <>   www.collab.net   <>   Distributed Development On Demand
>
>

Reply via email to