SilverStripe 3.0 Planning
Introduction
This page describes the development process for SilverStripe 3.0, which is a shared effort between developers at SilverStripe Ltd. and the wider community.
Internally, SilverStripe Ltd. runs this release as an agile project, with Sibylle Schwarz and Alex Brewer as the project managers. We strive to make this process as transparent as possible, which means that all technical work items will be logged as tickets on open.silverstripe.org.
Roadmap
This section serves as a high level roadmap for SilverStripe? 3, with a target audience of anybody interested in the product lifecycle.
The public roadmap planning phase was kicked off at the Wellington SilverStripe? meetup on 16th of Februar 2011 ( presentation, video).
Note: The roadmap is subject to change, and depends on your contributions'. Find out how you can contribute
Please refer to our detailed planning spreadsheet for prioritization, dependencies and likelyhood of features getting into SilverStripe? 3.0.
- Flexible ORM: Expressive object queries, less SQL
- Separate Sapphire from CMS: Allowing applications without a page tree, But: Framework includes management interfaces
- jQuery UI: CMS components that web developers are familiar with., jQuery.entwine to hold everything together
- CMS UI Tweaks: Incremental improvements, based on real customer feedback, Less central role for page tree in CMS, No inline editing (yet)
- Performance: Startup time, efficient querying
- Data Integrity: Help the database help you: Foreign Keys, Constraints
- Module Management: Metadata, dependencies, tools, Define the baseline, no web interface (yet)
- Versioned Assets: Documents and images will have a workflow closer to pages.
- Data Integrity: Help the database help you: Foreign Keys, Constraints
- Configuration: Less statics, more dependency injection., Still performed by developers in code.
- Flexible Templating: Finally: More than two arguments to your <% if %> block!
- Versioned Assets: Documents and images will have a workflow closer to pages.
- Data Grid: Make ComplexTableField? et al less ... complex!
- Social: Integration of third-party data sources
Contributing
As with any previous release, we rely on the community to contribute in various ways:
- Collaborating on architecture proposals (e.g. a new ORM layer) and provide constructive feedback on them
- Implement and test new features
- Help to stabilize the release by filing and fixing bugs
- Review and update documentation as new features evolve
More details on how to contribute are available on doc.silverstripe.org.
To get started, please look through existing tickets (or create new ones). For larger features, please post your thoughts on the developer mailinglist first. The mailinglist will also have lots of discussion on proposed APIs that need a lot of work.
Communication
Our primary channel for any announcements and core-level discussions will be the developer mailinglist. Everybody is welcome to join in there!
Process
We have two means to track our goals over time:
- Release milestone (e.g. "3.0.0 alpha1"): Highlevel target, tickets are added as an iteration is planned
- iteration Timeboxed work items into two weeks, mostly an internal measure for SilverStripe? Ltd.
The Trac installation on open.silverstripe.org will track our work. In order to plan and collaborate effectively, there are a couple of guidelines:
- Milestones and iterations on tickets are only set by core team members. Setting a milestone is a commitment to doing the work, not a wishlist bucket :)
- "High severity" status is used to form a loose backlog of milestone candidates (see reports below)
- Each iteration is a keyword (as we're already using milestones for a more highlevel view). Example: "iteration0". Its easy for tickets to get forgotten about without this keyword, so please be diligent about adding once a ticket makes it into an iteration.
- Everybody is welcome to "vote" on tickets through the comments system
Available reports
- Tickets in 3.0.0 alpha1 milestone (by owner, only open tickets RSS)
- Open tickets in backlog (candidates with "high severity", no guarantee of inclusion, RSS)
- Tickets in Iteration 2 (by owner, open only, RSS)
- My tickets in Iteration 2 (RSS)
