The following is a preliminary timetable for the next few upcoming releases. Dates, feature deliverables, and even version numbers found in this list are all subject to change (and become increasingly more speculative the further out we attempt to project). Fortunately, the same dynamics that allow features to fall out of releases or for release dates to slip also allow for feature and release acceleration. That's the nature of open-source, community-driven software projects (and we think it's a great thing). So if you don't like what you see here, do something about it: your contributions are always welcome!
|Date||Task||Deliverables / Notes|
|August 2015 (likely)||Release 1.9.0||...|
|2017? (tentative)||Release 1.10.0||...|
We try to roll releases on Wednesdays. Like most of the other information on this page, the day we roll isn't a hard-and-fast rule, but it is something that has been useful in the past. Rolling mid-week gives us enough time for the release preparation process in the couple of days prior to the release, and some time before the weekend for validation of the release tarballs. The release is finalized and announced as soon after the completion of the validation process as possible. See the documentation of our release process for more information.
Subversion uses a compromise between time-driven and feature-driven release planning. We schedule the next release for an approximate date (very approximate), and make sure it contains one or more new features or other significant differentiators, but we don't say exactly what those new features will be. This is because we're always working on several things at once, and we want to give each new feature time to mature. Especially given the decentralized nature of open-source development, we're wary of forcing technical discussions to premature consensus. At the same time, it's good for the project to have regular releases, so we try to keep to a schedule and to have something ready to roll out when the release date comes along.
In this context, "release" means an increment of the minor release number, which is the middle number in our three-component system. Thus, 1.2.0, 1.3.0, and 1.4.0 are successive minor releases in the "1.x" line, whereas 1.1.1, 1.1.2, and 1.1.3 are successive patch (bugfix) releases in the "1.1.x" line. We don't schedule patch releases far in advance, we just put them out when we feel enough bugfixes have accumulated to warrant it. Major new releases, such as Subversion 2.0, will probably be done much like the minor releases, just with more planning around the exact features. For more information about Subversion's release numbering and compatibility policies, see the section entitled "Release numbering, compatibility, and deprecation" in the Subversion Community Guide.
The following is a list of "most wanted" features/enhancements we've identified as important and achievable, in no particular order, along with the chain of dependendies we believe exist and stand in the way of our delivering these items in Subversion. This is not an exhaustive list! It merely represents some of the "the big ones" — big in impact, and probably big in development cost.
Fill in the details here!
|Feature / Enhancement||Dependencies||Target Release||Issue(s)|
|Rename Tracking||WC-NG, Ev2, FS-NG?||1.10?||898, 3630|
|Improved Tree Conflict Handling||WC-NG, Ev2, Rename Tracking||1.9 (partial), 1.10?|
|Control of Strictness for Conflicts||1.10?||4405|
|New Delta Editor (Ev2)||1.10?||3628|
|Enterprise Authentication Mechanisms||1.10?||3629|
|Log Message Templates||Repository-dictated Configuration||1.10?||1973|
|Flexible Repository Storage (FS-NG)||2.0?|
|Forward History Searching||FS-NG?||2.0?||3627|
The following table contains items currently targetted for the subsequent major release, along with their completion status. It is meant mainly for developers, but can help answer the oft-asked question "how is the next release coming along?" If you are interested in helping speed up the next release, consider tackling one of the incomplete items below.
This table is nonexhaustive — it neither contains nor attempts to contain all the features planned for this release.
|Specific stuff aimed at 1.10|
|FSX backend||In progress||Status in 1.10 will still be "experimental".|
|Specific stuff aimed at this release|
|Prospective blame||Completed||Allows blame to show the *next* revision when each line in file@N was changed, looking forwards *after* rN. TODO: Backport recent fixes (i.e. make it do something sensible at all) to 1.9.0; describe in release notes. (Codename: 'kidney blame'.)|
|Generic stuff we do for every release|
|Test review||Completed||Determine which
|API review||Completed||Links to be provided: api-errata/1.9/, Svn19ApiReview|
|Remove temporary APIs||Completed||Review APIs added in 1.9 (including APIs internal to libsvn_wc), and determine which ones should stay, and which should be removed.|
|Review private APIs||Completed||Review private APIs (including APIs used by subversion/svn*/), and determine which of them should be promoted to public.|
|API performance analysis||Completed||Profile the new APIs to determine which can/should be optimized.|
|Issue triage||Completed||Review open issues for the 1.9.0, 1.9-consider, and 1.8.x, milestones.|
|Update changelog||Completed||Need to document in CHANGES the 1.8.x→1.9.x changes. (Note: this is not a blocker for the 1.9.x branch.)|
|Compose release notes||In progress||Subversion 1.9 Release Notes (Note: this is not a blocker for the 1.9.x branch.)|
|Items originally planned for, but now deferred from, this release|
|Editor V2||Deferred||svn_editor.h API, notes/editor-v2.txt. This work is in a shippable state, but has failed to get widespread developer review. It remains private for now with an eye on (hopefully) delivering it as part of our 1.9 public API.|
|Improved handling of server-side moves/renames||Deferred||Issue 3633|
|Commit shelving / checkpointing||Deferred||Issue 3625 and Issue 3626|
|Master passphrase and encrypted auth cache support||Deferred||Work ongoing on feature branch. See the wiki page for design notes.|