 Remember that I also have to have a microphone in my hand at the same time Which is going to make it really fun for me to jump around a lot I'll try to do this with my uninjured hand and leave the lighter clicker in my other hand Okay, so just in case you didn't know you're in the room for fighting core fud Otherwise we otherwise known as we need a contrib champion if anyone has the musical song keyed up You might want to play it right now No one okay Someone laughed And we forgot to add the musical key Fear uncertainty and doubt Okay So you might wonder who the heck this weird person is in front of you And yes, I did in fact make that threat to Crell at triple con Austin about making a hat duel And neither of us showed up so I won by default My name is test my name is test Flynn otherwise known as socket wench. That's wench not wrench I am the module co-maintainer for flag for flag friend and for example module So speaking of example module Actually, I'm a little bit ahead of myself. I am a Drupal developer with what used to be known as one reaction now Is FFW and my favorite interpretation of that name is fruit flavored wombats Yeah, there's a lot of a lot of ones that would have to be censored if I were to actually use it, but I'm not gonna tell you what it actually is Nancy's going to be watching this video later. I'm certain This is the case you didn't know we are hiring you might want to check out our booth or right in the front into the left So just talk to with all the wonderful people here. Who wants a t-shirt? I've got a medium I think you raised your hand first If not hand it to someone who does and then if you still want a shirt come down to the booth We've got more we've got tons more to give away So who in here has heard of example module before? That's practically everybody. So now this is going to make the next three minutes of my life very boring. I Like to call it the most useful useful useless module ever because it provides real Functional examples that you should never use on a real site It provides code examples for Drupal developers so that you can actually learn new and existing API is covering a broad range of Drupal's core functionality usually it has kind of a SNL soup rule about it in other words no code no core no example in other words if it's not a core if it Doesn't cover core apis. It's not an example if it's not a code example. It's not not an example module So that's what that means It's for both new and old Drupal developers because as apis change we might need to get new Information new apis new examples to know how to use things And you can of course find this on Drupal.org So why do we even have example module? This is one of the things that I started working on example module around the Drupal 8 cycle While working on flag module and I found out that examples was lagging way behind And was having a lot of problems and a lot of struggles and I thought that that isn't right. What's going on? So I had to go and investigate this So why do we have example code? Well, if you're a new developer and you're confronting a new version of core It's really intimidating. It's this big huge monster that's going to consume you and all you you just You know, you're sitting there asking yourself where the heck do I even start and Often the only thing that we can hand people as advice is don't get eaten There's a lot of different ways of learning new a new and existing core apis The easiest and cheapest is probably source code You need the most experience to learn it because you usually have to know coding Usually you have to know some Drupal isms. You have to know where to find it But it doesn't cost anything because it's source code and it's an open source project Now if you need a little bit more direction, there's community documentation It has more pros, but it's not actually professionally curated or produced So as a result, it's not necessarily the highest quality stuff But it's also very cheap to get to After that there's educational pros. There's some things like you can buy a book or you can subscribe to a movie service like Drupal eyes dot me Educate yourself about what you can do to learn Drupal core apis and finally at the very apex is paid training It costs the most but usually there's the least amount of there You would need the least amount of experience possible to actually start there because there's a person there to guide you and to answer every question Now one thing that a lot of core developers have asked me in time is isn't core code enough? Why don't you just learn from looking at core? Well, there's a lot of good reasons why core code is a bad way to learn Drupal Source code is actually a medium. It's like any language It doesn't matter while the execution is the same like in language We want to communicate in programming code. We want to execute an application But how it's written is actually very very important. What we want to do with it is important When we actually sit down to write a piece of code, there's a number of different considerations that we might have If you're looking at a piece of code, you might want to ask yourself should I make this code fast? Should I make it easy to expand or maintain or what if should I make it easy to understand? The problem with all of these is that usually can only pick two and sometimes only pick one Learning from core code is really really confusing. It's not only confusing at seven It's even more confusing in Drupal 8 and I know because I had to do it for two years Yeah, you often have to use a debugger just to actually learn What's going on in core code? You can't just sit down and read it But that's not even the only thing Modules aren't isolated from each other. So you might be in one module going okay I just need to understand how an entity is made and suddenly you're in user module And you have no idea how you got there and then you jump to taxonomy module It's what the heck is going on and then suddenly you're you're way in like I don't know server source code and you think that it's the matrix and the walls of reality are crashing down upon you The fieldless side of interface. Thank you flag module had this problem because you had the flag function Which called the flag flag class which called called the flag flag flag flag function Which called the flag flag flag flag flag flag user function, and then it finally added something to the database I put a stop to that Core code is also confusing because it's commented. Yes, but it's commented for information not for instruction It's kind of the difference between information and knowledge Well information gives you small immediate pieces of information that you need to understand a very small piece of code It doesn't connect anything. It doesn't provide context, and that's what example code actually needs to do Example code provides context and connection or core code cannot And while doing this it also provides functional modules so you can see what happens when you change something Or when you break something so how is example module developed? It's developed a lot like a lot of other modules. It's volunteer-driven and features are requested by the community If we actually start looking at how the core how the commits work out between example module and also core We start noticing some interesting things Now we have two two data points here one is core which is in the blue and then we have examples Which is in the red examples is times 10 for obvious reasons of number of commits Example module had that many commits. I'd be really impressed Let's break this down see what really happened You'll notice that we had a spike of activity After Drupal 7 alpha 1 was released and then it kind of tapered off We get an RC and then we get a burst of activity and it tapers off We get around stable and then we discover we need additional examples like the table sort example So we add how we added a new example and a new amount of activity happened And then it just kind of hummed along and then you'll notice we start working on Drupal 8 And there's a lot of commits and Drupal 8, but you might notice something the pattern is different for examples It's not giving us a consistent one. It's kind of just thrumming along in the background If we simplify this further it looks a bit like this When we have a release we have a lot of initial work when the my one example module was first created Then we go into the Drupal 7 pre-release cycle and we have a pretty Standard expected rise and fall of activity as new stuff is added to the system We get to the post-release cycle and we actually have another rise and fall of activity and that's good That's healthy. That's what you want from a project that does examples, but then you get to Drupal 8 And you'll notice that we've got a problem We've got a long period of almost no activity and then just flips of activity going forward What we can learn from this is examples is kind of special It bootstraps a lot of contrived contrived modules It also signals to other developers that core is ready for development So What's the problem with all of this? Why am I up here? Begging people to listen to this weird idea. I have about a contrived champion and why we have so much core fud today Well, the problem is Drupal 8 kind of changed the rules We reached kind of an inflection point with Drupal 8 We were doing pretty well in the Drupal 7 cycle and then Drupal 8 happened Drupal 8's really long and lots of things changed and that had a lot of a lot of problems become really apparent during that development cycle We have a significantly longer development cycle longer than any other release of Drupal in history This is adversely affecting contrived and examples who's a forerunner for contrived development Also, the code is really really really different I like to kind of imagine this as a Generational discussion between, you know core developers the next generation and then the original series of contrived developers And you'll have the core developers saying well if you can't port your module then rewrite it But the contrived developer listens that and go and goes I can't do it captain. The core is too different I'm glad that they got a laugh My housemates tell me not to do that voice at night In Drupal 7 we had some knowledge silos But generally we had knowledge silos and the whole spread of that knowledge was kind of broad We had a lot of people who are in an example module and we had a lot of people in core and Generally there was new stuff, but it wasn't as pronounced of a problem Generally the knowledge was fairly easy to access and we understood it and we could get new contributors to work on example module while also working on core and Drupal 8 it's a lot worse Our knowledge silos are very narrow and deep compared to the Drupal 7 cycle There's so much new stuff in Drupal 8 that there's no way that contrived developers can keep up and because they're so Accurate much activity in Drupal 8 compared to Drupal 7 We can't seem to get the buy-in from core developers to assist us to do a knowledge transfer Necessary for us to write examples Furthermore because everything is changing there's a shadow of doubt that hangs over every piece of information That existing example module developers and contrib developers already know and are comfortable with Do we still have hooks? Do we still use the form API? Do we still use simple tests? Do we even know these things yet? The answer is we do But how many contrived developers actually know that and are actually comfortable knowing that and expressing that This shadow of doubt hangs over all Drupal APIs You might have a contrived developer thinking to themselves late at night while they're working on their module over a tuna fish sandwich And they're going this API is largely unchanged, but how it connects to everything has I mean Should I even be using this particular API? What if it goes away in the next release? And then the despair really sets in and you start wondering how can I make any sort of a decision here at all? And then at 3 in the morning after you've watched Star Trek 3 and you're wondering why you're still awake you ask yourself You know, maybe core doubts should do this. I mean then at least examples would keep up with core So we file an issue issue 1 5 3 sit in a 2 6 12 to move the example module project into core So why would we want to do this? Well development is strongly tied to core in a way that is not the same for other contrived modules In the perfect world as we get to every release every release cycle phase core alpha core beta stable Will actually release new code so In the core alpha cycle will actually have critical examples updated and created right before the beta Once the beta one is finished we finish all our critical examples, and we start a lot of non critical examples So things like you know entity using entities and using fields we got all of that done But then we start adding some more unusual things like okay, maybe we want to do a rest API example Once we have a stable core will finish up everything get all our non critical examples done And then after that we just want to do minor fixes This is an ideal world that we want for example module Contrib also has kind of limited visibility if you ever try to figure out how to Go and enable a module as a new developer. It's really really complicated and examples is even worse Angela web chick Byron suggest has said this about example module. It's practically impossible to find Unless if you are already in the community So if you're not in the community already you have no idea what this is or even that it exists It kind of looks like this if you're a new developer You're gonna go to Drupal.org you're going to download Drupal in this case Drupal 8 You're gonna install it on your web server because it has instructions how to do that And then you're going to go well, I want to do some development for this, but there's no examples here What do I find examples? Okay. Well, there's got to be examples somewhere. So I'm gonna go search online You find some you search online for examples you find them and download them and say okay great now I can work on examples What what's the heck what the heck is module and then you're sitting there Headdesking that poor new developer who doesn't know what this stuff is We've got to make this shorter It's way too complicated It would be wonderful if we can get to this point What you would expect with any kind of web applications and all we have to do is click enable examples and then there's happiness That's what we would like for new developers to experience Another idea is that example module can provide tests for core So our fe once suggested that example modules could be used for core tests to as mock modules So that we don't have to make as many mock modules to support core tests I mean that makes perfect sense. These things are examples. They're standard other standardized pieces of core functionality We should be able to just test them. It seems like a natural fit And it kind of works like this you have you know example modules and you have Drupal And Drupal 8 singing, you know, I got some shiny new code for you And examples is like cool. I'll test it and then sounding a bit like Seuss from Gravity Falls. It's gonna say, uh, Did I? Think there's a bug in here. Of course Drupal is saying but it's so shiny shiny new code Bugs are only also only the tip of the iceberg at the very top We have actual bugs real problems, but there's other things that we can test like developer experience like feature gaps Remember in entity API how we got through Drupal 7 and we realized we didn't have a complete entity API And we had to add a contrib module that everybody depends upon Why didn't we catch that earlier and also unexpected use weird things like what if I make this annotation completely wrong? What if I derive this class from something really really weird? What if I override this particular this particular method during the time that we're developing it so that we can actually go You know this documentation isn't particularly clear We need to make that better to understand to tell other contrib developers what to do So I make the mistake first so that no one else has to Also, it solves example module maintenance issues We have that in those knowledge silos and they're only going to get worse the more outside of Drupal technologies We bring in so should an example module live where the knowledge silos are That way it keeps up with core all the time Also example modules could help people learn core if it was actually in core So we'll have a new developer. They're gonna find a bug in examples when they're in core They're going to file a new issue on Drupal dot or maybe they'll even submit a patch They'll get that into core and then there's happiness because we've created another contributor It's easier to because all of example modules are isolated from core So we don't it makes it easier to contribute to core without having to figure out all the weird cross linking That's involved in understanding core code So all of this sounds wonderful. What why didn't we do this already? Why is example module not in core today? Well, all of this sounds great except Don't give it away Except that example module isn't really core In core examples really wouldn't be isolated as soon as we start using it in core It's going to develop cross-linking There's no way to do that unless if we apply rigorous Processes and reviews and we're probably not going to be able to pull that off question Yeah, what context do you mean isolated in in this case like because if it's a module whether it's contributor in core What would be the difference? Well, it's kind of like that what I was saying earlier if you're trying to follow How a particular module works in a core module like in the node module? It often does some weird things and has weird Generalizations and that it can produce false positives if you're trying to read that as a new developer to understand what's going on So sometimes you will get to a point where it jumps somewhere else and cut in core Which doesn't make any sense and if it was a conventional contrib module you would never see that so if there are weird little special cases and special snowflakes in almost all of the core modules Because it just kind of has to be that way at some point So basically it would just develop those bad habits Yeah, exactly it would develop those bad habits after a while Also, there's a bit of a motive and purpose mismatch Examples goal is really to support contrib devs. It's not meant to be cores test case So son actually said something about this. He said if anything lacks tests, we need better test coverage. We don't need examples Core tests are quite frankly really really weird They have to account for mal use abuse and as someone wants to describe it aptly pure stupidity So the tests are already complicated enough without adding example modules on top of it This becomes part of that weird Isolation lacking that we're going to get because we have to do all this weird stuff to the tests that we would never do for a contrib module But we would have to if we start putting it in there as a test case Also, this is kind of a personal beef of mine writing example code is a skill And it's not a skill that a lot of core core contributors have It's more than just adding a lot of comments to your code Adding a lot of comments isn't writing example code. That's adding a lot of comments It's different considerations from production code. You'll structure your program differently You'll break out certain methods differently You'll write tons and tons of little tiny functions to do step one step two step three and step four and no one would Ever bother doing that in production code. It's a waste of everybody's time from production code points of view but from example code Where education is the goal? That's very important Also maintaining examples while while developing new apis would be painful It's all the agony of updating examples and core at the same time So if you have your core developer and they're starting to work on a new a new version of Drupal core You have example modules and they're living in core hypothetically So as we start this process off Examples are going to say dude. Everything's broken And of course the core developer saying can't you see I'm busy. I'm trying to work on a new version of core And of course, we'll find and did I'm just gonna fail all your tests And of course, this does not make anybody happy And the thing is this continues as the development of a new version of core continues Every time we start pushing that forward dude. Everything's broken dude. Everything's broken dude Everything is still broken We finally get to a near release of core and finally okay fine sure okay? Let's go ahead and fix you Finally and then of course they're cursing themselves because their release date goes out the window So the core developers sitting there also at 2 a.m. Over at half-eaten tuna fish sandwich watching Star Trek 3 and they're going Why am I developing code not used by 90% of all the Drupal sites out there? This should be contrips problem. It's not 90% of sites. It shouldn't be in core. It should be contripped So then everyone starts pointing fingers Everyone's saying this is your fault No one is actually fixing the problem and the problem isn't just an examples. It gets even worse The reality is that example module Became a forerunner for what we're seeing here for Drupal 8 which is that example module isn't quite core isn't quite Contrib but it highlighted a growing cultural divide in our Drupal development community one That's only going to get worse in time if we don't do something about it. We need a third option Example module does provide checks and balances against core a Core developer might say well this makes for this makes core better faster and easier, but does it really work for contripped? We need to have those checks and balances constantly Also Example module has a number of key advantages that are excellent for making it a forerunner for testing new versions of core But in a completely process a process isolated fashion It's core isolated it tests DX before core is frozen because examples is usually developed While core is finishing up usually before most contrib modules even dare to touch updating their modules Also, if we put example module in core it would have a really really weird dev cycle So you have a new version of core then you have example module We disable all of the example module tests because we have real work to do So development continues on core, but development is halted for examples Eventually we get to a near alpha and we start updating the example code to fix all of those to have those tests that we had disabled months or years before Once we have the examples completed we can finally you know release a stable version of core Okay, that sounds pretty weird That's that's kind of unprecedented. We've never done that before Right? Please tell me we haven't all right We did do this We already did this When we put migrate module into core we disabled all of its tests because we had work to do That's not the only problem If we were to put example module in the core, where the heck would it live? Here we have a simplified simplified directory structure of core of Drupal 8 core We want to put it somewhere so that developers can easily find it But we want to keep it hidden from users so they don't enable it on a production site So they don't start building their entire site over the robot entity type that we have in examples Because trust me someone will do it and then pay lots of consulting money to fix it We could put it in modules slash examples because you know, it's a natural place It's where all the other contra modules live the thing is we'd either have to delete it once we install once we install it Or we would have to hide it in admin extend to make sure that not every user just doesn't blunder in and decide to enable it Okay, fine. Let's put it in core modules examples because you know, that's where all the other core modules go That makes sense, right? But the thing is that examples really isn't a core module if we put it there. I mean you really can't it's not as easily discoverable Okay, fine. So that doesn't work. Let's just put it in the core directory Okay, it keeps it in the slash core directory. Sure. So that every time we update core it gets updated But it's not really in core Okay, sure. It's hidden for users It's a bit more discoverable for developers because as soon as you start going in there There's like oh, there's like three or four directories here. Oh core directory. Oh examples. There we go. We can't it's hard to miss Of course, if that doesn't work, we could just put it in the root directory You can't visit there, but now it's outside of the core directory So now we don't have a standard means of updating by just deleting the core directory and replacing it now We have an exception So we have to move it or copy it to enable it to so that doesn't Geez, we don't even know what where we should put it in the directory if we were to do it Semantic versioning could mean that core moves faster, but is this really fast enough for examples? We're already talking about every six months We should have a newer version of core where we can actually add new APIs But that's every six months that we'd have to wait to add a new example So after looking at all of this all sitting down and thinking about all of these problems that core example module is Facing I started realizing that the problem we're salt trying to solve the wrong problem We're approaching this as a technical problem Trying to find a way to make sure that example module gets developed so that we have people that are happy and Contrib that have examples to base their work on but it doesn't really want to live in core because that doesn't that's a complete cultural mismatch So what's going on? Well the problem is people It's the problem a problem that most developers never want to hear about The problem is people it's not code We have a stalemate between core and contrib today one. That's really really worrying me Everyone's pointing fingers. No one's really fixing the problem We need someone to stand up someone whose job it is to stand up and go. Hey, that's not fixing anything We need to sit down and try to fix this And I like to call that person the contrib champion the contrib champion isn't a new idea It's based on something from cloud from enterprise cloud environments called the cloud champion It's a proven way to roll out large intimidating changes in an enterprise Intimidating changes sound familiar to anyone in this room The goal is really to support contrib developers through documentation mediation sample code and public outreach in order to ensure a successful deployment of a new version of core So that contrib developers have someone to go to I like saying that it really means three things It means someone that can raise excitement Someone that can mediate problems and someone that can educate individuals and can contribute developers The first most obvious thing is raising excitement It's the first most obvious role It provides a consistent venue for information and discussion Right now you can find a lot of information on Drupal 8 Two years ago. This wasn't the case a year ago. This wasn't the case, but it's still disorganized Every time you try to solve a problem Drupal 8 even today You'll get five articles giving you different solutions to do the same thing. There's no canonical source and All of those are inconsistently updated from individuals. There's no organization Now that's fine when your project is small. We're not small Core isn't small anymore. Our community isn't small anymore We have reached a went way past an inflection point Where we can depend on the nebulous community to fix all of this We need to do better One thing that a courthouse that the contrib champion could do is to support key frontline modules modules that are willing to go I don't care if cores really broken and really weird and everything's going to change I'm going to develop for it. Anyways modules like examples like flag like rules like Drupal console Modules that are there at the very beginning because they really don't care. They don't have anything to lose So why not? This could mean assisting with crowdfunding with a rainbow with awareness or even really really importantly knowledge transfer Which is the biggest problem we have in core today with respect to contrib developers Another major thing that's really important and one that is not a very easy subject to broach is mediation We'll have a contrib developer and they say they have some valid exam valid concerns about core They might have already gone to an issue queue and complained about it. Why did you break my module? They might have already gone to to IRC and wondered why it did everything change. Why did you rip out hook menu? That was good. It did everything I needed to do. Why is it now four different files? Why in the heck did you do that? And the thing is that when you know when someone who is a contrib developer says that and a core developer hears it They're going to be angry because they worked a lot really hard on that and they do have good reasons But the problem is that some when you're approached like that you're immediately feeling attacked So as a result you're going to be on the defensive when you start talking and if someone is up late Has had a bad week. It didn't have their dinner on time or something They might go off the handle and suddenly we're going to have a contrib developer thinking maybe I don't want to work on Drupal anymore So a contrib developer can go to the contrab champion and express these concerns We can they might not be uncomfortable bringing them directly because they might have gotten burned before So the contrab champion can document them and then later on can go to the core developer and actually in a structured approach Actually communicate all of these concerns So that we can actually figure out what's going on and in some cases core developers might not even know there's a problem because one thing that happens a lot and particularly in Drupal 8's development cycle is there's a lot of people too scared to say anything a Lot of contrib developers are scared out of their mind right now Because Drupal 8 is that big and that different. They're thinking they're going to get eaten We're all new developers again. So the meat and so the contrab champion can communicate this Structurally figure out what's going on Document and then figure out a way of communicating that back to the larger community as a source of truth Mediation provides a back channel so that issues can be heard while reducing footwork for everybody Because now it's somebody's job We have a role also. We have another problem change shock a Contrib champion can help mitigate and mitigate change shock During this Drupal development because what happens is that the worst thing that can happen? To a large open-source project like Drupal is what happened in Drupal 8 Does any of this look familiar? I know under understand how core works or someone completely out of the blue saying please remove me from maintainers dot text or someone or a long-standing core developer saying core no longer supports hobbyists if You're a contrib developer who works on just their module and is happy working on just their module and you hear this on social Media with no context You're terrified You're thinking that the next version of core is going to be an absolute corker and you're not going to want to touch it with a 10-foot cattle prop fear uncertainty in doubt are Inevitable when change is huge and easily created Unintentionally and we've done that a lot in the Drupal 8 development cycle. It also comes down to that messaging thing We might have a core developer who says I need to reduce my role in core If you say that on social media because you have no one to say it to first It's going to create FUD no matter what you do Someone has to be there to hear it first and then ask the next question. Why? It's a simple question, but it makes a huge difference And it turns out nine times out of ten particularly in the Drupal 8 development cycle They might just have kids and they need to reduce their effort I think Dave Reed had this problem just a few months ago He put a tweet out saying that he wanted to like reduce his involvement in Drupal and every one panicked And then about four hours later Thankfully he sat down and wrote a very lengthy Google plus page Describing why and what his point was and it made all the difference in the world Not all core developers are really very good at that They like just working on their own stuff because you know like a lot of software developers core and contribute alike We might be antisocial we might not like talking about these things We might want to just say something and be done with that The hundred forty character limit does not help us here The contrib champion can actually listen to this first and then manage that transition Bring that announcement forward saying oh, they're just going to refocus on family issues This particular developer will be taking over for their responsibilities in the interim And suddenly if you hear it like that as a contrib developer, you're not worried anymore. You're like, okay I gotcha. No problem FUD needs to be constantly and carefully managed because if no one does it it only confirms people's unspoken fears The other last goal. I think that the contrib champion needs to do is education We have that new developer who's looking at Drupal a new version of course huge and intimidating thinking they're going to get eaten And the contrib champion could be there saying it's dangerous to Drupal alone take this Examples is only one Avenue blog posts documentation videos organizing sprints There's lots of different ways to do education for new versions of core But we don't need just one person we need an initiative We need multiple people multiple team members from multiple companies Nationally, I think of from a lot of Drupal companies people who are community liaisons project managers mentors Individuals who have that kind of focus already that can also work toward this so let's recap Examples does have a special role in the community because it boots on boards new developers kick starts module updates signals that core New version of core is ready Both sides are right in the argument the examples is special to the community, but core inclusion isn't a good fit The problem isn't core there's a problem is in code The problem is that people's needs aren't being there's no easy way to meet those without change We need to contribute We need someone who can mediate concerns about course support documentation and examples and boost key frontline modules The contrib champion is a social solution to the social problems of implementing change in a technical context So please please let's not point fingers anymore. Let's make contrib happy For everyone and on that note. We're going to be sprinting on Friday Learning contribute to Drupal core. We'll have mentors there to help you set up. It's going to be right here Friday 9 a.m. To 6 p.m. In room 403 Thank you, I'm socket when she could find this presentation online That's another shirt. I got a shirt. It's a large anyone. Oh almost I've got let's see your That's what my injured arm. I'm going to regret that in 45 seconds. Who wants another shirt 15 seconds, so I better get this one out. It's a 3x anyone anyone No Way over there back there. Okay, sure. Oh man. I've got such a bad arm today Also some flag module stickers up here if anyone wants them just go ahead and come take them up here All right, are there any any questions? We got a question way back there So where do they come from? Do they just grow out of the ground or is there is this something you would see like the Drupal Association? organizing like I Agree with you totally on this. Where do they come from? So yeah, that's one of the biggest questions, and I don't know the Drupal Association seems to be the most Logical thing in my opinion. I've had a few arguments with them about this So they don't always think that it's a good idea Why I think it's probably because they thought that their job wasn't to Help contribute as much and more run events and support core development. I know See the thing is that argument was two years ago and in those two years their focus is slightly drifted from that statement in Practice so it bears re-examining in my opinion, but no one's really listening. That's why I'm up here begging people today You have a question So yes, this is really sort of what needs to be done and Sort of who needs to do it, but how would they sort of do this because there's not a lot of interaction with like All of the core maintainers and then I guess it's a lot. There's a lot more than just working on examples Yeah, there is and I don't know what that is either So that that's that's the thing I had this idea because I only identified the roll gap I have no idea how to approach it yet. I also really need ideas I need ideas from everyone and how to actually get this across Can we like can we like contact form bomb the association and I'll ask for this There's a public board meeting tomorrow The first best place to start with that conversation Okay, oh geez, I think you had your hand up first Why the community champion is tied to the examples module They are two separate issues really this is just how I discovered it And I really thought that it was important to put it in context of one of these frontline modules to show why we were having this problem and we had a lot of modules that wanted to just get into core at the time and That isn't really a solution because again, that's you know It's a technical solution not a social solution. We have the wrong problem here Thank you. We're next So what I was gonna say was that From my perspective that this is really tied Toward how the sort of core mentoring program works and stuff like that because usually That's where you find people who have Energy and time and willingness and so I'm right now working on a few like trying to get Got form elements reference back and the docs right now. That's sort of my pet champion thing and So one of the ways that that I sort of got more involved in Drupal was through the core mentor sprints stuff like last Pacific Northwest Drupal Summit and and it strikes me that like right now in terms of like getting the word out about how to reduce But and get people to understand how to use core and and those kinds of things it seems to me that that and the API docs and the example docs are all kind of integrally tied together in terms of okay, so So so you I've been through that fairly recently where you try and get involved in Drupal and it's kind of like There's like all this stuff What are it's like you're rolling the dice figure and you got maybe I got a I got a chance of getting a patch in Before I'm done for this conference, right? That's kind of how it feels to begin with and you're and you're and you're kind of doing that But part of that is because of the high barrier to entry around that stuff And so for me it's like the people who are running the core mentor spreads are already you're doing a really really good job of grabbing people and pulling together and and giving kind of what I would call training opportunities about That are the reward that you get for starting to get involved in core and so to some extent when I look at the the gap here from that perspective the solution has got to lie in That same structure because the mentorship the mentorship program though the way that that program works and the way that it kind of Gives you the opportunity to kind of where people kind of are in the right headspace. They're honoring your your Concerns and your confusion and stuff like that in a way that doesn't always happen in the other environments because it's kind of like Well, I'm busy and I'm just trying to get stuff done, right? But but there's that space that happens where people are actually in the right headspace For welcoming the confusion that people might have in an API or something like that And so I think they're that that's where you're likely to one cover a lot of the fud from that perspective and if that were more More in line with training opportunities, and I'm not quite sure how to do that I mean, maybe there's some partner programs that need to be worked out about working through example dot modules If we got all these people come and given these trainings on development, you know Maybe that could be harnessed for the goodness of like the API docs and stuff like that because Yeah, the the only reason why he didn't feature mentors more strongly in this is because a lot of mentoring Revolves around contributing to core it doesn't Revolve a lot to contributing to Contrib and Kathy's gonna correct me in five seconds. I'm sure I was about to want to disagree with you completely Until you got to the point about the headspace thing Which matches what you said about the social problem thing and then I was like, oh, that's really a good point But core mentors are structured around core There aren't a surplus of them to take on a new responsibility But I talked to Fubi in France at Dev Days and I think there could be Untapped resource of people who could maybe Model some things after the mentoring thing and like if they get those new people that are Incontrib but want to help with core But they feel like they can't kind of thing and you get them started and set that up They'll be in that good headspace and you're not asking people who are already doing too much to do more Right, that's the tricky bit like where are you gonna get these people, right? And you get them from people who? Want to help but aren't you can't get people who are already helping to help that's not gonna have it This is the thing a lot of contrib development doesn't happen at a sprint and A lot of mentoring happens around sprints. So there's a bit of a mismatch there as well So it's it strikes me as really interesting that that API doc examples that I am working on writing are core and That that examples that are in the example modules are not core from the way that you just represented that perspective and so From that first, I mean I'm busy trying to puzzle out and figure out how how to like get this Communications gap dealt with because actually I have a team of developers and the reason I'm interested is because I have a team of developers That I have to train on how to upgrade a boatload of modules I've got like a seven-year cycle of module upgrades that I'm going to have to start bit back when I get back home and and I got to train these guys on that stuff and right now The best way that people talk about well How do you learn how core is supposed to work and how you develop a base module and stuff like that? It's like nine times out of ten you get referred to the change logs, right? And it's like okay, so I'm supposed to throw a new developer at change logs Multiversion community docs and that's gonna get them ramped up on object-oriented programming done right heck No, right so so from that perspective, I think there's a real problem with thinking about Code examples as not core from just from the perspective of the of the mentoring program And the getting the word out and the bringing people in not from the perspective of anything else really and I'm really only I'm not talking about all of Contra. I'm not even talking about rules or something like that I'm talking about just core examples and how you get I mean if you go to jQuery You sure as heck don't expect to find a Pointer to the raw code to figure out how to use jQuery right and you don't really expect to find Multiversion stuff to figure out how to use jQuery you expect there to find Curated code examples for how things are supposed to be done and from that perspective our community has fallen behind a little bit in That regard in terms of API docs compared to other stuff itself a lot of the core exam a lot of the example modules Just basically sat unupdated for about a period of eight months until after I had been working on flag module and Fighting every night to actually get that to work because that was the only way to figure it out I have changed logs weren't useful reading issues weren't useful reading the code wasn't useful I had to actually copy code make it break and then beg people on IRC to find out how this was supposed to work Then I was able to translate that into example code I didn't want other people to have to do what I did because I'm a glutton for punishment, but I don't want other people to be punished So so many asked over there about how like examples You know ties in with this contrib champion thing And so I think that's the thing I got out of this talk is I thought examples was and so I got from this Why it isn't and why it needs to be something separate, so that makes a lot more sense to me now. Thank you I like to say that it shouldn't be in core, but it's process tied to core But we don't have any people process to tie it right now We're depending on the nebulous community to fix everything and I don't think that will work for it I don't know for now because it hasn't been working for two years You had something So you talked about needing a new initiative for the contrib champion It seems to me that much easier than starting a new initiative is hijacking an existing one So we have a developer experience initiative right the DX at least at least DX tag I think there's an initiative tied to that You're saying that it's ripe for hijacking Let's go for it. Let's take over. Yes, let's take over the DX initiative and Make it do what needs to be done I'd like to say that would be a wonderful solution, but that's only part of it Having a name is only part of that We do need someone whose job it is to actually do this my job isn't to work on examples My job isn't to work on flag. I'm paid how I work to have work to do client work I only do this about everything else on my own personal time and It's painful because I know if I were to sit down and have a week to work on this I could get most of examples done and we would have some really good stuff, but no one's stepping up Because there's no money behind it I would like to talk to the trading companies to fund me Kathy, but that's why I'm here begging people now Or talk to the training companies to fund somebody else You already have a job Don't get me wrong. I'd gladly do it if someone said I could Anything else All right, thank you everyone