Behind the Screens with Kris Vanderwater

Podcast episode player
0:00 0:00

Acquia's Developer Evangelist, Kris Vanderwater, fills us in on blocks and layouts in Drupal Core, why you should be using Panelizer, and how he prefers his family on the rocks.

Episode Guests

Kris Vanderwater

Thumbnail
I’m Kris Vanderwater, Drupal Developer and Acquia’s Developer Evangelist. My job is to help address developer concerns both technical and non-technical. Feel free to reach out to me if you have questions, comments or concerns and I’ll do what I can to help.
Transcript

Transcript

Chris A:
All right, now I'm going behind the screens with Kris Vanderwater of Acquia. Chris, what have you been working on recently?
Kris V.:
I've been working on an awful lot of blocks and layouts and getting all of that stuff into Core in kind of a way that makes it really easy to use for everyone. So, if you want to do stuff along these lines today, there are an awful lot of contrib modules that care about this and have opinions about it. We're trying to build, really, a best of breed system, put it in Core, get lots of eyes on it and get a lot of momentum behind it. If we get where we want to go and things are going pretty well in this regard, I would say we'll probably replace Panelizer completely and have all that functionality in Core, and also mini-panels, so Core would ship with modules that could do all of that stuff right out of the box.
Chris A:
Wow, Panelizer and mini-panels would both become obsolete. Core would have all of that layout mechanism, or all of that underlying functionality ready to go for us?
Kris V.:
Yep, absolutely.
Chris A:
Wow. That's a big amount of work to get all of that to happen. Building sites in Drupal 7, that was I relied on, was panels in general, but then all of the ecosystem around it that came with it, so to get ... How difficult has it been trying to figure out what pieces of those need to go into Core to create that foundation?
Kris V.:
Yeah, I think that that's been a real learning process. I've spent the better part of probably the last five or six years involved in that. And not just myself, many other people too. But we've collectively, as a group, spent a lot of time figuring out what should be in Core, and we have to do it in small steps. Very early on, during the 0 cycle, there was a lot of ambition to get Panels, essentially, into Core. At least that was my ambition. And it was probably a little over ambitious, at the time. Timeframes being what they were, and just the work schedule that went with doing it.
 
We got a lot less than that actually committed during 8.0, but more people came along to that initiative. More people devoted time to it. And it kind of morphed, over time, and went to contrib, for a while, after 8.0 happened, and we took lessons learned there, and some pretty great thinking from that community of people, and brought back around here, in the last six months, and have what we feel like is a really, really great solution that should be Core worthy, and should be just part of everybody's default workflow.
Chris A:
So is this going into Drupal 8, in the next version, then, as an experimental module, or is it already there?
Kris V.:
So the ambition is to get it into 8.5, as an experimental module. We've had some really good indications, even in just the last week, that that's very likely. There are some nuanced details to that, with regard to what we want to ship with. So what we have right now allows for individual entities, fieldable entities, to be overridden with the layout. And that's great. But what we don't want to do is ship a version of Drupal where everybody overrides every node, because that's the only way they can do layout. So if we can't ship something that includes a default layout mechanism, we might end up holding off for another release of 8, until we can have that entire path of code squared away, so that people can have same defaults, and can also do individually overridden entities. And this really ... it puts the whole package together in one place. People can still lay out the entities that they want, but they can also have same defaults to fall back on, so that not every single entity is customized.
Chris A:
Yeah. That's amazing. I'm very excited to have that finally, to get up in there.
Kris V.:
Me too.
Chris A:
So how has the community been helping out with this? Have you had a lot of support behind you?
Kris V.:
Yeah. I would say, over the years, the support for it has really grown. More people have gotten more experience with what we wanted to do, and old people who were already experienced with it have found time to come along, or have had time given to them to come along and do this. So I feel like we have a really great core of people, at this point, who really know what they're doing, understand the vision, and we're all really aligned, which has made moving through the issue queue much easier than it was, say, earlier in the 8 cycle.
Chris A:
Are you still looking for people to come in and help do maybe some issue gardening, some ticket gardening in the issue queue, or where do you need help, and where could people go to participate, and help get this moved along?
Kris V.:
I think that's a really great question, and we're kind of at a interesting point where we're spinning up some new issues, and we're winding down the main issue that we're working on. So it's kind of difficult for me to say, right this second, but there's an implementation issue for a module we call Layout Builder, which will probably, at least for the time being, will be the experimental name of the module we're working towards. So if you find that, or its parent issue, that has links to the other issues that we're chasing right now.
 
And so these are things like doing block visibility a little differently than we've done it in the 8.x cycle. Doing things like handling entity fields as blocks, rather than having a custom rendering pipeline just for fields, which gives us the ability, unlike a layout world, to actually put them into different regions, because blocks go into regions, and so there's a lot of work around these things happening right now. Even this week, I'll be working on that very issue. So I think we're always looking for other people who are interested, or knowledgeable in that area, and just kind of find the issues, and take a look at them, and I'd be happy to come up with those node IDs.
Chris A:
That would be awesome. Yeah, anything you can send over, we'll put into the show notes if people want to dig in and lend a hand to get that going into the experimental module ecosystem sections, not sure what you would call that.
Kris V.:
Yeah.
Chris A:
So if you could give one piece of advice to somebody who is trying to spin up a Drupal 8 site, and wants to get something like they used in Drupal seven, as far as panels, and layouts together going, what would be the first thing to do on my Drupal 8a site?
Kris V.:
I would really encourage people to probably tend towards a Panelizer solution, today. What we're trying to get into Core has an awful lot of analogs to Panelizer. And I'd say there's a really good chance that we write an upgrade path from Panelizer to whatever we put into Core, in the long term. So it's the solution most likely to be forward ported, and supported by Core, in the long term. And it also has a lot of really great features, like providing defaults on a view mode basis, and having individual node level overrides of layout.
Chris A:
Very cool, okay. All right, so you've been working on this a lot, like you said, over the last few years. What would you do if you woke up tomorrow, and the internet was just gone? The Drupal project doesn't need work, there's no way to get online, what do you do?
Kris V.:
Well, if the internet were just completely gone, I'm not entirely sure how I would make a living. But I would probably end up growing some of my own food, and spend an awful lot of time maybe climbing some rocks, or something.
Chris A:
There you go. So kind of the backup question for that one is, what do you want to be when you grow up? Kind of think of it in that aspect.
Kris V.:
Retired. When I grow up, I want to be retired. I think picking and choosing what you want to do with your time is really great, and the Drupal community has afforded an awful lot of that to me. If it were to disappear tomorrow, I don't know what I'd do.
Chris A:
It would be sad, for sure, it's a shift. I've had some great answers like, "I would take a nap." Like, yes, that is definitely number one on the list. And then after that it's kinda like, yeah, where do you go?
Kris V.:
Yeah, well a long nap, a long nap. But yeah, I've recently ... my entire family has gotten into rock climbing, and we've just really fallen in love with this, and do it about four or five times a week right now anyway, so I'd probably just do more of that.
Chris A:
That's awesome! Wow, that is a fun family activity!
Kris V.:
It is, it is. Yeah, the kids love it. We love it. My wife and I have a really great time. My parents have started coming. So it's great.
Chris A:
Oh, fun! That is really cool. All right so I like to end all these interviews with ... actually I'm gonna throw one more question in after this, but as a separate thing.
Kris V.:
Okay.
Chris A:
I like to end the interviews with giving a little bit of thanks back. We all got here thanks to the help of somebody else, somewhere along the way. Is there anybody you would like to say thank you to, or show some gratitude towards? I know, everybody.
Kris V.:
Yeah, that's a long list. I've been doing Drupal for nearly 12 years now. But while there are a lot of people who have positively influenced my time here, there are two people who I would say probably had the most impact on my career, as it exists today. And the first is James Walker, a former Lullabot. And one of the, I would say, pillars of the community for a very long time. And very early on in my Drupal career, he took the time to actually explain to me what the heck was going on with the image module, and while that did not turn me into a coding prodigy overnight, it set me on the path to at least understanding what was going on, from a coding perspective, cause I ... you know, I went to school for art.
 
And the second person is Earl Miles, who, in a lot of ways, I owe an enormous amount of my career to, and he's made it possible for me to contribute, and help maintain CTools, and Page Manager, and Panels, and the entire layout ecosystem that I'm so heavily involved in today, was in large part because he was willing to look at the stuff I was putting in the issue queue and help push me in the right direction. So if there were two people I could just straight out thank, they would be it, no doubt.
Chris A:
Very nice. That's excellent. Yeah we tend to ... we don't hear so much from them anymore, but they really are, like you said, the pillars. They laid the foundation for what we've got going on right now.
Kris V.:
Yeah. And I mean, still get to talk to Earl, semi-regularly. So while we don't see them at community events, necessarily, they're still around, and still involved in their own way.
Chris A:
Yeah, very nice. All right. And so my last question then. And this is leading up towards Halloween. I'm not sure if we're gonna do ... like how we're gonna split between the Lullabot podcasts, but ... so leading up to Halloween, do you have any really good tech horror stories? Something that just went terribly, terribly wrong, that you would like to share? That you'd feel safe sharing.
Kris V.:
Yeah, you mean that I can share. So a lot of my job ends up being to hop in on a project that maybe something didn't go quite to plan. And so while I have a number of those stories, I'm not sure that I have one I can share, off the top of my head. We'll stick with the layout theme. When I joined Acquia, I actually joined in the marketing division, and that was a lot of fun, but for various reasons, I ended up moving over to PS, and the first big project I really helped out with in PS was ... it was an early build on the Drupal seven version of Lightning, which is Acquia's install profile for ... it kinda encapsulates a lot of our best practices of what modules we think you should be using, and what basic config you should be using.
 
But very early in its life cycle, it wasn't really ready for primetime development. And we had decided that we were gonna go ahead and use it on a project, and so yeah, trying to get revision handling of layouts in Drupal 7 is a trick, even today. So doing this nearly three years ago was quite the trick. And yeah, there was a lot of kind of rearranging of exactly how panels and workbench moderation all integrated together, or rather Panelizer and yeah, to call it a horror story might actually be a bit of an understatement. I'm not sure I can get more detailed than that, though.
Chris A:
That's a good one. It's like getting behind the scenes, like what are the people at Acquia, or what are the people up at the top really struggling with, and getting into? So it's not easy for all of us. Or it's not really easy for anybody, I would say.
Kris V.:
I would say, bringing that around full circle, a lot of the features we see going into this next Core release, on this topic, are lessons learned from events just like that. So we're handling the layout definitions within the individual overrides, as a field which means that the entity it's associated to is revisionable. We have revision history of every change you've ever made to layout, right? Which is exactly the sort of things that our customers want to see. And they want to start doing forward revisions to layout, so that they can change the layout, approve what it's gonna look like, and then hit the publish button, and have that magically show up. And while I won't claim that we're there yet, we've definitely laid the foundation to begin making that a real, legitimate possibility, directly in Core, out of the box.
Chris A:
Wow. That would be amazing. Very cool. Cool! Well thanks for taking the time, Kris, this has been great.
Kris V.:
I'm happy I could, thanks for having me.