As the lead of the Selenium project, I wanted to kick off a new blog series leading up to the release of Selenium 4. During this series, I’ll talk all about how the Selenium project works, who is involved, how you—yes, you!—can get involved, and we’ll get a sneak peek at what’s new in Selenium 4. I've been speaking about this off and on for a while, but now the 4.0 release is looming I wanted to start sharing in more depth.
In this first post, we’ll start off with a brief discussion about how the Selenium project itself runs and who does what, because that’s a really helpful piece to understand how and why things happen the way they do on the project. In future posts, we’ll look at the new IDE, and then we’ll talk about Selenium 4 in more depth, including the fact that it should be a drop-in replacement for you. I’ll also review some new features that we’ve added to Selenium 4, and talk a bit about the modernized Selenium Grid. So let’s get started!
Selenium is an Open Source project. It's run under the aegis of the Software Freedom Conservancy (SFC). The SFC is a group dedicated to pushing forward Free and Open Source software. Besides Selenium, they have a handful of projects you may have heard of, including Samba, Mercurial and Git. The SFC allows us to focus on writing code and fixing bugs by handling all the legal and financial stuff we’re not good at. They’re the ones that help us negotiate contracts for when we want to run SeleniumConf, for example.
Acting as a bridge between the project and the SFC is the Project Leadership Committee (PLC). Currently, it’s made up of Jim Evans, Alexei Barantsev, Marcus Merrell, Manoj Kumar, and myself. What do we do? Effectively, the PLC is about providing a smaller group of people for the SFC to talk to when decisions need to be made about funding a conference, or how best to respond to sponsorship agreements. Because we like to do as much work in the open as possible, you can find us on the #selenium-plc Slack channel, and almost every conversation and topic is discussed here.
One of the key qualifications for being on the PLC is a demonstrated commitment to helping the Selenium project improve and succeed, and we recognise that the project is more than just “code.” It’s a community, and the make up of the PLC reflects that.
The Technical Leadership Committee (TLC) includes the people who set the technical direction for the project. If you come over to the Selenium Slack, you can find the #selenium-tlc channel, which is where a lot of the technical conversations happen for the project. The TLC includes Jim Evans, Alexei Barantsev, David Burns, Diego Molina, Titus Fortner, and me.
How do you get on the TLC? Although the project governance document goes into more detail, it can be summed up as simply as someone who’s demonstrated technical leadership on the project, over an extended period of time. Just as with the PLC, being on the TLC doesn’t give someone more authority, but they’re the ones who can merge PRs, and who can (if need be) commit directly to the tree.
Again, the TLC tries to do as much work as possible in the open. If you’re ever interested in watching the design discussions, or asking why a bit of the Selenium code base is structured the way it is, then come and join us in the #selenium-tlc Slack channel. There’s normally someone from the project there who’ll be able to answer your questions!
I wanted to share how the project works for one simple reason: to highlight one of the really important things with Open Source, which is that anyone can contribute! You don't need to be throwing code around in order to be contributing, and you don’t need to be special in order to contribute your time and effort.
So obviously there's the people running the projects and writing code, but we couldn't do that all on our own. Every release includes contributions from a variety of people, not just the core development team. Also, we're always happy to accept patches. If you're not quite sure where to start, I recommend you head to our GitHub page and take a look at the project tab. That’s where you can see the things that need to be done and what we're working on.
The other way to get involved is the way that everyone used to get involved with Open Source, which is by what's known as “scratching your own itch”. It's if there's something about the project, something about the product you think could be a little bit better, download the source, edit it, and then send us a PR.
We encourage you to get involved and contribute! On the Selenium website, there is a page that outlines in detail the steps to join the Selenium team. Join the Selenium Slack channel to interact with us and ask questions. If you want to discuss something, or if you don't understand why the code is written the way it is, feel free to come on to that Slack channel and talk to us. Also, if you'd like to see how the decision making is made, then please do feel free to come on to the #selenium-tlc or the #selenium-plc channels to see those groups. Because we're Open Source, we try and do everything in the open.
If you’d like to put faces to people’s Slack or IRC handles, then please note that there’s a regular team meeting every other Thursday on Google Meet at 4:30pm (UK time!) We tend to just chat and discuss everything from the project to the weather, but that’s a great way to get to know people a little better! :)
Finally, if you’re having trouble getting to grips with the Selenium code base, then please do come and ask us for help. We’ve done our best to make the on-ramp as easy to take as possible, but the project can seem complicated and daunting when you’re getting started. We’re here to help!
I hope you enjoyed this intro to the Selenium project. Next week, we’ll talk about why the major version bump to Selenium 4. Stay tuned!
Other posts in this series: