EDITS.WS

Tag: contributing

  • #92 – Juliette Reinders Folmer on When Contributions Need to Be Paid

    Transcript

    Juliette Reinders Folmer

    [00:00:00] Nathan Wrigley: Welcome to the Jukebox podcast from WP Tavern. My name is Nathan Wrigley.

    Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case when contributions to WordPress deserve payment.

    If you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice. Or by going to WPTavern.com forward slash feed forward slash podcast. And you can copy that URL into most podcast players.

    If you have a topic that you’d like us to feature on the podcast, well, I’m keen to hear from you, and hopefully get you all your idea featured on the show. Head to WPTavern.com forward slash contact forward slash jukebox and use the form there.

    So on the podcast today, we have Juliette Reinders Folmer.

    Juliette is a highly experienced professional in the field of coding standards. With a deep understanding of industry best practices, she has dedicated herself for many years to ensuring code quality and consistency within WordPress.

    Juliette acknowledges that coding standards encompass more than just formatting and white space, they also play a crucial role in maintaining compatibility and preventing conflicts between plugins.

    By adhering to these standards, developers can minimize errors, and fatal issues for end users. To facilitate the implementation of coding standards, Juliette talks about the importance of automated checks and continuous integration.

    We chat about her commitment to WordPress coding standards, and how the work that she’s done in this field have made her a trusted authority. Through her contributions and guidance, she has helped countless developers enhance their code quality, ultimately improving the overall WordPress ecosystem.

    We talk about Juliette’s role as one of the maintainers of WordPress Coding Standards or WordPress CS. Discussing the importance of consistent code and the challenges of maintaining, and funding, open source projects.

    Clearly there’s great value in tools like WordPress CS. Consistency is key for developers, and using a tool like WordPress CS makes it easier for them to meet expectations and be productive. It saves time by automating manual changes, and helps prevent conflicts and potential problems with other plugins or WordPress Core. Juliette emphasizes the continuous nature of the project. Where updates to a variety of PHP projects need to be kept in sync with the WordPress side of things.

    All that said maintaining open source projects like WordPress CS comes with its challenges. Juliette tells us about the importance of financial support and adequate resources to mitigate business risk, as projects that go on maintained can create dependency issues and pose problems during corporate audits.

    She speaks openly about her decision to step away from contributing. The project is so crucial, but underfunded and Juliette thinks it’s time to draw a line in the sand. It’s time for contributions in return for payment.

    It’s not just about financial contributions though. Juliette asks us to support the WordPress Community Collective, and for us all to explore other ways to assist the project. She highlights the need for all companies benefiting from WordPress to contribute towards funding more broadly, rather than relying on one or two of the larger companies in the space.

    If you’re a contributor who was even pondered how much WordPress relies on volunteers, this podcast is for you.

    If you’re interested in finding out more, you can find all of the links in the show notes by heading to WPTavern.com forward slash podcast, where you’ll find all the other episodes as well.

    And so without further delay, I bring you Juliette Reinders Folmer.

    I am joined on the podcast today by Juliette Reinders Folmer. Hello, Juliette.

    [00:04:41] Juliette Reinders Folmer: Hi Nathan. And you got my name right.

    [00:04:43] Nathan Wrigley: I appreciate that. Thank you so much. I’ve had a little bit of a practice, let’s put it that way. I appreciate you being on the podcast today.

    This is going to be a really interesting subject. It could get a bit nerdy, but I suspect that we’ll avoid large proportion of the nerdiness. But we’re going to be talking today about something which I suspect a lot of the people who tune into this podcast regularly may not know anything about. Hopefully during the course of this podcast we’ll alert you to why you should know about it, why it’s important, what it is, what it does.

    But before we get into that, WordPressCS or WPCS, let’s ask Juliette just to introduce herself. Tell us a little bit about her background, working with WordPress, what she does and all of that. So Juliette, if that’s okay with you, over to you, little bio moment.

    [00:05:32] Juliette Reinders Folmer: Oh dear. I did not prepare for that bit. Basically I’ve been self employed for good 20 years now, and as a general rule of thumb, I do whatever I like and I hope that sometimes people actually pay me money to do it. Which is not always great from a commercial point of view but it keeps me happy.

    [00:05:51] Nathan Wrigley: Typically on this podcast we have people who are devoted to some aspect of WordPress. My understanding is that your technical expertise stretches beyond WordPress as well, PHP and various other different things. So is it true that you only operate in the WordPress space, or do you stretch a little bit further than that?

    [00:06:11] Juliette Reinders Folmer: I’m all over the place. I sometimes say for people who are really in the WordPress community, see me as the PHP community reaching out and helping.

    [00:06:20] Nathan Wrigley: Nice. So this podcast today is going to stem off a piece that I read on the WP Tavern. It was written by Sarah Gooding. If you want to find it I will link it in the show notes. But maybe for ease of use, it was published on August the 22nd 2023, and it’s called WordPress coding standards maintainer warns maintenance will be halted without funding, in quotes, this is an unsustainable situation.

    That maintainer is you, and that’s what we’re going to talk about today. We’re going to talk about that unsustainable situation. But I feel that we can’t really talk about why it’s unsustainable unless we learn a little bit about what WPCS is, what it does.

    I know that’s an enormous subject to deal with in just a few moments. But I wonder if you could paint a picture of what WCS is because I feel the listenership, there may be quite a proportion of us that don’t know.

    [00:07:17] Juliette Reinders Folmer: Absolutely. Okay so WordPress, like most projects, have coding standards. And now when I say coding standards a lot of people think, okay this is about how code should be formatted, white space, whether things should have comments and doc blocks. You know, how code should look.

    In part, yes that’s correct. We do have rules for that, because if code looks the same across your whole code base it makes it much easier to review code and only concentrate on the actual changes, instead of being distracted by all the inconsistencies in how the code is formatted. So, yes there are rules about code style, code formatting. But WordPress coding standards does much more.

    It also encompasses a number of rules around best practices, just industry best practices. Best practices for how to interact with WordPress. So as a plugin you don’t want to conflict with other plugins. So there are certain best practices you can apply, like prefixing everything you put in the global namespace.

    And if you apply those correctly the chance of your plugin conflicting with another plugin and creating a widescreen of death, fatal error, for end users is a lot smaller. And WordPressCS can help with that as well and has, on the one hand, has some rules for that. On the other hand, what you then get is WordPressCS as the package, because you have the written rule, but then you also have tooling which basically takes those written rules and codifies that into automated checks. Automated checks which can be run in continuous integration.

    So every time someone puts some code online those checks can be run to make sure that the code complies with the rules you’ve agreed upon. And WordPressCS is one of those packages. It’s a package which takes those rules, codifies them in automated checks and then can be run on your code. And it doesn’t just check it and point out errors, it can actually auto fix a lot as well.

    [00:09:29] Nathan Wrigley: So the enterprise of WPCS, and I should probably say that CS is the acronym for Code Sniffer. The enterprise is to create this suite of tests if you like, so that whilst you’re writing code, if you’re using CI, it’s constantly giving you alerts as to whether or not there’s a problem. We’ve identified that there’s a little problem here, you can take a look at it, and thereby mitigate the problems, right?

    [00:09:55] Juliette Reinders Folmer: It can even do it even more directly. If you use a modern IDE, individual development environment like a PHP Storm or VS Code, it can even give you those notifications while you’re coding. It integrates with that kind of tooling. So while you’re typing your code, it can fix things for you and it can notify you of the things it doesn’t fix.

    [00:10:19] Nathan Wrigley: So given the open source nature of WordPress, and the fact that anybody can download it and anybody can write a plugin for it, an interesting comparison would be something like the Mac App Store, or the Apple App Store where Apple, in effect, is the custodian of the code. Apple will go to great lengths to make sure that your code is compliant and it’s completely the opposite model. You put stuff into their ecosystem, they’ll do checks and make sure that it’s all compliant with oh let’s say iOS or something like that.

    [00:10:50] Juliette Reinders Folmer: In a way a similar situation is in place in the WordPress ecosystem at large, because if you want a plugin to be listed on wordpress.org it goes through a list of quality checks as well. And they have some specific checks from that team, but some of the checks they use also are based on WordPressCS or are from WordPressCS.

    [00:11:14] Nathan Wrigley: Yeah that’s a really good point. I was thinking also about the sort of third party plugin marketplace which exists in WordPress, into which anybody can drop their code. So it’s quite, you know, you can go to one of hundreds of thousands of websites and download a plugin which you can add to WordPress. And really there’s a bit of a gamble going on there. You’re hopefully able to determine that the code is good.

    But a tool like WPCS will give you some guidance. You can run it yourself. It’s not like you have to trust the repo. If you went out and got third party plugins you could run these tests yourself. And just before we started the call, you were talking about if you were, let’s say an agency, and you had a particular need and you had three or four plugins that you thought might be useful. They would, all of them satisfy the requirements that you’ve got. But you could run them through something like WPCS, and get a real useful insight into well, whether or not they meet the standards, how compliant they are and so on.

    [00:12:12] Juliette Reinders Folmer: Correct. You will get some noise messages about different white space requirements, for instance. But you will also get messages about, hang on, this is not prefixed and this could conflict. Or hang on, output is not escaped. This plugin may introduce XSS security vulnerabilities. There are actual sniffs in WordPressCS which scan your code for typical attack vectors, and whether your code is well enough defensive against those attack vectors.

    [00:12:45] Nathan Wrigley: And I’m guessing that the enterprise of keeping WPCS maintained is like a road that you never reach the end of. You are updating it but there’s always the next change out in the, I don’t know, PHP ecosystem, which means that you can’t ever say well it’s done. Because PHP 8 comes along, then PHP 8.1 and PHP 8.2 and so we go.

    So would that be fair to say? What kind of things is it sniffing for? Are we just working in the PHP space, or is it working with other things as well?

    [00:13:19] Juliette Reinders Folmer: Well PHP_CodeSniffer as the underlying tooling, at this point is capable of scanning PHP, CSS code and JavaScript code. For the most part WordPressCS just focuses on the PHP code, because by now if we look at the whole ecosystem in development, there is plenty of other tooling available for CSS and JavaScript. Which wasn’t available when PHP_CodeSniffer started, because this is an old project.

    I mean this project got started in 2005. So at that time that tooling was not available. So this was one of the only tools which could do something like this. The intention of PHP_CodeSniffer, because there’s so much other tooling available now for CSS and JavaScript, is to actually drop support for CSS and JavaScript. So with that in the back of our minds, our focus is completely on PHP.

    [00:14:11] Nathan Wrigley: And so getting back to the question about how this is a never ending road, I’m assuming there will have been no point in the past, or predictably in the future where you’ll be able to say, okay this is done, because there’s constant work that needs to be done because the technology, the PHP, is always adding lots and lots of different things from year to year.

    [00:14:34] Juliette Reinders Folmer: And it’s not just PHP. I mean if something changes in WordPress, WordPressCS needs to take that into account. For instance one of the scans is applied to plugins but also I think to WordPress Core is, are you using deprecated functions? Because those functions are deprecated for a reason. So you should use something else. There’s normally an alternative available.

    Or are you using particular PHP functions for which there is a WordPress alternative which should be used? So if WordPress introduces one of those alternatives then WordPressCS needs to be updated to add a new check. If WordPress deprecates functions, WordPressCS needs to be updated.

    On the other hand, like you already pointed out, every year there’s a new minor release of PHP, sometimes a major. But at least every year there’s a minor and those introduce new syntaxes. And in the past three, four years PHP has introduced so many new syntaxes it became really hard to keep up. All those syntaxes mean that code can be written in different ways.

    And sniffs basically look for a certain pattern of code. But if code can now be written in a different way, that new way of writing code needs to be taken into account. To prevent false positives, as in throwing an error when there shouldn’t be an error. But also prevent false negatives, for people using the new syntax and the sniff not being able to understand it and throw the error which should be thrown.

    Every single sniff basically needs to be reviewed after every PHP release, to be checked if it needs to take any of the new syntaxes into account. But before we can do that the underlying tooling needs to be updated as well, because it actually needs to recognise the new syntaxes.

    [00:16:26] Nathan Wrigley: So a constant study.

    [00:16:28] Juliette Reinders Folmer: Yeah it’s a whole domino chain of things and it’s basically a circle going round, because yes, we put dominoes in place and then we managed to get things merged in PHP_CodeSniffer. Then PHPCSUtils can update, and then we can update WordPressCS. And by that time a new PHP version has come out and we can start the whole circle again.

    [00:16:49] Nathan Wrigley: We have this expression in the UK, “it’s like painting the Forth Bridge”. The Forth Bridge is a particularly long bridge in Scotland, and you begin painting at one end and by the time a year or so later they’ve got to the other end, well, the paint on the far end has now become corroded, and they’ve got to begin again so it’s this never ending cycle.

    If you’ve heard of WPCS and have used it, I’m sure that you will recognise the utility of it. But if you haven’t, and as I said at the top of the show, I think there’s probably a lot of people listening to this who haven’t. How do we actually make use of it? How would a typical WordPress user get WPCS working, and giving them some insight into the suite of things that they’ve got in their WordPress site?

    [00:17:32] Juliette Reinders Folmer: Okay. Well for people who are not used to command line, this might be a bit scary. You need the command line. Then again I mean, as I said, it integrates with IDEs so you can run certain things in IDEs as well. But as a general rule of thumb if you want to scan for instance, say you’re evaluating those four plugins to find out which one you’re going to install, like the example you used earlier.

    The easiest way to use WordPressCS as part of your toolset when you’re evaluating, is to do so from the command line. And that means you need PHP installed. Well if you work with WordPress you generally should probably have PHP installed. You need Composer which is a package manager in the PHP world, like npm for JavaScript but then for the PHP world.

    And then you need to install WordPressCS and that’s a Composer require. And if you don’t work with code yourself I would say use a Composer global require, then you can use it anywhere on your system without it being project specific. If you do work with code, please use it on a project basis and require it for the project, because it will also make it transparent for other contributors that you expect them to comply with WordPressCS.

    So yeah, you can either install it globally or you can install it on a project base. And once you run the Composer require, it has all of that in the readme of course, so you can just copy and paste that command.

    Once you run that everything is set up, and you can just run the commands to run WordPressCS which is vendor, bin, phpcs, dash dash standard is WordPress.

    At the same time, most of the time, you will want to customise a little. For instance, I mentioned prefixing before to prevent conflicts with other plugins. If you want to check prefixes you need to tell WordPressCS which prefix to look for. If you don’t give it any prefixes, we cannot check whether things are prefixed. We need to know what to look for.

    In the WordPressCS repo, an example rule set, which has some of the common things which you should add to a custom rule set to use. There’s also, in the wiki, quite a lot of documentation about what the various options are you can toggle on and off. That way you can set up a customer rule set and get yourself running in a more detailed way.

    [00:20:08] Nathan Wrigley: I suspect that the proportion of people listening to this podcast who really never look at the code, they are, I don’t know, you maybe call them implementers or something like that, might be thinking well, why does any of this matter? What is the point? And I guess that’s something that I want to tease out.

    I want it to be clear that unless projects like WPCS occur and continue to occur, the bedrock of the software, which we’re all using for free, gratis, is not going to be something that you can trust as much, I guess.

    So I don’t know if there’s anything you want to throw into the mix there. If somebody was to come to you and say well I just use WordPress, why should I care about this? Why is this of interest to me? It’s a bit like, if I never go to a hospital, it’s not well we shouldn’t have hospitals because I’m perfectly well. Something along those lines.

    [00:21:01] Juliette Reinders Folmer: Yeah, well if your site’s never been hacked that’s the same comparison. Your site’s never been hacked. So why do we need security checks and security reviews?

    [00:21:10] Nathan Wrigley: So what would be the single, or maybe a couple of messages that you would tell people, this is why what I’m doing matters. This is why we all need to know that this project exists, and that it’s important.

    [00:21:23] Juliette Reinders Folmer: There’s different answers for different levels. So for developers it definitely makes it easier for them to be high productive. Because if code is consistent it makes it easier to work with, to know the expectations, to review code, et cetera, et cetera. So it’s a productivity tool for them, including the auto fixing.

    Some of the changes which may need to be done, if you’d need to do those manually that would take you like a week or two weeks. And if you use the auto fixer, it’s done in five minutes for you. So that is literally two weeks of work saved. That’s on the development level and the management, the IT department level.

    If you are an agency who normally doesn’t use code, it’s more about, okay if I install this plugin, will it cause problems with other plugins? Will it cause problems for WordPress Core? Because there are plugins which will gladly override a global variable from WordPress Core and then WordPress Core breaks.

    WordPressCS has checks against stuff like that. I already mentioned the conflict. If there’s two functions in two different plugins which use the same name, you have a fatal error and a white screen of death. Do you want your customer to get a white screen of death? No you don’t. So this tooling can help guard against that, can help prevent those kind of situations from happening.

    [00:22:52] Nathan Wrigley: So I’m going to go back to the piece on the WP Tavern. I’m going to read the title again because I think it’s important for the next part of our discussion. WordPress Coding Standards maintainer warns maintenance will be halted without funding, this is an unsustainable situation.

    So the person that is referenced in that article is you. You’ve obviously decided that this is an unsustainable situation. I think we’ve painted a picture as to why WPCS is an incredibly useful thing to have around. But i’m keen to know exactly how many people get their hands in the weeds with that tool? How many people do you have on your air quotes team? How many hours are contributed by those people per month, per year, whatever? Just give us an inkling as to how much goes into this important project.

    [00:23:42] Juliette Reinders Folmer: As I already mentioned, WordPressCS is not a completely standalone tool. It is built on the shoulders of giants. The underlying tool, PHP_CodeSniffer, needs to be maintained primarily before we can even do anything in WordPressCS. That tool currently has two maintainers and I’m one of them.

    There are outside contributors, and quite regularly we get an outside contributor with a pull request. But if you look at the bulk, to be honest, I don’t think I’m saying anything silly if I say that for the past few years a lot of that has come down to me. So that is the biggest giant we’re standing on.

    Then we have PHPCSUtils which is a layer on top of PHP_CodeSniffer which makes writing sniffs easier. Because writing sniffs can be pretty complex with all the syntaxes you have to take into account. Maintained by me, completely.

    Then we have PHPCSExtra, which is an external standard which WordPressCS uses quite a few sniffs from. About, I think more than 50% of the sniffs from PHPCSExtra are used in WordPressCS 3. Again, I’m the maintainer.

    Remember that I mentioned that you install everything via Composer? There’s a Composer plugin which makes sure that all those external standards get registered with PHP_CodeSniffer. I maintain that together with one other person.

    And then we have WordPressCS itself. And we have a maintainer team of three people. I’m really, really happy that there’s three of us. At the same time the majority of the actual code work comes down to me. Dennis would love to spend more time, but he hasn’t got the financial safety net to be able to do so without funding. Gary hasn’t got the time to do so anyway.

    So I’m really happy with Gary and Dennis’s support, and for all the code review they do. But if we actually look at the code changes, nearly everything comes down to me.

    [00:25:45] Nathan Wrigley: So we’re painting a picture here, and it’s a funny phrase to bring out but there’s this idea of the bus factor. And the bus factor is the idea that if, sadly, somebody was to be hit by a bus, and they were no longer able to contribute to the project. The bus factor being one is indicative that you only need to have one person removed from the project for the whole thing essentially to collapse.

    And that’s basically what we’ve got here. We’ve got a situation where you are maintaining an awful lot of what you’ve just described, and you’re doing it, well, gratis. You’re doing it largely I’m imagining, and you can correct me if I’m wrong, you’re doing this in your own time for no financial benefit.

    And I guess one of the things that’s come out of the article is that having done this for so many years, and contributed so many hours of your own time, you’ve reached the end of the road potentially about that and you feel that this situation is no longer sustainable. It’s a bit of a plea for help?

    [00:26:56] Juliette Reinders Folmer: Yes. I mean basically over the past two years this has dominated my daily life, in a way which isn’t healthy anymore. It’s not you know a nice side project anymore. No, it’s literally what I spend nearly all my time on. And I’m lucky that I have a few stable customers where I can scrounge some hours here and there to be able to actually pay for my bread at the supermarket.

    The balance is completely wrong now.. And I’m not alone. I mean this is valid for a lot of open source projects. But we’ve reached a point that the balance is so far off that this is just not sustainable anymore. I cannot afford to do this anymore. I cannot justify doing this anymore.

    [00:27:44] Nathan Wrigley: Forgive me asking this question, and I hope it doesn’t come out the way that it might, but I’m going to ask it anyway. Do you have regrets around the amount of time that you’ve contributed over the past? So you mentioned that it’s requiring lots and lots of your time, and you’re basically doing this as a, almost like a full time job really.

    Do you have any regrets getting into 2023 and that situation being the way it was? Or do you wish that you’d have managed to have this inspiration, if you like, this epiphany about enough is enough, a few years ago?

    [00:28:18] Juliette Reinders Folmer: When it’s enough I say so. It’s felt like it’s been enough for about a year, and a large part of that is the fact that, in my perception, I think there’s a disconnect between the open source user nowadays and open source maintainers.

    Open source users often don’t realise there’s no funding. They are not the product. And they come in with a sense of entitlements, and a sense of pressure which is being put on maintainers to release, and yes but you should do this. No, I shouldn’t do this. I’m doing this out of the kindness of my heart, and you should be a lot kinder to me if you want to make any suggestions for the project.

    [00:29:01] Nathan Wrigley: Can I just clarify, have you been at the receiving end then of things which you, in the way that you’ve described, you’ve had requests in well let’s not beat around the bush, less than polite, shall we put it that way?

    [00:29:13] Juliette Reinders Folmer: We actually at some point had to put, in a hurry, a code of conduct into the project. And we couldn’t wait for the WordPress project to get themselves sorted with a code of conduct, because we had an abusive user which was really going way too far.

    [00:29:28] Nathan Wrigley: Yeah I mean like you said, I think the word surrounding that is entitlement, isn’t it? Somebody who believes that it is your role. You have become the person doing this and so well it must now be what Juliette does. Juliette must fix it at the moment anything needs fixing. And of course I think you’ve reached the end of the road there, and you’ve decided that enough is enough.

    Does that mean that you are, well, let’s examine what that means. Let’s throw out a few scenarios. Does it mean that you would like more maintainers, so that you can step away from the project? Or is there a different possible outcome here where you would love to be continuing to work on this, but there needs to be some way of putting food on the table, i.e. payment in exchange for your time here? So I guess both of those options could coexist at the same time.

    [00:30:16] Juliette Reinders Folmer: Yes, and that would be the ideal situation because the thing is, it would be great if we could get more maintainers interested and more people be willing to contribute structurally to the project. Except this type of work has quite a steep learning curve. So to get to the point where you can function as a maintainer for a project like this, and actually take it seriously in the way it’s been taken seriously over the past few years, that will require quite a lot of coaching, and guess who’s doing the coaching then.

    [00:30:49] Nathan Wrigley: Yeah. So let’s ask that slightly different question. Over the past several years, have you had people go through the project? You know, that they’re interested in it, but they don’t stick around or is it literally that the door is open but nobody ever steps through it?

    [00:31:04] Juliette Reinders Folmer: There’s a number of different types of contributors. You have the drive by contributor. We will say okay, we have this sniff which we use in our own company, I’m going to throw it into PR and just drop it in the WordPressCS repo, because it could be useful for other people.

    You do an extensive review and give them feedback of you know, this needs changing that need changing. Because if you use it in your own company you can take some liberties because you know what the agreements are, what code is based on in that company. Except you can’t take those liberties with a project which has this many users as WordPressCS. So we require a higher quality. And the drive by contributor will just not respond to that review at all, and just let the PR rot and die. So that’s the one.

    Then you have, and I’ve seen two, three people over the past five years maybe in WordPressCS like that, will come in and actually understand what they’re doing and how to do a PR. But then don’t have enough time or have a family, have a job and their employer doesn’t allow them to contribute to open source regularly, et cetera. Or they get moved into a different position in their job, and then don’t have time anymore.

    Those are like the little jewels which I’d like to hold onto, and cherish and cuddle and watch to flourish in the project. Except they are rare and unfortunately we rarely manage to retain them.

    And then you have the, oh gosh how should I call it? What’s that called again? That month of code thingy, Oktoberfest. Yeah, I’m going to make a one character change in your readme. Let’s waste maintainers time, kind of PRs. Just so they can get a t shirt kind of thing.

    There’s a couple of different types of contributors. A lot of contributors, or people I talk with, will say like, oh I’d love to contribute. I’m going to write a new sniff. And I’m like okay but do you actually know what you’re doing already? No, you don’t. Okay. So now you’re going to write a new sniff, and that needs a lot of coaching to get to a point where it’s actually mergeable. Instead of helping with the grunge work which needs to be done every time, every year, at every WordPress release, every PHP release. And actually learning from the patterns you see in others existing code.

    And I know that the grunge work is boring, but it needs to be done, and we need people who will put up with the grunge work because otherwise the code base will just grow with new sniffs but nobody’s maintaining.

    [00:33:47] Nathan Wrigley: Yeah. So I guess what we’re discovering here is, A the project is important. B there’s not many people meaningfully contributing to it, apart from the ones that you mentioned including yourself. I think you mentioned two other people.

    [00:34:02] Juliette Reinders Folmer: We do get some contributions which are meaningful, absolutely. I’m not dissing that at all. But it’s the exception not the rule, in my experience. And that’s a shame. I mean I really would love to see more meaningful contributions.

    [00:34:16] Nathan Wrigley: Yeah okay. Thank you for clarifying that. That’s good. But it also sounds as if you’re not quite at the point where you want to completely distance yourself from this project and never touch it again. I think I’m right in saying that a possible desirable outcome would be that you found a way to make this work for your setup.

    And really what I’m talking about there is finance. Am I right in saying that you would continue this work if you were able to make it a job, if you like, and be paid for it?

    [00:34:49] Juliette Reinders Folmer: Absolutely. I mean I enjoy this kind of work. That’s obvious otherwise I wouldn’t have gotten involved in the whole stack, and even projects related to which I haven’t even mentioned yet. I do enjoy this kind of work, but I do not enjoy the abuse, and the abuse is something I will not put up with anymore. Only ever put up with if it’s paid, if I get paid for it.

    [00:35:11] Nathan Wrigley: So since the article was published on the Tavern, so we’re recording this just for context kind of probably about 20 plus days since that piece was published. There were a lot of comments, an unusually large amount of comments. So this topic is of great interest to people. And I wondered, given that there was great interest and a large amount of comments there, I wondered if anybody had figured out what your requirement was, and had approached you. In other words has anything changed or is it still the way it was?

    [00:35:42] Juliette Reinders Folmer: I can see some parties being interested in contributing to a solution, but I’ve not seen a solution yet. But one of the things which has changed, and which I think is an improvement, and i’m really hoping that will allow people to contribute to the funding of the project, is that the WPCC has in their open collective, has opened a project for WordPressCS and the stack around it, to raise funding for that.

    [00:36:15] Nathan Wrigley: So just for clarity, the WPCC is the WordPress Community Collective. And what you can do is you can go over there and they have a handful, at the moment, of projects which you can donate to. And it looks like you have been added to that, or at least the WPCS project has been.

    Do you have an amount, like a target that you want to get to in order for this to be possible for you? Or is it more a, well let’s just see where this goes, and bit of blue sky thinking, hopefully some people will help me out?

    [00:36:45] Juliette Reinders Folmer: I have a target in mind. I’m not comfortable calling that out on air though.

    [00:36:48] Nathan Wrigley: No that’s fine. So that’s where we’re at. As of the 5th of September 2023, we’ve got this incredibly important project which underpins the sort of security, the confidence that you can have in WordPress and the plugin ecosystem surrounding it. But we’ve got this one or two or three, but largely one person maintaining that entire project. But it looks as if, unless something radically changes in the near future, as if that whole edifice might tumble. How much more time are you going to give this before you actually finally call it a day? Maybe that’s not even in your thinking, and maybe it’s you know you’re hoping that it will change

    [00:37:29] Juliette Reinders Folmer: Well I’m definitely hoping it will change. As a rule of thumb I’m basically not touching the code anymore. Not until there is sight of a solution.

    WordPressCS is definitely not an exception. I mean I know open source projects where there’s much bigger problems with abuse than in WordPressCS. I’ve known people who’ve had death threats in their DMs, et cetera, et cetera. That open source and abuse is a whole different topic, but it’s definitely not isolated to WordPressCS. And WordPressCS need for funding is also not isolated. I mean the accessibility project also needs funding. There’s other projects in the periphery of WordPress which could do with funding.

    I think that it’s very easy for people to think, like okay but WordPress is open source and yeah there’s some big companies earning money so they should pay for everything. I do not agree. I think we should as companies which earn money from WordPress, that all those companies should get together in something like the WordPress Community Collective and fund those projects.

    It shouldn’t come down to one or two of the bigger ones. It should come down to all of us because all of us are making money off it. Well all of you, because I’m not.

    [00:38:48] Nathan Wrigley: Obviously the nuts and the bolts of that mechanism, the bits and the pieces that would need to be configured to make that work, i’ve come across that project yet. But that is a really interesting idea, isn’t it? The idea that there’d be somewhere, and the WPCC does seem the best bet we’ve got at the moment.

    It feels a little bit like five for the future or something like that. But instead of it being time, it’s, okay we’re a big company we make money off these things. We use PHP, we use the code sniffing, we do these plugins that are open source and so on. So let’s just put our flag in the sand and say we’ll donate 5% of our resources, and then that organisation, whatever it was, the WPCC or something else that’s new, could then distribute those resources and people like you could dip into that pool. That seems eminently sensible.

    [00:39:36] Juliette Reinders Folmer: I’ve written about this years ago already. It’s also about business risk. If you run a business which is built on an open source project, and you do not contribute back financially, as well as with people. You run business on quicksand. You are literally running it on quicksand. Any corporate audit type of your company will say you’ve got an unmitigated business risk.

    You have risk that those projects which you’re not contributing to, which you’re not paying for, for which don’t have a service contract, are just going to go unmaintained. And you are so dependent on these projects, you should mitigate that business risk. And one way of doing that is with funding. Another way is with resources, and preferably with both.

    And it’s not just WordPress yes, it’s all the open source projects in the stack. Go through the whole stack. You have PHP Units probably in your stack. You have Apache in your stack. You have a Chrome browser in which you test things in your stack.

    And Chrome, yes, everyone associates it with Google, but it’s built on top of Chromium which is open source. You might use Mastodon as a communication channel. Make sure you also fund your Mastodon instance. It’s the whole stack of all those open source projects which need funding. So go through your stack. Do a proper inventory and fund them. This is the only way to mitigate the business risk all of those companies are running.

    [00:41:05] Nathan Wrigley: Yeah, I think you’ve made a really compelling case for this. In that, A, we’ve painted the picture of what it is that you’re involved in, and how important it is as a real bedrock of reliance and the ability for us to be confident in WordPress. And then we’ve also painted the picture of how the underpinnings of that aren’t very stable. Because all of us, unless we’re incredibly lucky, have to put food on the table and we have to be paid for our work.

    And it does sound like the balance, certainly in your case, has gone really far in one direction, and you are the single biggest contributor to that project. And so it makes it all the more important that something like this gets funded, however that may be.

    Now if you happen to be listening to this podcast and you feel that you are able to change the direction here. Juliette, what would be the best way? It sounds like WPCC, which I’ll link to in the show notes, may be the best way at the moment. But I don’t know if you’ve got any other intuitions about how this project might be helped.

    [00:42:07] Juliette Reinders Folmer: Companies can always reach out to me, DM me, Slack, or DM the maintainers as a collective. Gary, Dennis, and me on the WordPress slack. Open Collective is definitely welcome to receive funding for us. Keep in mind, I look towards the companies. I do not look to individual developers to fund this. Because, yes, they feel it most if projects like this don’t continue. But they are the ones we should talk to management and tell management to fund it, because it shouldn’t come down to individual developers. And one time contributions are very welcome, but recurring contributions are what keeps the project alive.

    [00:42:48] Nathan Wrigley: Well let’s hope that there’s somebody listening to this for whom it has raised awareness enough. Let’s hope that we can come back in a year’s time, do another podcast episode and we’ll be talking about a different setup. Let’s hope that that’s the case.

    Juliette, I really appreciate you being on the podcast today, and telling us an awful lot about your personal circumstance and things. So I really appreciate that. Thank you so much.

    [00:43:11] Juliette Reinders Folmer: You’re very welcome. I enjoyed being here, and hopefully my bakery around the corner will enjoy it soon as well, because I can then actually start paying them.

    On the podcast today we have Juliette Reinders Folmer.

    Juliette is a highly experienced professional in the field of coding standards. With a deep understanding of industry best practices, she has dedicated herself for many years to ensuring code quality, and consistency within WordPress.

    Juliette acknowledges that coding standards encompass more than just formatting and white space, they also play a crucial role in maintaining compatibility and preventing conflicts between plugins. By adhering to these standards, developers can minimise errors and fatal issues for end users. To facilitate the implementation of coding standards, Juliette talks about the importance of automated checks and continuous integration.

    We chat about her commitment to WordPress coding standards, and how the work that she’s done in this field have made her a trusted authority. Through her contributions and guidance, she has helped countless developers enhance their code quality, ultimately improving the overall WordPress ecosystem.

    We talk about Juliette’s role as one of the maintainers of WordPress Coding Standards (WordPress CS), discussing the importance of consistent code, and the challenges of maintaining and funding open source projects.

    Clearly, there’s great value in tools like WordPress CS. Consistency is key for developers, and using a tool like WordPress CS makes it easier for them to meet expectations and be productive. It saves time by automating manual changes, and helps prevent conflicts and potential problems with other plugins or WordPress Core. Juliette emphasises the continuous nature of the project, where updates to a variety of PHP projects need to be kept in sync with the WordPress side of things.

    All that said, maintaining open source projects like WordPress CS comes with its challenges. Juliette tells us about the importance of financial support and adequate resources to mitigate business risk, as projects that go unmaintained can create dependency issues and pose problems during corporate audits. She speaks openly about her recent decision to step away from contributing. The project is so crucial, but underfunded, and Juliette thinks it’s time to draw a line in the sand. It’s time for contributions in return for payment.

    It’s not just about financial contributions though. Juliette asks us to support the WordPress Community Collective, and for us all to explore other ways to assist the project. She highlights the need for all companies benefiting from WordPress to contribute towards funding more broadly, rather than relying on one or two of the larger companies in the space.

    If you’re a contributor who has even pondered how much WordPress relies on volunteers, this podcast is for you.

    Useful links.

    WordPress Coding Standards Maintainer Warns Maintenance Will Be Halted Without Funding: “This Is an Unsustainable Situation.”

    WordPressCS

    PHP Storm

    VS Code

    PHPCSUtils

    Composer

    The WP Community Collective

  • #90 – Olga Gleckler on How Anyone Can Contribute to the WordPress Project

    Transcript

    [00:00:00] Nathan Wrigley: Welcome to the Jukebox podcast from WP Tavern. My name is Nathan Wrigley.

    Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, how you can assist the WordPress project by contributing.

    If you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice. Or by going to WPTavern.com forward slash feed forward slash podcast. And you can copy that URL into most podcast players.

    If you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you, and hopefully get you all your idea featured on the show. Head to WPTavern.com forward slash contact forward slash jukebox, and use the form there.

    So on the podcast today we have Olga Gleckler. Olga is a self-taught developer with many years of experience. After initially pursuing a career in marketing, she turned back to her passion for programming and became a full-time developer. She has been contributing to WordPress for four years, and is currently serving as the Core triaged lead for version 6.4.

    In addition, Olga is a maintainer for two components in Core, and actively participates in various teams within the WordPress community.

    Outside of work, she’s also writing a fantasy book, which has a significant personal project for her.

    Olga has tried her hand in various teams within the WordPress community, ranging from Polyglots to Training, Support and more. She challenges the commonly held misconception that only coders can contribute to the WordPress project, highlighting the many different ways individuals can contribute without coding skills.

    During our conversation, Olga shares some examples of non-coding contributions that can be made to the WordPress project. We talk about the process of submitting patches and contributions to WordPress, discussing the schedule for releases, and the importance of understanding the processes and deadlines.

    Olga also emphasizes the essential steps of testing, reviewing for coding standards and ensuring correct documentation in order to make impactful contributions.

    Olga’s journey and the WordPress community has been very varied. She discusses how being part of this ecosystem has improved her career prospects, and gained her trust from others. However she acknowledges that not everyone finds their place immediately and may struggle to get started.

    She explores how to contribute without becoming discouraged, and shares her experiences in the mentorship program that paired mentors with mentees in navigating the WordPress community.

    Throughout the conversation Olga shows a deep passion for the WordPress project and the collaborative nature of the community. She reminds us that contributing to open source projects requires patience and persistence and shares her insights on learning methods, seeking guidance and asking questions in order to make progress.

    If you’ve thought about contributing to WordPress, but are not sure where to begin, this episode is for you. If you’re interested

    in finding out more, you can find all of the links in the show notes by heading over to WPTavern.com forward slash podcast, where you’ll find all the other episodes as well.

    And so without further delay, I bring you Olga Gleckler.

    I am joined on the podcast today by Olga Gleckler. Hello, Olga!

    [00:04:08] Olga Gleckler: Hi.

    [00:04:09] Nathan Wrigley: Very nice to have you with us. Olga is going to be chatting to us today about contributing to WordPress, probably specifically around WordPress Core, but we will no doubt in the introduction discover that Olga’s done a lot more in the WordPress space.

    Olga, just before we begin, let’s orientate our listeners a little bit about you. This is a chance to give us your biography. Tell us who you are, how long you’ve been working with code and computers and in the WordPress space more specifically. You can go as far back as you like.

    [00:04:43] Olga Gleckler: Sounds great. I wanted to be a programmer at school, but I messed up with my education and turned out to be a marketer. Then I was a bit disappointed in marketing because you cannot promise to deliver something and actually deliver it. And I switched back to my previous passion to development, and become a developer like a self taught.

    And already nine years I’m working full time as a developer. And four years I’m contributing to WordPress. To find the WordPress community, it was a big discovery for me, and actually turning point for the whole experience, because WordPress is good, is great, and I liked it.

    When I discovered the community, I started to love it. And since Berlin in 2019, I joined marketing team and several other teams. I contributed to polyglots team, to training team, to support, I love support. And some other teams. And right now I am Core triage lead for 6.4. I was Core triage co-lead for 6.3 as well.

    I’m a maintainer for two components in Core, so I think I know a bit about how you can actually contribute to Core, and I still enjoying all the process.

    Apart from full time job and contribution, I also want to mention that I’m writing a fantasy book. It’s like a big deal for me. It’s a draft, but it’s another passion I carry on with myself all around the world.

    [00:06:25] Nathan Wrigley: That’s really interesting. So you’ve been involved in all sorts of different sides of WordPress. You mentioned there specifically that you joined the marketing team, obviously based upon your past history with studying marketing and things like that. But you found that that maybe wasn’t the best fit for you. And I guess that’s going to be part of the conversation today, is that there’s a lot of different places that you can contribute. And if you join a team and it doesn’t seem to be the right fit first time, that’s not a reason to give up, because there are just multiple different ways that you can contribute to WordPress, right?

    [00:07:02] Olga Gleckler: I love marketing. I cannot kick it out of me, and I still deeply involved in marketing team activities and most of my efforts I am making are between teams. For example, between marketing and mobile team, between marketing and Core team. It’s something inside me and I cannot kick it out, and I’m looking at Core tickets from the marketing point of view, and trying to find something significant, something to change, something to improve user experience, to deliver improvement and make a difference and impact.

    So, yes. I joined marketing team first and I’m still there, part of the marketing team, but I tried different things like in support, in polyglots. They are all very different and very important as well. So I poke around a lot, and finally I pluck up the courage, with help, and starting to contribute to Core team.

    [00:08:06] Nathan Wrigley: It sounds like on your journey you have dabbled in, you said, poking around, you’ve had a go at various different teams and you’ve obviously enjoyed that. In some of the show notes that you shared with me, you list out some of the different things. So you’ve been involved in several different teams, for example, polyglots, training, and you mentioned support and TV actually, which is kind of an interesting one.

    That gives us an idea of the different things that you can be involved in. There’s a whole range there, but I want to drive this message home. The idea that if you’re in the WordPress community, I think there is a perception that if you don’t code, you’re probably not going to be able to contribute. And I think it’s fair to say that you really don’t believe that. That’s just not true. You don’t have to have any coding skills at all.

    Now, clearly, if you’re tackling contributions where code is required, that’s probably different, but there’s loads of different ways that you can contribute. And I wonder if you wouldn’t mind just telling us about some of those different things. Some of the things that teach us that you don’t need to be a coder to contribute to the project.

    [00:09:17] Olga Gleckler: For example, Community team. Community team is handling all the organization processes for meetups, WordCamps, other events and supporting people. It’s a great and a big job for managers. People who are taking care about things. You don’t need to be a developer at all. You just need to manage things.

    And this is only one team, and we have more than 22 teams. We have security team. It’s a bit obscure because obvious reasons, but you can contribute to all other teams. For example, if you are teacher, you can contribute to training team. If you are purely WordPress user, you can contribute to a lot of teams.

    For example documentation and checking if things are clear, and documentation is actually following the actual result or not, or something needs to be changed.

    And users, just users without any experience in development can bring a huge value because developers are, we have such flaw because everything is working for us. We know how it should go, and it’s going in the right direction. And if you don’t know how it’s supposed to work, you can poke around a bit and discover some flaws, some doubts, some things which are unclear, and bring a huge value for the code itself.

    And apart from it translation. Polyglot team is your goal if you like to translate. And this is the way to improve your own understanding of English and your own language. Because if you are starting to translate, it’s become apparent, obvious that it isn’t easy to do. And you need to put your brain, your heart to this task at hand.

    And support also a good point for people who want to learn. Because if you, for example, can answer like one question from ten, you can make someone else’s day better.

    And in the process, you can learn more and more, and answer more questions, and improve your own skills this way. Just helping other people. And. This is only few teams you can contribute.

    And also TV. You can edit videos for other people. You can translate and make subtitles for these videos. You can of course review them.

    And the team everyone is just love right now is photo team. You can contribute your photos to photo directory and contribute this way. If you are a photographer you can contribute to WordPress your ideas in pictures. And of course, if you like looking at pictures, you can go and review these contributions. Because there are some rules, for example, people not, should not be present on these images, et cetera. So there are some rules about quality, et cetera.

    So we have a lot more abilities. It’s just top of things and we have a lot more.

    [00:12:37] Nathan Wrigley: There are, from everything you’ve just said, so many different avenues that you could go down. And I know, even though you gave us quite a list there, you’ve still probably only scratched the surface, and if you were to get into the weeds of those teams, I’m sure there’d be something for everybody.

    I have a question. It’s a bit of a personal question. And I’m really wondering why you do this. And the reason I’m asking that is because a couple of times in what you just said, you mentioned how it was good for your, your heart. If you like, it made you feel better. But also you said that it was helping other people.

    And so let’s, for example, say that you answer a support ticket, you’ve helped somebody out. You’ve taken them from a place of not knowing, to a place of knowing. So, why do you give up your time? What is it that you get out of it? That may be simply that it makes you feel good, you want the project to be better, so that you can be employed from working with WordPress.

    It may be that you just enjoy it, that you get to meet new people, attend events, go in any direction you like. I’m really curious.

    [00:13:37] Olga Gleckler: I think I love everything. I put my trust in WordPress. This is best choice there is. I believe in it, and of course I’m going to improve, to put back this Five For The Future of myself. To be able to work and use WordPress continuously, and improve it like it’s obvious choice for people who are working on it. And this is only one way.

    The second, I love all this gathering, all these people with passion. Open minded people and everyone is curious and want to learn and want to do something. And everyone is open and this is a safe environment. We’re all following code of conduct. So, it’s completely different space. Open source project. It’s blow minded. I think how it can change your mind and your perspective.

    And of course I got job proposal, previous one, because people know me in the community. And this one is also partly because what I’m doing, because I’m well known, a developer. So I was wondering, where is the technical interview? And I was told that there is no need for you, because we know that you are up to scratch already. So it was a good point.

    So people are amazing. You are improving your skills. You are getting understanding of your level in comparison to other people’s level. You can learn on their efforts and, for example, patches, examples, documentation, etc. So you are continuously improving yourself. A lot of reasons.

    [00:15:26] Nathan Wrigley: Yeah, there are a lot of reasons. Really interesting though. There’s obviously a lot of desire from you. You obviously enjoy the whole ecosystem and all of the different tendrils and spokes on the wheel. But also interesting to note that you’ve also done your career prospects no harm by contributing, because you get to the point where you’ve contributed enough that people are going to start looking for you as somebody that they can trust and rely on. So you kind of jumped over the hurdle of job interviews a little bit there as well. So that’s really interesting.

    Okay. Let’s move on to the, another part of the conversation, which is beginning contributing, how you might do that. Because I’m guessing that for some people, it may be that you hit the ground running and you decide, okay, I’d like to be part of the contribution community and you find the right project and you find the right thing to do immediately. But I’m also fairly sure that other people will get discouraged. They’ll perhaps jump in to the wrong part of the project, or maybe tackle something which is a little bit difficult. They can’t find the people to help them and so on. So I wonder if you’ve got any advice about that? Trying to contribute without getting discouraged.

    [00:16:40] Olga Gleckler: Firstly, you need to know what is your learning curve, what is best for you. Sometimes it takes some time to figure it out. For example, some people are purely reading documentation and they are fine with it. But some people need video recording, or they need like a leg up from mentor or just little help for like facilitators.

    And we are trying to provide all this to make it really easy. Right now, there is a barrier, yeah. But if you want to start to contribute to Core, for example, you need to go to new contributor chat. This is like bi-weekly meeting before the main dev chat. And it’s better to ask questions. For example, we are like going through the usual script, we are highlighting several documents and links you’re supposed to browse, but you can be stuck at any moment and actually these meetings are for providing help and we are there.

    I’m mostly present there to help if people are stuck. And you need to understand that asking questions, it’s normal state for everyone. We all are continuously asking questions, and there is no stupid questions, because everyone knows that sometimes it’s hard to begin. Or even you can miss something obvious, even if you are the smartest person in the world, you can miss something obvious, because it’s obvious for someone else.

    So, this is how you can start. But in addition to this, we started a contribute mentorship channel in the Slack. This is dedicated channel for contributor mentorship program. We just finished first pilot program when we took 13 people and they got their own mentors. But everyone else was hanging around, and facilitators like me was providing help for people and answering questions. Specific questions, like how to start, how to pick up ticket, what I should do etc. And if I am like with such background, what is better fit for me, etc.

    But as well, apart from this, you can just poke around and be present in usual developers chats, but it can take time. So to make things quickly, you need some help from people. And we are actually ready for help. And in the documentation, there is a list of people whom you can ask if you have questions and difficulties. I’m listed there as well. So people are actually writing for me in DM if they don’t like comfortable enough to write openly, and asking such questions.

    But if you want your question answered sooner, you can just go to Core channel in the Slack and ask this question openly for everyone to see. And this way you can contribute to other people’s success as well, because some people not ready to answer this, the same question, and they can see your question and pick up what was written to you. But you don’t need to jump in the middle of usual, regular chats. You need to wait until open floor if there is like a dev chat going on. So your question can be like, just be flooded with everything else which is happening. Or this is a release going on, no one will be able to answer your questions properly.

    [00:20:27] Nathan Wrigley: Yeah, that’s a good point. Timing is crucial. I’m just going to circle back to the mentorship program because I think that’s really interesting. So this is a new initiative, and it may be of interest to people who perhaps have thought about contributing, but have been a little bit unwilling or discouraged, or they had some bumps in the road and decided not to continue.

    Can you just tell us what that is, how that process works? And I know it’s new and I know you’re trying to figure it all out, but what is it? How does it work? My understanding is that you will be partnered, in certain teams, at least anyway, with people who have done the role that you’re hoping to do and can therefore sort of shepherd you for a period of weeks. Set the expectations for you, give you some advice about where to go for help and all of that kind of stuff. Have I more or less got that right?

    [00:21:17] Olga Gleckler: Yeah, it was a pilot, so we were just trying things. The plan for people was decided, how they can proceed. And we received 50 applications, but was able to take 13 people to partner them with mentors. Mentors were people with wide knowledge inside the community and contribution, but not exactly the match on person’s interests. This person was providing like general support. And actually it’s works great.

    They make contribution plans and providing feedback, what’s working, what is not working. And first two weeks mentees was doing learn courses. And I think 11 of them finished all courses. And then we started sessions, introductory sessions, for many WordPress teams. I had one introduction session for Core. It was also training team, polyglot team, support team, community team, and several other teams.

    So we put a lot of efforts and most of these sessions are recorded, so you can rewatch them. And this was only the first pilot try. So I think the next time we will do better. And we actually scheduled this to be finished next day after release. So our mentees was able to see the whole process of the release alongside with us, and take part in this.

    And several people actually contribute to Core. They made patches, they tested things. From our point of view, it’s a real success and we provided people ability to start quickly, and when there are dedicated people, it’s much easier to ask questions and get answers, and be oriented in this huge area. And because this mentees got an overview of the whole project, like general.

    They was easy to understand what will fit them better. If they like Core, or if they want to translate things, or if they are going to support. Actually, I think one guy answered 200 questions on the support, on the spot, yeah. I have much difference in answering questions. It’s actually takes time, but he went passionate about this, and it’s great.

    [00:23:43] Nathan Wrigley: You mentioned in the shared show notes that we’ve got together for this podcast episode well, I just think this is a lovely phrase, so I’m going to read it out. You wanted to talk about setting the right expectations and understanding of processes, and the fact that these are the key points to, this is the bit that I really like, joyful contribution. So I wonder if you could outline some of those things, some of the wrinkles, some of the expectations that you need to, not only have set for you, but need to set yourself. Because it may be that there are going to be bumps in the road, things that don’t quite work out.

    You may tackle something which ultimately never gets used, or you may think that you’ve created a solution, I’m thinking about coding in Core in this particular case, which then has an impact on something else. And so it needs to be iterated on over and over again. So I guess what we’re trying to say is, it’s not always going to be plain sailing. Not every contribution that you make might be used or suitable. But there are things that you think you can do to make sure that the process is more likely to work in your favour.

    [00:24:46] Olga Gleckler: Yeah, because it’s open source. We have a huge community and we are working together. And if you did something like your part, it’s a bit naive to expect that someone else will pick immediately, like next day. And everything will be done until Friday. It’s not happening. So if you know that things are taking time and can be more complicated than they look like in the first place, you can adjust your expectations and don’t expect your shiny new Core Contributor badge next morning on your profile.

    You will get this badge, but only when you’re patch, or testing involvement, or other contribution will be going to release. So you will get this batch after the release, right after. But still it takes time. So if you are like in a hurry, you need to adjust.

    And of course, sometimes people are creating a patch, like I’ve done everything and it’s not going anywhere. And they are becoming disappointing and interest is going away for contribution. So, what you should do if you did something and no one is paying attention, at least it looks like it. You need to understand that we have more than 8,000 open tickets. So, it’s a huge thing and we are continuously triaging these tickets. This is why we need continuously triage and component maintainers in the first place.

    So if you did something and no one is bothering about it, you should look if this ticket has an owner. Owner is not a person who is doing the patch. This is person who should care, who supposed to care, about this ticket and push it forward. If this ticket has an owner, ping this owner right in the ticket. I did this, please take a look and how we can proceed.

    And this ticket has no owner, you can’t ping component maintainer. Some components don’t have maintainers because we have a lot of components and a bit short in maintainers. What should you do? You can turn up on regular dev chat, wait until open floor, and ask about your ticket and what you want to do about this. There will be a lot of seasoned Core contributors around at this point, and your ticket will be noticed. If it will be like good to go further or you need to rework, it will be seen. But at least you will be starting in the right direction forward. So, you need to be a bit pushy about things to make them happen.

    [00:27:31] Nathan Wrigley: Yeah, I guess that’s a really interesting lesson, isn’t it? If you contribute something and it doesn’t either immediately get noticed, or you feel that it’s not being noticed, I think that’s interesting advice. There are different ways that you can make your voice heard, shall we say, and you’ve mentioned some of those there.

    You also wanted to point out that there are roadblocks in the timeline of WordPress, where if you submit, let’s say a patch to something, there are periods in the calendar where things are frozen. And so there are periods, for example, just prior to a release, when we get to release candidate one or beta one, where really, you’re probably best doing something else because there are freezes. You say that the polyglots team needs to be able to translate strings and things like that. So don’t know if you want to talk about that.

    [00:28:19] Olga Gleckler: Yes, sometimes people made something and turn it up, right before the release. And they are disappointed because their patch will not go to this release. Because we have schedule and schedule for the next release, you can easily look on the make wordpress dot org slash core slash 6 hyphen four, for example, right now for this release, and understand the process.

    So if, for example, you are working on enhancement or a feature, they need to be in the trunk before better one. Because it’s like a significant changes, and they need good testing coverage, et cetera. Big things needs to be, go first. If ticket has a keyword early, it should be even before beta one, like right after the previous release. It should be done quickly, because these things can impact a lot.

    And then there’s a release candidate one. If you are working on a bug or if you are anything have content change, it should be in the trunk for release candidate one. Because with release candidate one, we have strings freeze. This is time before release candidate one and actual release for Polyglot’s team to be able to translate this new, or changed strings, to their own languages and make WordPress great in their own language.

    People need time for this, and we have a huge amount of strings. If you will be starting to contribute to Polyglot’s team, you will start to understand that it’s also a big deal and a big job. So if you’re working on something, you need to fit your patch in this right moment and not after.

    And of course, your patch needs to be tested, your patch needs to be reviewed from coding standards, for possible regressions. Possibly you will need to rework some things, or make changes in supporting documentation. For example, each function has this description, yeah, documentation for this function.

    This is why WordPress is so great. It’s clear, good written documentation inside code. So everything should be fine before it will go to trunk, even if the thing is working itself. Sometimes you need to cover this code with unit tests and you need to take into account these things as well. Sometimes, most of the time, people are surprised about unit tests.

    And we have a huge coverage of the code and it’s actually great. It makes things robust. So if you fix some bug, you are covering this part of the code with unit test to be sure that this will not be happening again. And it’s actually great.

    [00:31:09] Nathan Wrigley: There are some places, probably it’s fair to say, which are better places to start. And again, in the show notes that you’ve shared, you’ve alerted me to the fact that it may be that you think something is going to be relatively straightforward. So again, we’re talking about bug fixes here. So we are talking about the code.

    But it may be that you submit something and it turns out to be more difficult. So what you suggest then is that there are some recommendations for where a new contributor might start. So perhaps not the best idea to find the most difficult and challenging thing first time around. And there is some guidance that you can give in terms of where to look and tickets that are marked in a certain way. So yeah, I wonder if you could get into that.

    [00:31:53] Olga Gleckler: Yes, sometimes ticket can be, look very simple, but can turn into a rabbit hole. For example, my best example so far is changing double equal to triple equal. It can bring a lot of regressions, and you will be browsing, trying to fix other things. And most likely this change will not be worth it. And it will be very difficult to convince everyone else that it’s actually worth doing. And, we will not have ten more bugs because of this one.

    So sometimes good new patch, like a feature or enhancement, works better. And robust piece of code, when you have like head or tail, it’s great. And we have tickets which are marked as good first bugs. So if you are browsing tickets in Core track, you can see these tickets by this keyword, by search, custom search. And you can even subscribe to this good first bug hashtag on Twitter and following these tickets.

    For example, if some ticket is not good for you. If you don’t like it or you don’t want to work on UI, for example, or you prefer some other stuff, you can be subscribed to this hashtag, and following along and see what is actually working for you. And start when there will be like right ticket for you.

    But this can be like a bit shock, because a lot of people are subscribed to this good first bugs, they can be taken and already someone else can make a patch. But another thing is that if there is a patch, it does not mean that you cannot contribute because you can review this patch, you can make improvement to this patch.

    You can collaborate with other people on this ticket and make it work, and be great and quick. So, don’t abandon some ticket if there is a patch. Work is not done with the patch, it’s just the beginning.

    [00:34:01] Nathan Wrigley: You also make a recommendation to look out for, I guess, if you’re beginning at least anyway, to look out for tickets where the scope is really clear. And you’ve also got channels for feedback.

    [00:34:13] Olga Gleckler: Yes, definitely. Because sometimes scope isn’t clear and it also can turn rabbit hole. So if you have any doubts about tickets, just any, like a tickling feeling inside your head that something is not actually right, you can turn up into the Core channel on Slack, and ask about this ticket.

    Seasoned contributors will look through and clarify things for you. It’s actually better than put up a lot of work and then turn out that something was wrong in the beginning with the ticket and approach is not working. So don’t waste your time, and be ready to collaborate on the ticket from the beginning with other people. And it’s what actually is working.

    If you are like staying alone and doing something, you can feel lonely and a bit abandoned, and then disappointed. But if you are open to conversation to other people and can receive help, you can provide this help as well. And we are all working on the final result, on WordPress, and it’s great.

    [00:35:23] Nathan Wrigley: I like the way that you’ve rounded off the show notes, because you make the point that whole process of improving WordPress is a continuous learning process. And you may feel that you’ve just provided lots of your time. Maybe your patch wasn’t used, or you ran up against something which you couldn’t work out for yourself, and you needed additional help.

    But you make the point that it’s okay, you know. It wouldn’t be wise to view that as a waste of time because even negative experiences, when you view them from a distance can often be helpful. You may learn something along the way. So negative results, negative experiences may also turn out with time to be positive experiences. And so I guess that’s kind of a nice way to frame it.

    [00:36:05] Olga Gleckler: Yeah, you can like cut out things that are not working and to make clear paths to things which are working. And then the result, everyone’s contributions count. No matter if you make patch and it wasn’t working, and someone else went and improved your patch and make some additional things. And another iteration, another approach discovered some other possibilities. Upon your negative result, they will be going forward.

    [00:36:37] Nathan Wrigley: Just before we round it off, I do wonder what your thoughts are. It’s very clear from everything that you’ve said that you’re very committed, you’re very keen. You love all this stuff. I wonder what the state of contributions is? I’m particularly thinking about things like the pandemic, for example. And whether or not that had an impact in the amount of time that people were able to give.

    My understanding is that contributions may have taken a little bit of a dip. I don’t know where we’re at right now. Obviously the program that you mentioned for mentoring earlier is a great way to encourage people, to get people back in. But I don’t know what the situation is. Are people contributing this year in the same way that they were, let’s say, five years ago? I don’t know if you have any data on that at all.

    [00:37:24] Olga Gleckler: I don’t think any data, but yeah, we had a drop in contribution when pandemic started, because everyone was distressed and we need to take care about our family, our health. So we went through this and not once, but several times having this thing.

    But right now I think we are on the right track. It comes down and we used to new things, and it’s actually turned to be better for everyone. Because, for example, employers understand that people are able to work remotely. And many people right now are working remotely. They got more time. They are saving time on this road to work and back at home.

    So they are keeping this time and they can contribute more easily. I’m an example for this because I’m working remotely all these nine years. This is why I was able to contribute at the beginning, because otherwise I wouldn’t have time. So I think pandemic, it was horrible, yeah, but it’s turned for the better. And right now we can do more. We can contribute more and we can be more flexible in what we are doing.

    [00:38:45] Nathan Wrigley: Olga, I think we’ll wrap it up there. But before we do, obviously, you’re very keen, and if your passion for contributing has rubbed off on somebody else, and perhaps they would like to talk to you before they jump in with both feet. I wonder if you wouldn’t mind telling us a little bit about where we can find you. That might be a website or a Twitter handle, whatever you like.

    [00:39:07] Olga Gleckler: I think best place to find me is on Slack. Why my name? Because there are several channels, I can put people in the right direction straight away. And because I’m almost always there. I just want everyone to join. But, yes, if you have problems with Slack, and it can happen, then you can reach me on Twitter, and I will be able to help you join WordPress org, create an account, etc. But, probably you can try it yourself.

    [00:39:42] Nathan Wrigley: Olga Gleckler, thank you very much for joining us on the podcast today. I really appreciate it.

    On the podcast today we have Olga Gleckler.

    Olga is a self-taught developer with many years experience. After initially pursuing a career in marketing, she turned back to her passion for programming and became a full-time developer. She has been contributing to WordPress for four years and is currently serving as the Core triage lead for version 6.4. In addition, Olga is a maintainer for two components in Core, and actively participates in various teams within the WordPress community. Outside of work, she is also writing a fantasy book, which is a significant personal project for her.

    Olga has tried her hand in various teams within the community, ranging from Polyglots to Training, Support, and more. She challenges the commonly held misconception that only coders can contribute to the WordPress project, highlighting the many different ways individuals can contribute without coding skills.

    During our conversation, Olga shares some examples of non-coding contributions that can be made to the WordPress project. We talk about the process of submitting patches and contributions to WordPress, discussing the schedule for releases, and the importance of understanding the processes and deadlines.

    Olga also emphasises the essential steps of testing, reviewing for coding standards, and ensuring correct documentation in order to make impactful contributions.

    Olga’s journey in the WordPress community has been very varied. She discusses how being a part of this ecosystem has improved her career prospects and gained her trust from others. However, she acknowledges that not everyone finds their place immediately, and may struggle to get started. She explores how to contribute without becoming discouraged, and shares her experiences in the mentorship program that paired mentors with mentees in navigating the WordPress community.

    Throughout the conversation, Olga shows a deep passion for the WordPress project and the collaborative nature of the community. She reminds us that contributing to open-source projects requires patience and persistence, and shares her insights on learning methods, seeking guidance, and asking questions in order to make progress.

    If you’ve thought about contributing to WordPress, but are not sure where to begin, this episode is for you.

    Useful links.

    Contribute Mentorship Program

    Learn WordPress

    WordPress 6.4 Development Cycle

    Polyglots Team

    WordPress Core Trac

    Olga’s Twitter

  • Thoughts on Translating the WooCommerce Plugin

    Last year on a podcast host Abha Thakor had a chat with three Woo builders as they shared their stories around translation, meetups and sustainability. It’s great to reflect on past conversations as we need to keep these important elements of WooCommerce moving forward.

    Translating WooCommerce as a plugin into your local language

    When it comes to the WooCommerce plugin, there are thoughts around the importance of translating it into local languages. For example, Simon Kraft from Germany weighed in on this.

    He started by stating that WooCommerce is similar to WordPress and any WordPress plugins because people often find their way around English strengths since English is the default in WooCommerce and many other plugins. But in cases like eCommerce, it’s very important to have that in your local language. This helps any user or developer to understand what you’re doing and find your way around a shop or a website. Luckily with WordPress there is a large community of volunteers pledging their time to translating enormous numbers of text to their local languages.

    Translations in German

    When it comes to Simon’s native language, German, he noted that they are a bit picky with having strange language strings in their websites and WooCommerce shops are no exception to that. Years ago when he started translating WooCommerce, he would find wrong or misleading translation, something that was translated with some automated software like Google Translate, but was not precisely on point in German. At that point he thought, “Hmm, we can do better than that.” So Simon moved over to the translation side of things and tried to fix it and not break stuff on my way there.

    Getting started on translating the WooCommerce plugin

    Vachan from India added how he started translating WooCommerce and how others can start. It started with his team and wanting to help the community. As a project translator the simplest way to do this is to go to the translation page on the WordPress official website. There you will be able to easily find what interests you in translation. Just select your language and you can select which project you want to work on. For WooCommerce, once you have chosen your language, search for it. There you will find a complete front end system where you can see what has been translated and what is pending.

    In most cases, there are two primary places where you can help contribute to the translation. The first is the stable version, which is actually live and people are using it. Secondly, there’s a trunk, which is the future release, the immediate future release. Both are equally important because the current version helps whoever is already installed and working on that to ensure it gets updated whenever the user updates their website. And of course, the trunk is for the future release.

    He goes on to say that working in both is a good idea. It’s about your fluency and how comfortable you are picking up any language. If you feel you’re confident enough to take any language, you can explore it. See what words, which phrases are requiring any translation and you can suggest that translation. And it’s as simple as just filling up that simple clicking on the word, clicking on that phrase and just in inputting your translated reply. That’s it.

    Do you need to be a WooCommerce developer?

    Vachan does not feel you need to be a developer. You just need to understand WooCommerce enough and have used it. It’ll help you because you understand where that phrase is being used. Because in some languages, what happens with the same word could mean something differently, such as a different context. So just being aware of the context is a good thing. You don’t have to be an expert in development as there isn’t any coding language required. It’s just the language you know. And understanding the context of where that phrase is going to get used in the software is important.

    Challenges of translation

    Everyone on the podcast gave a bit of insight to the challenges not only met with WooCommerce translations, but WordPress as well. Maja gave one example of translating a certain term like tab or field. Once this is done and you translate to a new deposit, this word in the glossary. For instance, if the tab is being translated into my language, if you go and Google that word in my language, you will not find anything actually that explains how to solve your problem. So it would be great if there would be a visual supporting articles explaining this or expanding on the glossary.

    Simon, when revisiting translating German, added that here are cases where stuff like that happens. In German, it’s not so bad because German and English are quite close to a certain degree. The main issue with German is that German words are very long in many cases. Because in German it’s grammatically sane to just chain words and have like donaudampfschifffahrtsgesellschaftsmützenfabrikant. That’s a valid word. It’s about a hat for a sea captain.

    So in many, many cases, it’s actually an issue to find a translation that fits the context. For example, you have a button somewhere and the button cannot be huge. So you have to find a fitting word that meets the context. That’s hard sometimes.

    When it comes to WooCommerce or any eCommerce context, translating with localizing the currency is important. WooCommerce, which is America-focused in many cases, we have examples in U.S. Dollars and similar currencies, which is perfectly fine. But if we translated for the German or European market, then we would replace those examples with Euros or Pound or whatever.

    Final Thoughts

    The overall conversation carried a theme as first mentioned. It is important for WooCommerce builders, who have the resources and capabilities, to get involved with helping to translate the WooCommerce plugin. From what I have seen, the growth of Woo is building in countries across the world and here at Do the Woo we want to help you to bring your translating skills to help that growth.

    Again, you can listen to or read the full transcript here of the episode Stories of Translation, Community and Sustainability with Vachan, Maja and Simon

    The post Thoughts on Translating the WooCommerce Plugin appeared first on BobWP.

  • WordCamp US 2023, Another Fantastic WP Memory

    Well, it was inevitable that I should post a recap of WordPress US. I am writing this after returning to my home and office in Porto on Monday morning, this being Thursday of the same week. And I’ll tell you, I am just starting to get over my exhaustion.

    The Trip to WCUS

    Flying back to the states, I loved the way over. No overnight experiences for me, and leaving at 7:30 am Porto time, arriving in National Harbor 7:30 pm EDT. Of course, during the flight I started with breakfast, then a drink and lunch and segued into dinner at some point which ended with a snack. Lot’s of food and can’t honestly remember when I ate what.

    I did meet a few friends when I landed, but by then I was pretty much half asleep. It was nice seeing my good friend Mark Westguard right off the bat.

    The first day in National Harbor

    Unlike my other WordPressers who were already there, the next day I was not part of the Community Summit nor did I have the desire to be a tourist in Washington DC. The latter did not tempt me with the heat or the sights.

    So I spent the day hanging around the hotel/convention center to make life easy. Now the Gaylord National Resort and Convention Center is enormous. And I mean freakin’ huge. It kind of reminded me of those large cruise ships, although I have never been on one. It’s set up quite well. You never really need to leave and everything is overpriced. But hey, that’s America, right?

    The morning I spent wandering around the grounds, inside and out.

    The other part of the day Mark and myself just did this and that. Lunchtime we went and had some drinks and nachos. After that we just roamed around the hotel and Mark was obviously delighted to find his logo with all the sponsors on the entryway to the conference center.

    Then we had Casey join us, Mark’s better half, and dinner time where at even more food.

    So after a day of local exploring, drinks and food, we did what any normal WordCamper would do. We went to a party, WP-Includes Summer Fest.

    Contributor Day

    The next day was Contributor Day. And guess what? It was amazing. So much so that I didn’t take one photo as I was busy listening and interjecting every once in awhile. But I did snag the group photo from that day just to share the all the groovy WordPressers who were part of that day. By the way, photo credit goes to Shusei Toda.

    WordCamp US, the Event

    As with most WordCamps, I find myself so busy connecting with old and new friends, and just being a happy WordCamper that I never take as many photos as planned. But, I do the best I can do.

    Of course, I cannot go without thanking my sponsors, A2 Hosting, Avalara, Hostinger, GoDaddy, Jetpack and Weglot. Oh, and yes, WooCommerce!

    Do the Woo, a Pseudo Sponsor

    And then this happened. My friends over at Multicolab were not able to use their sponsor booth. Anil Gupta was able to attend, but he had problems with getting his team over to the US. So his table sat unattended and barren.

    I had a chat with Anil as he is a good friend of mine, and also a past sponsor of Do the Woo. Long story short, I took over the booth and used it for the DTW hq at WordCamp US. So I had the opportunity to be able to do some podcasting as well as meet many of our listeners.

    Here is Anil sharing some thoughts on WordCamp.

    Here is my makeshift booth.

    And some of our podcast guests.

    And a very special podcast. Three WordPressers from the Spain WordPress community did a show, and they did it all in Spanish. What fun!

    As it so happened during contributor day, also at the event I didn’t get as many photos as I would have wanted. Was just too busy enjoying IRL conversations. But here are just a few more friends that I caught.

    What’s a Flagship WordCamp without Nathan’s head

    Now for those of you who know Nathan, you get it. For those that don’t, well I will add a mysterious moment to your life. A good friend and fellow podcaster of mine, Nathan’s head often shows up in the weirdest spots, or simply frightening people here and there. And the second day started out with just that.

    The After Social

    As with tradition of WordCamp US, the social at the end of the second day was at the Smithsonian Museum of Natural History. Quite the impressive museum. Now I am not a huge fan of museums. I could also say that it was mostly bones, stuffed or recreated animals, rocks and overpriced jewelry, but nonetheless it was quite breathtaking.

    A lot of people had a great time and it was also filled with conversation, laughter and yummy desserts with old and new friends.

    And what is a museum visit without posing as a museum exhibit.

    Of course my friend Miriam had to catch as I ventured into the fossil display where I discovered an old acquaintance, Joe the Tyrannosaurus. As I gently touch the bones of his neck on display, I pondered our prehistoric life together.

    It’s Why I Do What I Do

    In a nutshell, I do WordPress because of the community. And events like WordCampUS is like a moment of pure oxygen. So much laughter, conversation, hugs, food and drinks with old and new friends. I wouldn’t have it any other way.

    And I leave you with one last photo. As I was flying home, something outside my window reminded me of that museum. Can you guess what that is?

    Hope to see you at WordCamp Asia in 2024.

    The post WordCamp US 2023, Another Fantastic WP Memory appeared first on BobWP.

  • WordPress 6.3. My Heroes, the Release Squad and Contributors

    The last time I wrote a post on a WordPress major release on this blog was sometime ago, where I was doing more tutorials and education pieces here. A previous focus of the life of this blog, now archived into oblivion.

    But hey, can you imagine how many posts have been published and will still be published about 6.3? I cannot fathom that number.

    The release, the people

    I don’t have to tell you about the features. Nor do I really need to tell you about what makes this happen, and the incredible people who contribute their time and expertise to each release.

    Well, I lied. On the latter, I do have to tell you. Because every time that a major release comes out, and I head over to WordPress.org to see the post. It’s always fun to read about the jazz artist that it was named after, revisit the features, but I always stroll to the bottom to see my heroes first.

    The release squad and the contributors. And for each and every one of you, my sincere gratitude and appreciation for making this community what it is. Also, a big virtual hug.

    The post WordPress 6.3. My Heroes, the Release Squad and Contributors appeared first on BobWP.

  • Contributing to WordPress with Your Own Unique Skillset

    Here’s a tip for all WordPress and WooCommerce builders out there, who want to contribute with their own unique skill set: Don’t underestimate the power of effective communication.

    Whether you’re participating in a chat, leaving comments, or attending in-person events like WordCamps or meetups, it’s essential to remember that your words can have a tremendous impact. Words can hurt or heal. Clear and respectful communication can foster better understanding, collaboration, and innovation within the community. It can help you network, learn, and grow, even if you’re not a coder.

    And when it comes to experiences as a woman in this field, particularly about navigating and communicating in a traditionally male-dominated environment, here’s a small takeaway: Use your unique perspective to contribute to the conversation. Don’t shy away from asking questions or sharing your insights. The WordPress community is incredibly diverse, and your voice matters.

    This tip was shared by Birgit Olzem on a Do the Woo episode titled: Builder Tips from WordCamp Europe 2023 Speakers

    The post Contributing to WordPress with Your Own Unique Skillset appeared first on BobWP.