Drupal's project lead, Dries Buytaert, earlier this month outlined the criteria for a beta release of the next version of the open source CMS: Drupal 8. D8 hit alpha in mid-2013.
Version 8 of Drupal incorporates dramatic changes for many of aspects the CMS, with improvements ranging from integrated WYSIWYG content creation and in-line editing, to support for responsive design 'out of the box' and multi-language support.
"I would love to see Drupal 8 in the middle of next year," Buytaert told Computerworld Australia.
"We've been saying 'it's ready when it's ready'," he added. "So what that means for us is when there are no critical bugs left. I track the number of incoming critical bugs versus the number of outgoing critical bugs. Basically how many new critical bugs are reported versus how many we fixed — and the number's pretty steady, meaning we do a good job fixing them but there's still some bugs coming in as people download the alphas and try things.
"They try to upgrade a module, for example. And sometimes it's not just bugs but also when people try to implement against one of the new APIs. Sometimes they'll say 'What the hell is this?' or 'It could be made easier this way.'"
Buytaert said that his definition of 'critical bug' is a fairly expansive one. In addition to streamlining and simplifying content creation, site building and site administration, Drupal 8 has focussed heavily on making life easier for developers.
Acquia won't rush IPO: Dries
Destination in sight for Flight Centre's Drupal journey
Victoria Legal aid taps Drupal for website redesign
Drupal 8: Re-architecting Drupal
Open source in the era of digital marketing
Service NSW delivers online presence with open source
"These things — sort of developer experience improvements as we call them, usability for developers — these things can be considered critical bugs because we want to build a platform that wins the hearts and minds of developers," Buytaert said.
"A critical bug doesn't mean [Drupal] just completely doesn't work," Buytaert added. "In fact, it works pretty well. We run tens of thousands of tests against Drupal 8 many times a day, continuously, on a cluster of hardware and all the tests pass. So the stability of Drupal 8 alpha is actually pretty high, but we're still doing polish on the APIs and the user interfaces to make it a very high quality product.
"It's hard to say how long we want to do that for; to be honest that's way it's a little hard to predict when Drupal 8 will be ready."
Version 8 has involved a massive re-architecture of Drupal's internals, including drawing on other open source projects, notably the Symfony2 framework. One of the reasons for the radical overhaul of Drupal's design is so that D8 can make more use of object orientation and modern design patterns.
"We've brought Drupal more in line with modern projects," Buytaert said. This means work needs to be done to ensure that developers who are used to previous version of Drupal have help adjusting to D8.
"It's going to be a really great release, but there are a lot of changes and some people will have to relearn Drupal," Buytaert said.
"It's not the Drupal that they used to know, so that's a challenge. A lot of people absolutely love that and we have a lot of validation around 'Yep we're doing the right thing for Drupal'. It's going to attract many more people to Drupal and we've already started to see that.
"But then there's also a group of people that find it difficult to come along and right now that's not a surprise because we haven't really done much to bring them along."
"I think almost all people are excited by Drupal 8," Buytaert said. "But then when they look at it, it's a little like 'Whoa there's a lot of things have changed here' and it takes them a little bit of time to come along.
"I think we're in good shape. I feel confident in what we're doing with Drupal 8 and I have no doubt it will be an awesome release and will take Drupal to the next level in terms of adoption...
"It's a necessary change. We kind of have to re-invent ourselves once in a while; I think every technology goes through that."
Semantic versioning, LTS releases
Buytaert said that two of the changes to Drupal development being considered at the moment are a shift to semantic versioning and an Ubuntu-style system of "long-term supported releases".
"Nothing is decided yet but I have put out a proposal to move to semantic versioning and that seems to be well received," Buytaert said. "We're still working through details, so again it's not final, but I feel pretty good about it."
"We want to create an environment where we can do more frequent releases; not just more frequent releases, but more frequent releases that bring innovation to Drupal. So smaller interim releases that add new features and more functionality. And we want to do that in a way that doesn't break backwards compatibility."
"One of the things people talk about is not breaking backwards compatibility within a version of Drupal," Buytaert said. "And then Drupal 7 and Drupal 8 are two, three years apart, which is a long time for people that want to contribute to Drupal. Imagine if you're a core developer: You get something in core and now you need to wait two years before you can actually use it in production. That's not a fun place to be for a core developer."
A shift to a time-based release model would involve releasing a new minor version of Drupal every six months or so. "That brings a little bit more predictability, which a lot of users want as well so they can start planning better," Buytaert said. Time-based releases would be accompanied by the introduction of long-term supported releases: Versions of Drupal that would be supported for five years or longer.
"There are a lot of organisations out there that don't necessarily have the resources to upgrade every year or every two years or even every three years. We see that today: There's people on Drupal 6 [who] don't want to upgrade to 7 because it's just not in their budgets or they don't have the internal resources to do it. So they want to skip a major version: They want to go from 6 to 8, and frankly that's perfectly fine.
"There's nothing wrong with that, so we're kind of formalising that a little more by providing long-term supported releases that will allow organisation to skip a major version. People on 7, maybe they don't want to upgrade to 8; maybe they want to skip 8 and go to 9."
The semantic versioning shift is under consideration at the moment because it will affect the way Drupal is packaged, Buytaert said, but other changes to the development process won't be under consideration until the post-mortem after Drupal 8 ships.
"Chances are we'll make a bunch of changes to the way we develop 9, but right now I want people to be focussed on finishing Drupal 8, not on figuring out what to change for Drupal 9," he said.
Contact Rohan Pearce at rohan_pearce at idg.com.au or follow him on Twitter: @rohan_p