Behind the Screens with Nicolas Grekas

Drupal relies on Symfony, and Symfony relies on Nicolas Grekas. Nicolas takes us behind the scenes of the project, tells us how Drupal and Symfony work together, and explains why he loves DrupalCon.

Transcript

Chris:

On this episode, we're going behind the screens with Nicolas Grekas. Nicolas, you're a Core team member on the Symfony Project so give us a little introduction and tell us what you do with Symfony.

Nicolas:

Hello, so I'm doing pull requests on Symfony. I'm lucky to work for Fabien Potencier, with Fabien, at SensioLabs so now at Symfony. So basically, I try to improve the code base and the framework and the components. I try also to mentor new, you know, pull request authors and make Symfony move forward.

Chris:

So what sorts of things are you working on within Symfony Core now?

Nicolas:

We don't have any roadmap or plan so I'm just doing pull requests from ideas that I gather from by listening to what people want, what people submit. So right now, we are working quite hard on polishing the Symfony 4 experience, which ... so we release Symfony 4 a few month ago and it's working really well. I think we have some traction in the community and we are very, very careful about finding all the root ages and making all error messages perfect so that people can just act when they see the message. That kind of things, not big feature but you know, the kind of feature that makes the experience great and it takes a lot of time to do that.

Chris:

So we introduced Drupal 8 with Symfony replacing a lot of what we had built in Drupal Core from our own proprietary code. So have you worked with the code in Drupal 8 or have you been working with the Drupal 8 Team at all? How has that relationship been going for you guys?

Nicolas:

So I wasn't in the Symfony and Drupal world after the decision was made but still the Symfony and the Drupal Core Team are talking together and the lesser thing I'm thinking about is the deprecation policy. So this is something that Dries announced maybe one year ago and this follows a meeting, we met with the Core Team, both Core Teams, because in Symfony we are destroying deprecation policy, which makes the success, I think, of Symfony and will allow us to keep innovating in the long run. I think Drupal understood that and now is doing the same. So yeah, we are sharing that. The good thing in that is that there is technical side effect to, you know, this deprecation policy. I'm thinking about, you know, Alex Pott, which is Core Team member of Drupal, I think. We work quite often with him on the deprecation framework, so he contributed pull request to Symfony because of things Drupal needs.

Chris:

So how much has Symfony grown or been influenced by the work done with Drupal 8? Have you been working like each gaining from the other in some respects?

Nicolas:

Yes and no. I'm not sure we follow Drupal in any way because Drupal took Symfony components and built their own thing on top of that. So, yes and no. Yeah, I cannot tell on the growth side. We are doing trainings here in DrupalCon since a few years and people are very passionate about learning and doing things with Symfony, now Drupal 8 so it's an opportunity for Symfony of course. And of course, a lot of Symfony developers are just doing enterprise application without Drupal, so yeah ... But I'm pretty sure the permanent conversation is great between developers of all communities; it's a great thing.

Chris:

Yeah, absolutely. So do you know if Symfony is used in any other major frameworks besides Drupal?

Nicolas:

I know that Laravel is using a few Symfony components. TYPO3, I've heard about them using some Symfony components, so yes, there's some major firm ... PhpBB also is using that. Yeah a few others, I don't have the list but, yeah ...

Chris:

So there's a lot of different CMS frameworks that can all leverage sort of the same thing, you guys had that underlying structure then.

Nicolas:

Yes, yes.

Chris:

You work with Fabien in Paris but you said earlier that there are team members all over the world, it's distributed, everybody who's helping with Symfony. So how do you manage that? Are they all submitting pull requests to Core that you are reviewing or how do you work with so many different people?

Nicolas:

Yes, we organize everything around this GitHub repository so github.com/symfony/symfony. All components are in one big repository so we work on all of them together and then people can focus on the component they know best. So yeah, we have 200 pull requests open at the same time usually.

Chris:

Wow.

Nicolas:

It's typical number and we close several of them per day, every day of the year. And we have this Core Team, which is 15 people. They try to review things and to add processes to the review and be sure that, you know, everything is correct as far as policy is concerned. That's how we deliver that, yeah ... We have also a second circle of people that are very active on the repository and trying the pull requests, checking them out and trying just to see if it works actually. So that's amazing.

Chris:

That's excellent. It sounds like you have a very good ecosystem of people and core contributors who are helping to keep everything together.

Nicolas:

Yeah, yeah, exactly.

Chris:

How often does Symfony release a new major version? Is there a schedule for it or-

Nicolas:

Yes. So that's another point where I think Drupal took inspiration kind of from Symfony because it's been ... we are releasing every new minor version which means no features, we are releasing features every six month.

Chris:

Mm-hmm (affirmative), okay, yeah. Same as Drupal then.

Nicolas:

Yeah, since many years actually. And we are also releasing major versions every two years, so ... And so, a major version is a version that has less features than the previous one because we've removed all the deprecated ones. This is the second time we release this new major version with this process so it's kind of new. It's not like we are doing this since ages but it's working very well, it's working very good, yeah.

Chris:

Now you said this is ... or Symfony has been doing presentations and trainings-

Nicolas:

Yup.

Chris:

... here at DrupalCon for a few years. Is this your first DrupalCon or have you been here to a DrupalCon before?

Nicolas:

No, I've been to New Orleans for the first time, then Baltimore and I've been also to the European side of the DrupalCon, so in Dublin and in Vienna.

Chris:

How has your experience been with those DrupalCons?

Nicolas:

It's amazing, it's really amazing. It's huge and people have so wide experiences and jobs so it's just amazing. And skills also because I talked with very high skilled developers doing hardcore things in Drupal and have teached namespaces to other people, so basic stuff that need to be taught, so yeah ...

Chris:

That's very exciting.

Nicolas:

Yeah, it is.

Chris:

If you have one piece of advice for somebody who's looking at Symfony as an option either for their own project or they'd like to learn more about how it works in Drupal or maybe a different CMS. What's one piece of advice you could share with somebody who's interested in learning more about Symfony?

Nicolas:

So learning more about Symfony is, I think, just reading the documentation. We have an amazing documentation team and I think they're getting started and they try to explain everything with passion and with, you know, yeah clear explanation. Then I would encourage people to try Symfony 4 and Symfony Flex so this is new way to use Symfony and I think new is not ... it's a small world, for us, it means that maybe people might have some preconceived ideas about what it is to develop with Symfony and now it's totally different so just give it a try.

Chris:

Excellent, that's great advice. So I always like to flip this around then. If you woke up tomorrow and the internet was gone, what would you do? What would you do with your time?

Nicolas:

So I don't know exactly. I know that I like being involved with people so some kind of social job, yeah, which is the aspect that I like also when doing web things because the web is social and that's, yeah ...

Chris:

Think of it this way, what do you want to be when you grow up? Let's say you don't have to worry about money. What are your passions on the side?

Nicolas:

That's very difficult question, I don't know.

Chris:

That's why I ask them, like to get people to think.

Nicolas:

Yeah. I don't know, I grew up with my environment and it's part of me so I'm not sure, I cannot easily answer this question.

Chris:

Fair enough. Alright, is there anything you're hoping to get out of DrupalCon yourself while you're here other than just teaching people about Symfony?

Nicolas:

I'm meeting people.

Chris:

Just the meeting people-

Nicolas:

Yeah.

Chris:

... and sharing.

Nicolas:

Just meeting people. We had the PHP meetup so the Nashville PHP organized this meetup yesterday evening and so, we had people there that are not at DrupalCon because they cannot afford or maybe they had some job things to do and still meeting them was so great. They were so interested and I was happy to meet them.

Chris:

That's fantastic, that's great. Well, Nicolas, thank you for taking a few minutes. This was really wonderful.