New Tricks in Selenium 4

Today, we’ll cover some details about the new tricks and capabilities that Selenium 4 offers.

In the third post in his series, Simon Stewart continues talking about what’s coming in Selenium 4 and reviews some of the tricks in the new release.

In my last posts, we talked about how to contribute to Selenium, and why we’re bumping the version number to 4. That’s enough preamble! Today, we’ll cover some details about the new tricks and capabilities that Selenium 4 offers.

Finding Elements, and Relative Locators

You know, finding elements on a page can be really difficult. I’ve seen loads of people using very complicated XPATH expressions, and trying to figure out complex CSS selectors and things like that. There have been whole talks about the subject at SeleniumConf. Surely there must be a better way to do this?

Think about how we describe where an element is on the page. Think about how you’d do this over the phone. You’d never talk about the raw DOM, “Ah, find the fifth DIV element nested inside the SPAN with an ‘id’ of ‘foo’”. You’d just never say that! Instead, you’d say something like, “just find that thing above that image, and to the right of that link,” when talking about where things are located on the page.

A long time ago, a project called Sahi started to locate elements like this. Sahi had Relation APIs, which are a lovely way of finding elements, and it was very, very fluent and pleasant to use. When I was starting WebDriver years ago, I was talking with Narayan (creator of Sahi) and I promised him that I was going to hold off implementing this flagship feature of Sahi. It was something that was lovely, but it was also something Sahi was rightly proud of. However, there are now other tools, such as Tyco, that are implementing this style of API, so it seems like the time is right to do the same in Selenium. In Selenium 4 we call them “relative locators.” You may sometimes see us refer to them as “friendly locators,” since the initial implementation called them that, but “relative” better describes how they work. We have a handful of them: near, above, below, left of, right of. They allow you to talk in human language about where an element is on a page.

Looking at the future, we are also planning to enable users to add new types of locators, not only on the, on the client side, but also to the Selenium Server. For example, although JS UI frameworks come and go (anyone else remember using jquery?), it’d be nice to be able to add a custom locator for the current tools people like, such as React.

Authenticating to Web Sites

One feature that people have been asking for since we started the project has been the ability to authenticate to a web site. Previously, you could do this by crafting the URL the browser went to properly, but this leaks credentials to any man-in-the-middle and leaves them in server logs, so browsers have slowly removed this piece of functionality. That’s unfortunate, since it’s something that we know people frequently need to do in their tests. In Selenium 4, we now offer a mechanism to register a username and password that can be used to authenticate against these sites.

Intercepting Network Traffic

A common complaint of Selenium tests is that they’re slow and flaky. While the bindings to the browser are excellent, and fully described by the W3C WebDriver spec, it is true that any end-to-end test is likely to suffer more flakiness than a simple unit test—there are just more moving parts, and more possibilities for things to go wrong.

One way to resolve this issue is to stub out the backend of the application, intercepting network traffic in the test and returning pre-canned responses. Tools such as mountebank make this easy for API testing. Wouldn’t it be nice if there was a similar tool for Selenium?

With Selenium 4, we now provide a mechanism to do this, using the NetworkInterceptor (well, that’s what we call it in the Java bindings). Pass it your WebDriver instance, and it’ll be called every time the browser is about to make an HTTP request, allowing you to return almost anything you want

The Chrome Debugging Protocol

As I mentioned previously, one of the nice things about Selenium 4 is our work to ensure a stable and modern user-facing API. What does this mean? To start, we need to acknowledge that after a long time there’s now competition back in the browser automation space. Notably in the form of Puppeteer and Cypress, and taking a step back, what do they offer? They build upon the Chrome DevTools Protocol (CDP)>, which is a protocol developed to enable a debugger inside Chromium-based browsers.

Because of what it was designed to do, it is a chatty protocol, and not a user-facing API that allows you to introspect into the browser. Worse, introduce a network hop between the test and the browser, this chattiness leads to slower tests as the network latency increases. That is why tools such as Puppeteer want you to run on the local machine. That’s great for the speed of an individual test, but makes parallelisation harder, as you can’t use services such as Sauce Labs easily.

To complicate matters, because the CDP is designed as a debugging protocol, it can change with no notice between versions. That’s why Puppeteer and Cypress are tied to specific versions of browsers, and that causes a dilemma for you as a test author: how do you test on multiple versions of a browser? Updating the test API to get a different browser can lead to you no longer making valid API calls. Not doing so ties you to a potentially outdated version of a browser.

Despite this, using the CDP opens up a host of possibilities, and that’s why we’ve added support for it in Selenium 4. In fact, some of our new features are built on top of it (though we hide the details!)

But we’ve also gone further that just adding basic support. Selenium 4 can support multiple versions of the CDP at the same time, meaning you can test with both the current and beta versions of Chromium-based browsers without needing to rewrite tests. We do this by providing an “idealised CDP”, which is stable and covers the features we feel tests need. If that idealised view of the world isn’t enough for you, we also expose the raw CDP APIs too, giving you flexibility to choose what’s best for your tests.

We’re feeding this experience into the new W3C WebDriver Bidi specification, which is helping make that a better fit for testers.

I am leaving out of this post all the details related to another important trick in Selenium 4, the new Selenium Grid, which I will cover in the next post. Stay tuned!

This was originally posted at https://saucelabs.com/blog/new-tricks-in-selenium-4

Public Project Meeting - December 03, 2020

Continuing the series of bi-weekly public project meetings…

Continuing the series of bi-weekly public project meetings, here is the timeline of the meeting held on December 03, 2020,5:30 PM CET.

Meetings are held on the #selenium-tlc channel on Selenium Slack.


Diego Molina 5:32 PM

So, things from the previous meeting

General project statistics

  • Previous meeting: 280 open issues, 62 open PRs
  • Current: 278, 60 PRs

Diego Molina 5:35 PM

here are the topics that we initially cover today:

Overall announcements? New people on committees, with the commit bit, etc?

Anything new to report from the last PLC/SFC call?

Pending work that needs to be done for the first Beta?

are we all around to start?

Simon Stewart 5:38 PM

@titusfortner @jimevans @p0deje @barancev @AutomatedTester @harsha509

David Burns 5:39 PM

I’m here

Diego Molina 5:41 PM

The first topic is: Overall announcements? New people on committees, with the commit bit, etc? I believe there is not much about this, right?

Simon Stewart 5:41 PM

Nothing from me

David Burns 5:42 PM

nope

Diego Molina 5:43 PM

Maybe, just for awareness of the meeting minutes, for the ones who read them we are doing a survey that will help with the future of Selenium https://twitter.com/SeleniumHQ/status/1333830343368077319

David Burns 5:44 PM

We’ve had nearly 400 respondents

Diego Molina 5:44 PM

and Boni García replied to it with https://www.mdpi.com/2079-9292/9/7/1067 I have not read it yet

David Burns 5:44 PM

if you haven’t retweeted the survey, could you do that please?

Simon Stewart 5:44 PM

I hadn’t seen the reply

Diego Molina 5:46 PM

Boni is the creator of WebDriverManager and a JUnit 5 extension for Selenium I think he is a professor at a university in Madrid

Simon Stewart 5:47 PM

I’m glad WebDriverManager exists

Diego Molina 5:47 PM

Alright, maybe we should have a read at that document and report our findings :slightly_smiling_face:

So, probably we can move to the next topic: Anything new to report from the last PLC/SFC call?

I think there was one call a couple of days ago

David Burns 5:50 PM

Main question: did someone follow up on my CoC request?

I did email again

and mentioned it to @mmerrell

Simon Stewart 5:51 PM

Monday is my next Selenium day. If no-one has responded by then, I’ll chase

Diego Molina 5:52 PM

ok, probably we can move to the next topic and circle back to this one if someone has more information

Pending work that needs to be done for the first Beta?

This is what we wrote/discussed in the previous meeting:

Client facing changes:

  • Make relative locators return elements sorted by proximity
  • Fix Java Module System problems
  • Allow locator strategies to be pluggable
  • Enable fallbacks for commands

Server changes:

  • Enable retries of commands where necessary using failsafe
  • Get the Grid UI looking nice, and returning useful data
  • Allow locator strategies to be pluggable
  • Pipe VNC connectors through the websocket plumbing for live video

I have on me the task to map this list into GitHub issues in case they do not exist (I have not done it yet)

Simon Stewart 5:54 PM

I’ve made relative locators return elements sorted by proximity

Diego Molina 5:54 PM

is there something else to add? do we have an status update on any item?

Simon Stewart 5:55 PM

My plan on Monday is to look at pluggable locator strategies

Which will require fallbacks for commands

David Burns 5:55 PM

I’ve been working with the Mozilla folk to add bidi support for Firefox, there are bugs on their side that they are working on

Marcus Merrell 5:55 PM

I’m sorry, @AutomatedTester , I never received an email about it. I don’t know if there’s a list I’m not on, or if my address is wrong, or if it went to spam, but I don’t have it

I’ll be glad to follow up if I can get the info

David Burns 5:56 PM

@mmerrell I emailed selenium@sfc

Marcus Merrell 5:56 PM

Right… guess I need to verify that I’m on that

Simon Stewart 5:58 PM

You should be.

Diego Molina 5:59 PM

Which will require fallbacks for commands I am sorry I never found the time to check your branch and work on it

Marcus Merrell 5:59 PM

I haven’t seen any of the sponsor emails either… starting to think there’s a problem

Diego Molina 6:02 PM

ok, so I believe we don’t have any more comments for this?

Simon Stewart 6:02 PM

Not from me

(Looks like a short meeting today, he says. Jinxing it)

Alexei Barantsev 6:04 PM

as for the beta1, I’m going to add commands getAriaRole and getAccessibilityName and I call java api complete

Diego Molina 6:05 PM

perhaps the last thing to mention is that I have pending to fill out the table about who has access to the distribution engines (npmi, sonartype, etc…) so the idea is that I will make sure we all have access to all of them

Simon Stewart 6:05 PM

Speaking of which, we really do need to push a JS release

Anyone want to volunteer for that?

David Burns 6:05 PM

If it’s not done this evening I will do it

about to take youngest to ballet so will be out for a few hours

Alexei Barantsev 6:06 PM

I’ve enabled GitHub integration in sonarcube, so it should sync org members and provide access

Simon Stewart 6:07 PM

That’s nice

Thank you

Diego Molina 6:09 PM

well, so I think that’s it for this meeting, right?

Simon Stewart 6:10 PM

I think so

Diego Molina 6:11 PM

ok, then, thank you all!

Titus Fortner 6:49 PM

Sorry to miss; I was giving training. Also, I miss getting to travel for these; Zoom is just not the same…

Titus Fortner 7:02 PM

I haven’t looked, has the print pdf endpoint been added to all the bindings? I haven’t looked in past 2 weeks, but Ruby & .NET needs to implement FF Full Page screenshot, Java (.NET?) need to be able to tell Firefox to take a full Page Screenshot when using RemoteWebDriver Java & Ruby need to re-fix the STP browser name

Ruby stuff was on my to-do list, until my paid work job gave me a daunting task with a short timeline

Jim Evans 7:04 PM

.NET hasn’t added print-to-pdf yet.

nor full-page screenshot.

Titus Fortner 7:06 PM

on that note @barancev I couldn’t duplicate the Ruby Remote Firefox bug on Mac, and VirtualBox appears to be a disaster running on Mac because I can’t even get it to play nicely with a Linux install to test it there. NET read timeout is often a random network problem, but it looks like we’ve been seeing the error consistently, so I’m concerned about it being a real problem. @p0deje do you have a linux machine available to see if we can replicate locally?

Alex Rodionov 9:35 PM

@titusfortner Not really and frankly I don’t have spare time to set it up to investigate

Speaking of which, I’ll be leaving for a 1 month road trip next week and I won’t be able to do any Selenium work during that time. Likely till early February in fact. If there is anything I can do before that, please let me know.

Titus Fortner 9:39 PM

@p0deje when do you leave?

Alex Rodionov 9:40 PM

Next Wednesday

Titus Fortner 9:45 PM

oof, well I’ve been assigned to create and give 20+ hours of classroom training on Selenium for a client between now and EOY, and I have maybe half of that right now :) I should be more available in January to help, but I’ve spent more time with the Selenium java code than Ruby code recently, so I’m not sure how we have the DevTools stuff implemented. @twalpole what’s your availability this month? :-D

David Burns 9:49 PM do we have people to do releases for ruby with @p0deje away?

Alex Rodionov 9:50 PM

According to https://github.com/SeleniumHQ/selenium/issues/8168, a currently missing CDP stuff in Ruby is: Intercept network requests allowing to mock backend requests Bootstrap script Record traffic The first two I believe are implemented in Java so it should not be hard to redo it in Ruby. I might give it a shot this weekend. The latter I think is missing in all bindings. @titusfortner we can hop on pairing session and I’ll guide you through the code. Otherwise, it all lives in devtools directory

@AutomatedTester Yes, Titus can do releases

David Burns 9:52 PM

don’t forget that @rajendra can help, BS is a ruby shop so we can help

he’s been looking through the code for the devtools stuff and is working the print stuff

Titus Fortner 10:02 PM

I’ll have bandwidth to do a release, but not to dig through the implementations until January :)

Public Project Meeting - November 19, 2020

Continuing the series of bi-weekly public project meetings…

Continuing the series of bi-weekly public project meetings, here is the timeline of the meeting held on November 19, 2020 (times are on IST).

Meetings are held on the #selenium-tlc channel on Selenium Slack.

The next meeting will be on December 03, 2020,5:30 PM CET.


Simon Stewart 9:53 PM

@diemol are you running today’s status update?

Diego Molina 9:55 PM

I can do that I always forget because the event has no notifications

let me look for the agenda Some numbers before starting: Previous meeting: 281 open issues, 61 open PRs Current: 280, 62 PRs

Simon Stewart 9:58 PM

I’ve added a 30 minute reminder to the meeting in Google Calendar

Diego Molina 10:00 PM

From previous agendas, I believe these could be the topics:

  • Overall announcements? New people on committees, with the commit bit, etc?
  • Anything new to report from the last PLC/SFC call?
  • Pending work that needs to be done for the first Beta?
  • Users/passwords, access keys, etc… to distribution and release repositories.
  • CoC, next steps?

10:00

Feel free to add topics

10:01

Should we start? pinging @AutomatedTester @titusfortner @harsha509 @jimevans @manoj9788 @mmerrell @barancev @p0deje

Sri Harsha 10:04 PM

m in

Simon Stewart 10:04 PM

Here!

Diego Molina 10:05 PM

First topic: Overall announcements? New people on committees, with the commit bit, etc?

David Burns 10:05 PM

here

Simon Stewart 10:06 PM

We really need to agree an emoji for “I’ve nothing to say”

:shushing_face: maybe?

David Burns 10:06 PM :speak_no_evil:

Diego Molina 10:06 PM

:speak_no_evil:

Simon Stewart 10:06 PM

I like that We shipped 4a7 Nice work, everyone

Diego Molina 10:08 PM

ok, let’s move to the next topic :slightly_smiling_face:

2nd topic: Anything new to report from the last PLC/SFC call?

Simon Stewart 10:09 PM

I missed it

David Burns 10:10 PM

There were notes from @jimevans re: a meeting at the end of October, was that the last SFC?

https://seleniumhq.slack.com/archives/C013TSZD4P5/p1604415853013000

Diego Molina 10:12 PM

right, I remember that, probably that covers the topic then, next one :slightly_smiling_face: 3rd topic: Pending work that needs to be done for the first Beta?

Simon Stewart 10:13 PM

There’s a lot. Mostly in Java I think we should all get together at some point and figure out how closely our CDP-based functionality aligns I think it’s pretty close, but I know that there are few things that @jimevans did that I’d like “take inspiration” from

David Burns 10:14 PM

Can we get things documented since you can be a bottle neck due to life. How can we, being my team, help here?

Simon Stewart 10:14 PM

  • lient facing changes:
  • Make relative locators return elements sorted by proximity
  • Fix Java Module System problems
  • Allow locator strategies to be pluggable
  • Enable fallbacks for commands

10:16

Server changes:

  • Enable retries of commands where necessary using failsafe
  • Get the Grid UI looking nice, and returning useful data
  • Allow locator strategies to be pluggable
  • Pipe VNC connectors through the websocket plumbing for live video

@AutomatedTester ^^ I documented them :stuck_out_tongue: CDP for Firefox would be handy too

David Burns 10:17 PM I am going to start CDP for Firefox tomorrow

Simon Stewart 10:17 PM

Are there docs on how to find the ws address to use?

David Burns 10:17 PM

No… I will document it

Diego Molina 10:17 PM

we really need some sort of docs to have a decent feature parity across bindings

Titus Fortner 10:17 PM

does all the CDP stuff work for Edge as well right now? I haven’t tried anything but Chrome so far

David Burns 10:18 PM

I have a “try” build of geckodriver with it that I need to play with

Simon Stewart 10:18 PM

The Java stuff works for edge too

Titus Fortner 10:18 PM

I was doing a brief analysis of some things for a talk I was giving, and we implemented features in Selenium 3 at very different versions between the bindings. Kind of surprised me :)

Simon Stewart 10:18 PM

Heh. Jari was fast :slightly_smiling_face:

David Burns 10:19 PM

misses Jari

Diego Molina 10:20 PM

do we have GitHub issues for the items missing for beta?

Jim Evans 10:20 PM

those notes were from the 3 november call, which was the last PLC call (they only happen monthly)

Simon Stewart 10:20 PM

Most of those things are in the project plan, @diemol

Jim Evans 10:21 PM

so there’s a bug in .NET alpha7 that prevents the bindings from working with grid 4. (it’s fixed now)

Titus Fortner 10:21 PM

I mentioned recently that Java & Ruby don’t have the right STP name still in 4 alpha and .NET & Ruby both need to add support for full page screenshots in Firefox. Not sure what list that needs to get added to? (I’ll try to get to the Ruby stuff this weekend)

Jim Evans 10:22 PM

print-to-pdf end point?

Simon Stewart 10:22 PM

@jimevans I think the check in the java bindings may be a little too extreme, so we may need to loosen things there too @titusfortner good point. The STP thing is irksome. I need to dig into it

Jim Evans 10:23 PM

sorry i’m late to the party, btw. was spending a few minutes with P this morning before her first client.

Titus Fortner 10:23 PM

I tried to fix it in Java, but I was missing pieces. Someone who knows what they are doing, should be easy

Simon Stewart 10:23 PM

It’s not easy If it was, I’d have fixed it already :slightly_smiling_face: Or @barancev would have

Titus Fortner 10:23 PM

STP went from “Safari” to “Safari Technology Preview” back to “Safari” I changed Ruby to the longer version when I thought I was using the latest STP (I was not)

Simon Stewart 10:24 PM

I think I need to tease apart the two versions of the browser more

Titus Fortner 10:24 PM

I think we just need to support the latest version

Simon Stewart 10:24 PM

I’ll have a chat with folks here to figure out the Right Thing to do

Jim Evans 10:24 PM

i want .NET to undergo a radical refactor in its class structure before 4.0 releases. now that we have a web standard, the current class hierarchy is wrong.

Simon Stewart 10:24 PM

Yeah, just the latest version

Jim Evans 10:24 PM

well, not really “radical,” but definitely a change

Simon Stewart 10:25 PM

@jimevans we really need to find a way to get someone helping you with the .net stuff

Jim Evans 10:25 PM

nothing breaking, API-wise. with .NET 5 being out, it should be a fair sight easier.

Diego Molina 10:27 PM

We can spread the word about the help we need in the different bindings, either for refactoring or reaching feature parity if we have those changes described somewhere, ideally a GitHub issue. Then we could tweet or something, saying we need help with this issue.

David Burns 10:28 PM

Well… I have an idea I would like to share towards this but I can do that at another time unless now is a good time

Simon Stewart 10:28 PM

The Java module stuff is obvious if you use java modules

Jim Evans 10:28 PM

so, right now, the .NET class hierarchy is RemoteWebDriver (implements IWebDriver et al) -> all browser-specific drivers. what it should be is abstract class WebDriver (implements IWebDriver) -> RemoteWebDriver, and also abstract WebDriver -> browser specific drivers. if i’m clever about it, this will not be a breaking API change, because IWebDriver is still A Thing™.

Simon Stewart 10:28 PM

Just like the java 8 issue was

Diego Molina 10:29 PM

Please share, @AutomatedTester

Jim Evans 10:30 PM

my ${paidWork} project is approaching a bit of stability, so i should be able to devote some time between now and the end of the year, hopefully.

Jim Evans 10:30 PM

my ${paidWork} project is approaching a bit of stability, so i should be able to devote some time between now and the end of the year, hopefully.

David Burns 10:31 PM I would like to, with support of this group, see about creating a Yak Day. The idea is, and it requires a bit of upfront work, to get issues in place for this and then see if we can get contributors

Jim Evans 10:31 PM

the idea in Selenium 5 is to start phasing out the use of IWebDriver in favor of using the abstract base class.

David Burns 10:32 PM

it would also require that I, or others, do a “How to contribute” video to share before hand

Jim Evans 10:32 PM

(sorry for the parallel idea-spewing into the channel, but i’ve been thinking about this, and not really talked about it to anyone outside the multiple voices in my own head.)

David Burns 10:32 PM

and if we split it accordingly to language bindings and services we can see if we can try build out a bit more support for each langauge and may get us more contributors.

Simon Stewart 10:33 PM

There’ll be hoops I need to jump through, but I can jump through them to make that happen

David Burns 10:33 PM

I appreciate it can flood us with junk and we would need to work out to how to prevent that

Simon Stewart 10:33 PM

I’ve got some half-written docs for building with bazel for selenium.dev too

David Burns 10:33 PM

but the general gist is create tiny bits of work to build up contributors

Titus Fortner 10:34 PM

So, I don’t know what everything that is on the lists mentioned above entails, but I do want to put in a generic plug that we make sure things absolutely need to be in 4.0. If we can release something “good enough” to iterate on through 4.x releases, it’s going to be *much better than a super polished codebase that isn’t released for another 6 months.

Diego Molina 10:34 PM

that would be really great

David Burns 10:35 PM

I agree @titusfortner, while we are in alpha we have a limited usage group but we have finite resources so its a fine line to tread

Titus Fortner 10:36 PM

nope, totally understand; we’re all volunteers and such. just requesting we keep in mind that perfect is the enemy of releasing something that makes current users lives better

Simon Stewart 10:36 PM

After 4.0 ships, I’m going to be stepping away I’ll probably stay involved with WebDriver Bidi, but I won’t be cutting code

Diego Molina 10:37 PM

no no, you cannot leave us alone with bazel :smile:

Titus Fortner 10:37 PM

Yeah, I get that this is a factor for sure :)

David Burns 10:37 PM

Bazel isn’t that scary

Titus Fortner 10:38 PM

isn’t the point of bazel that we shouldn’t have much issue with it once everything transitions? :-D

Simon Stewart 10:38 PM

I’ll still be hacking on bazel

David Burns 10:38 PM

I’ve been contributing to that community recently… going to overtake @simonstewart knowledge soon :smile:

Simon Stewart 10:38 PM

One can only hope

Jim Evans 10:39 PM

bazel is fine… as long as your language and toolset’s opinions don’t conflict with bazel’s

David Burns 10:39 PM

@jimevans I’m finding that works with all languages… but that’s an aside

Simon Stewart 10:39 PM

@jimevans I want to see better .net support in bazel What I need is a) time, b) a Windows machine

Jim Evans 10:40 PM

well some languages’ tooling are more opinionated than others. (see: MSFT is all in on MSBuild, and any other build tool will always, always, always be a second-class citizen.)

Diego Molina 10:40 PM

Can the project buy you one?

Jim Evans 10:41 PM

@simonstewart i’ve had remarkably good luck using VMs and VMWare Fusion.

Simon Stewart 10:41 PM

My hard drive is currently stuffed with multiple versions of macOS.

Jim Evans 10:41 PM

like, that’s been my exclusive .NET dev environment for going on 8 years now.

Simon Stewart 10:42 PM

Once I get more storage, I can try a VM again

Diego Molina 10:42 PM

but ok, to the topic, which was Pending work that needs to be done for the first Beta? I believe we have commented the most of it

10:43

I will go through the meeting minutes and then create GitHub issues if I don’t find any for the items mentioned

Simon Stewart 10:43 PM

For me, “beta 1” means “this is what you’ll get in 4.0, but there are known issues”

Jim Evans 10:43 PM

.NET needs to add the “make CDP user scenarios easy” methods to be added.

Diego Molina 10:43 PM

and I will ping you to add details about it

Jim Evans 10:44 PM

yikes that’s atrocious grammar. but you get my meaning.

Diego Molina 10:44 PM

should we move to the last two topics? we have 16 minutes left

David Burns 10:44 PM

go for it :slightly_smiling_face:

Diego Molina 10:44 PM

4th topic: Users/passwords, access keys, etc… to distribution and release repositories. So, recently @AutomatedTester & me got access to the project to release Java, but in general, if we ever need to do a release and the key folks are missing we do not have access to this information

Jim Evans 10:45 PM anyone who wants access to the nuget repo, create a nuget.org account (requires a “microsoft account”), and let me know. i’ll add you to the organization for selenium.

Titus Fortner 10:46 PM

who owns email access to selenium.dev? I think we should get a project email/password for these things instead of each using our own?

Sri Harsha 10:46 PM

i got access to npm selenium-webdriver package

Diego Molina 10:46 PM

for example, we were able to get access to the npm org recently, so @harsha509 could do a JS release

David Burns 10:46 PM

and we got access for NPM :wink:

Diego Molina 10:46 PM

I thought we could be more proactive in this and not wait until we need the person to share the access.

Titus Fortner 10:47 PM

I mean, if people sign up for rubygems and send me their email, I can add them to the list of authorized users; but might scale better if there were a lastpass/onepass/whateverpass that stores universal credentials…

David Burns 10:47 PM

The only place I can think of is nuget python has a few people but we can add more. The other place is Google Storage, do we have enough people with access there?

Simon Stewart 10:49 PM

I’ve got Google Storage. @jimevans does too. I think Luke may still have the keys.

Diego Molina 10:51 PM

I believe it is a matter of someone doing the work and going one by one to give access to the TLC to all what we need. I can find some time to do that

10:52

ok, then the last topic 10:52 CoC, next steps?

David Burns 10:53 PM

CoC is waiting on SFC/PLC to reply to my message I should follow up I have found a contractor, ex-head of D&I from Mozilla, to help do the work

lukeis:indeed: 10:55 PM

yeah, i still have the google storage keys… tucked away in an archive i put in my personal google drive :grimacing:

Simon Stewart 10:55 PM

I’ve put together a quick Google Doc for folks to add their names to for access to release pathways.

David Burns 10:56 PM

thanks @simonstewart!

lukeis:indeed: 10:57 PM

we got rid of the google app-engine driving seleniumhq.org right?

Simon Stewart 10:58 PM

I can’t remember where we deploy selenium.dev to It may still be app engine

David Burns 10:58 PM

selenium.dev is on github pages

Diego Molina 10:58 PM

We use GitHub Pages

David Burns 10:58 PM

via Hugo

Simon Stewart 10:59 PM

https://github.com/SeleniumHQ/seleniumhq.github.io/blob/dev/.github/workflows/deploy.yml#L26 .github/workflows/deploy.yml:26 uses: peaceiris/actions-gh-pages@v3 https://github.com/SeleniumHQ/seleniumhq.github.io|SeleniumHQ/seleniumhq.github.ioSeleniumHQ/seleniumhq.github.io | Added by GitHub

lukeis:indeed: 11:00 PM

yeah, the sehq app engine still exists… and the dashboard seems like it’s still getting some kind of requests (very few) wonder if it’s still handling some redirects

Diego Molina 11:02 PM

it should be mostly redirects I need to leave, but thank you all for joining!

Titus Fortner 11:02 PM

Thanks @diemol!

What’s Coming in Selenium 4: Why The Major Version Bump?

Let’s start talking about Selenium 4 and what’s coming. One thing I think I should clear up is “why the major version number bump?”

In the second post in this series, Simon Stewart continues talking about what’s coming in Selenium 4 and why this release has a major version bump.

In my last post, I shared a bit about how the Selenium project works overall. Now, let’s start talking about Selenium 4 and what’s coming. One thing I think I should clear up is “why the major version number bump?”

Sometimes I joke that the major reason for the version number bump is that while the digits of Pi are infinite, when we went from 3.14 to 3.141, people got a little bit upset. Moving to 3.141.5 and then 3.141.59 was as far as we wanted to push that particular idea :)

More seriously, the first reason is that we have a revised Selenium IDE. Years ago, this used to be Firefox only because it used the XPI extension mechanism (which was specific to Firefox). It’s now a web component, and you can download it for Chrome, Firefox, and anything else that supports Web Components. There is currently work to rewrite it as an Electron app, which will allow us to make better use of the native OS the IDE is running on. That work was largely pushed forward by developers working at Applitools. They started from a base of the original Selenium IDE that had been migrated to use Web Components by a company called SideX. It’s been a fantastic example of the community working together well.

Secondly, we have fully adopted the W3C WebDriver protocol, and have dropped support for the original home-grown wire protocol. The way that Selenium communicates with a web browser is via a wire protocol that’s effectively just JSON over HTTP. Originally this grew organically as we figured things out, and we tried to make browsers do what we needed them to. That original protocol is known as the JSON wire protocol because it spoke JSON over the wire (and we’re not great at coming up with very original names).

That original protocol was the base for the W3C WebDriver protocol, which smoothed some of the rough edges, and brought some much needed consistency to the protocol. The two major areas the standardised protocol improved on included session creation, where we removed considerable ambiguity, and by providing a far richer API for specifying user actions.

So what does this adoption of the W3C protocol mean for you? I’ll be honest: it probably doesn’t mean much to you at all. If you’re using a modern browser (released over the past couple of years), you will find that actually you already speak the W3C protocol with Selenium 3.

So who does care about the protocol dialects? When we talk about companies like Sauce Labs who provide Selenium as a service—they care about it. The ecosystem is ready for this next step, because the technical folks at these companies have ensured that they understand and comply with the W3C protocol, and folks from the Selenium project have been there offering help and advice as needed.

One of the other nice things about Selenium 4 is that we’ve done our best to ensure a stable user-facing API. That means when you upgrade your project from Selenium 3 to Selenium 4, it should be a drop-in upgrade. You just change the version number, recompile and you should be done.

There are a few caveats that you should be aware of, however! The major one is that if in the last version of Selenium 3 a method was deprecated, it’s now probably gone. We’ve taken the opportunity of a major version bump to delete them and clean up the behind-the-scenes internals people don’t normally get to see. If you’re a software developer, you may recognise this as us paying off some of our technical debt :)

Stay tuned for the next post, where I’ll go over some new tricks in Selenium 4.

This was originally posted at https://saucelabs.com/blog/whats-coming-in-selenium-4-why-the-major-version-bump

What’s Coming in Selenium 4: How Can I Contribute?

As the lead of the Selenium project, I wanted to kick off a new blog series leading up to the release of Selenium 4.

In this new blog series all about the upcoming release of Selenium 4, Simon Stewart will cover how the Selenium project works, who is involved, how you can get involved, and a sneak peek at what’s new in Selenium 4.

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!

About the Selenium Project

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!

This was originally posted at https://saucelabs.com/blog/whats-coming-in-selenium-4-how-can-i-contribute

Browser Testing and Tools WG Meeting @ TPAC 2020

Browser Testing and Tools WG Meeting @ TPAC 2020

It’s that time of the year where working groups from the W3C meet up to discuss the various standards that are being worked on.

Within the Browser Testing and Tools Working Group, there are 2 different standards.

We have:

The first is what is commonly supported by the Selenium Project and has support from Apple, Mozilla, Microsoft, and Google in their browsers. It is also supported by various Selenium in the cloud providers like Sauce Labs and BrowserStack.

As the world has moved on we have felt the need to add new APIs and move Selenium to be more event-driven. This is where we are learning, and collaborating, with projects like Puppeteer to make sure that we can improve the Browser Automation space. This is where the WebDriver-Bidi Specification comes in. It has broad support from the browser vendors so you can use official browsers and not be limited by the JavaScript sandbox. Some of the newer frameworks can’t guarantee that.

If you’re curious about we discussed this week, feel free to read it up on the W3 Wiki.

This post was originally shared on David Burns’ Blog

Public Project Meeting - October 08, 2020

Continuing the series of bi-weekly public project meetings…

Continuing the series of bi-weekly public project meetings, here is the timeline of the meeting held on October 08, 2020 (times are on IST).

Meetings are held on the #selenium-tlc channel on Selenium Slack.

The next meeting will be on October 22, 2020,5:30 PM CET.


Diego Molina 9:03 PM

Perhaps the main topics to discuss are these ones: Anything new to report from the last PLC/SFC call? Pending work that needs to be done for Alpha 7?

9:03

anything else that we need to talk about?

Simon Stewart 9:04 PM

Also paging @mmerrell and @manoj9788

9:05

Not much to share from the PLC call this week

9:05

Tentative thoughts about where we might be able to host SeConf next year, and puzzling out whether we can meet in person

Marcus Merrell 9:05 PM

here now

Simon Stewart 9:06 PM

@mmerrell can give more of an update

Marcus Merrell 9:06 PM

if I understand it correctly, we have ~$40,000 tied up with the Chicago venue, and it would be the path of least resistance to hold it there

9:08

we’ll start meeting around the first of November to start planning something there… I’d much rather hold it in the EU, but with the loss of White October, we’d need to a) find an organizing entity, and b) be prepared to pay ~double what we paid WOE, and only have a conference of half the size (i.e. we’d likely lose $$). We’ll need to decide whether or not it’d be worth it

Diego Molina 9:12 PM

if we plan ahead of time, and things are ok in terms of covid, it can happen in the EU, we have contacts here. We could ask orgs that have conferences like Agile Testing Days to give us a hand. Just throwing ideas here.

9:13

Or the folks at MoT

9:13

Next topic?

Simon Stewart 9:14 PM

Sure

9:14 Alpha 7 talk?

Diego Molina 9:14 PM

Yes

Simon Stewart 9:15 PM

@jimevans is working on the CDP stuff for .Net

9:15

I’m busy implementing some of the nice features we’ve wanted for a while (including things like script pinning)

9:15

I know that @AutomatedTester has mostly wrangled Python into shape with the CDP stuff

Diego Molina 9:15 PM

We have the PRs for the queue, which I reviewed but it’d be nice if you have a look again, Simon

9:16

(grid)

Simon Stewart 9:16 PM

But I don’t know if it supports multiple versions

9:16

I can have a look at them tomorrow

Diego Molina 9:16 PM

Specially 8754, not sure about using two concurrent arrays there

9:17

Aside from what you mentioned, and the PRs for the queue, I think we are good for Alpha 7

Simon Stewart 9:18 PM

Aye

Diego Molina 9:19 PM

sooo, I think we are done with the meeting?

Simon Stewart 9:27 PM

I think so

9:27

Unless there’s anything else people want to talk about ?

Diego Molina 9:36 PM

Doesn’t seem like that Thank you everyone!

SeleniumConf Virtual 2020 Recap

Quick recap of the recent Selenium Conference held virtually

This year the Selenium Conference was held virtually, and despite that, the conference was again that exciting place where the Selenium community meets every year to share and learn about the most popular browser automation tool in the world. The conference offered talks about improved testing practices, new tools to simplify the setup of automated tests, the future of Selenium, and lots of learnings from speakers who shared their use cases and practical advice for how they use Selenium at work.

Here are some takeaways and interesting talks from this year’s conference:

Selenium: State of the Union

A peek at the upcoming Selenium 4 release was possible thanks to the demo Simon Stewart gave during this traditional talk that happens in every Selenium conference. Selenium 4 is shaping up nicely and will leave the Alpha state soon. We are all looking forward to the betas, and a candidate release shortly after that. The talk also invited other members of the Selenium team to share the organizational work they have been doing in the project, including diversity, governance and welcoming contributors.

Build a responsive typescript wdio framework

Varuna Srivastava gave a talk together with Wim Selles that showed how to build a robust and scalable framework for UI testing, based on WebdriverIO. It showed concepts that are important when getting started with JavaScript, NodeJS, and the NPM ecosystem. Furthermore, there was a broad overview of WebdriverIO and its shiny features, as well as a demo on how to use TypeScript for testing. This is a recommended talk for anyone who wants to get started on testing with JavaScript.

To Test and monitor one website is not that hard, but what if you need to do it to over 40 websites?

This was an interesting talk from Jesus Sanchez, where in order to avoid having the QA department as a bottleneck for the growing team of developers, they took the approach of building tools and resources for developers and enabling them to write tests for their over 40 websites. It is an interesting take on how the QA role becomes a facilitator and an enabler for the rest of the organization, while coaching everyone on how to write automated tests and the value of testing the right thing.

Careers in Testing – Identify your SuperPower

Smita Mishra gave a captivating talk where she invited all testers to think what alternative paths could be present in their careers, given that some organizations value testing more than others. Smita showed that if you understand what you enjoy the most, and find a way to combine that with your current and future skills, it could show you how to grow your career by finding and following a path of the least resistance.

Developing Selenium tests with JUnit 5

JUnit 5 is the new iteration of this popular testing framework, and it implements a new programming and extension model named Jupiter. Boni García presents in this talk a JUnit 5 extension called Selenium-Jupiter, the demos showed illustrate how useful this extension is because it simplifies the test configuration and reduces the boilerplate code that needs to be written in order to have a test running. Have a look at it because it is well maintained and documented, and it will help you by reducing the time needed to set up your tests.

I’m Not Special

One of the keynotes in the conference was done by Jim Evans, where he relates a personal journey through his career and how clearly “not special” he considers himself. One of the key takeaways is the fact that you become a major contributor and you do not need to be special to do that. No review will make enough justice to highlight how heartwarming and encouraging this talk was, it is a must watch for anyone who wants to become a contributor.

Closing keynote

The final session of the conference was the keynote where the project committers do an open Q&A with the community. Different opinions were shared around the question of the challenges the Selenium project sees by the growing number of browser automation tools. In addition, all project contributors made an open invitation to the community to get involved in the project, if you are interested in that, please check the project’s governance document. This is another recommended session to watch, lots of insights about how the project and its individuals work that will help the community understand the project better.

This was originally posted at https://opensource.saucelabs.com/blog/selenium_conf_2020_recap/

Public Project Meeting - September 24, 2020

Continuing the series of bi-weekly public project meetings…

Continuing the series of bi-weekly public project meetings, here is the timeline of the meeting held on September 24, 2020 (times are on IST).

Meetings are held on the #selenium-tlc channel on Selenium Slack.

The next meeting will be on October 09, 2020, 4:30 PM CET.


Diego Molina 9:00 PM

So this is the proposed agenda, and @AutomatedTester has some more topics: General project statistics

  • Previous meeting: 334 open issues, 63 open PRs
  • Current: 281, 61 PRs Overall announcements? New people on committees, with the commit bit, etc?
  • Anything new to report from the last PLC/SFC call?
  • Pending work that needs to be done for Alpha 7?
  • Pending work that needs to be done for the first Beta?

David Burns 9:00 PM

I dont have more topic, I want to discuss some of those topics

Diego Molina 9:01 PM

I need to improve reading skill :slightly_smiling_face:

9:01 PM

OK, let’s start

Simon Stewart 9:01 PM

settles in

Diego Molina 9:02 PM

General project statistics Previous meeting: 334 open issues, 63 open PRs Current: 281, 61 PRs We are slowly cleaning the list of issues, more cleaning to come :slightly_smiling_face:

Simon Stewart 9:02 PM

Another 32 weeks, and we’ll be done (Well, PRs)

David Burns 9:03 PM

I think we should pat ourselves on the back. In February we had over 600 issues

Diego Molina 9:03 PM

Absolutely

9:04

Ok, next topic Overall announcements? New people on committees, with the commit bit, etc? I am not aware of any announcements…

Simon Stewart 9:04 PM

Not that I’m aware of

Diego Molina 9:04 PM

Ok, so probably the next topic won’t have any updates either Anything new to report from the last PLC/SFC call?

Simon Stewart 9:05 PM

Not from me

Diego Molina 9:06 PM

Perfect, so let’s jump to the next one Pending work that needs to be done for Alpha 7?

Jim Evans:black_medium_square: 9:06 PM .NET needs a fair bit of refactor for CDP i’m planning on taking all day tomorrow to look at that.

David Burns 9:07 PM

Oh that’s awesome

Simon Stewart 9:07 PM

The java code is in a releasable state, I think Though I broke a test in the distributor, so I may want to fix that before landing

Rajendra Kadam 9:07 PM

I am working on js cdp stuff

David Burns 9:07 PM

The python code for here is just me putting in the work to make the API not suck

Jim Evans:black_medium_square: 9:07 PM

once i get CDP generation redone for C#, i’ll be pretty happy with the state of the .NET code base.

Simon Stewart 9:07 PM

There’s the session queue PR that it’d be nice to land, but I don’t think it’s essential

David Burns 9:07 PM

@p0deje has the Ruby stuff done

Diego Molina 9:07 PM

I am reviewing @Puja Jagani’s PR about the session queue, it’d be nice to have it for the alpha

Simon Stewart 9:07 PM

@jimevans this is good news :slightly_smiling_face:

Jim Evans:black_medium_square: 9:08 PM

i do need to think about a “version independent API for CDP” for .NET

Titus Fortner 9:08 PM

Do we need cdp for alpha 7? There are a number of bug fixes from 6 to get out there

Simon Stewart 9:08 PM

I’d like us to have a fairly unified approach between (at least) java and .net for the unified CDP. Happy to make changes to the java tree to make that happen

David Burns 9:08 PM

The queueing stuff I think needs to be in the alpha so we can get it to nightly users

and then improve in the betas

Jim Evans:black_medium_square: 9:09 PM

@titusfortner i at least need to get that version-independent api done before alpha7. .NET skipped alpha6 altogether, because i suck.

Simon Stewart 9:09 PM

@titusfortner in the java tree, the new CDP stuff has allowed us to hook in a bunch of APIs. It’d be nice if those were in other languages too

David Burns 9:10 PM

but… feature wise after that we’re done right? I’m itching to get us out of alpha we’re not getting enough usage

Simon Stewart 9:10 PM

I think we’re basically there once it’s done How’s the UI looking?

Diego Molina 9:11 PM

Sounds like it, for Alpha 7, to summarise: CDP working across bindings Session queue in Grid

David Burns 9:11 PM

the UI is there, I think. We’ve fixed the main UI issues

Jim Evans:black_medium_square: 9:11 PM

i agree with that assessment. once CDP work for .NET is done, i’m considering it feature-complete for 4.x.

David Burns 9:11 PM

and that’s all in trunk

Diego Molina 9:13 PM

Great, I am not sure if there is anything else to add to the topic

Simon Stewart 9:13 PM

Other than a proposed date to release a7?

David Burns 9:13 PM

next week (no pressure everyone)

Jim Evans:black_medium_square: 9:14 PM

wednesday or after of next week. i’m sure i’m not going to get it all done in one day.

David Burns 9:14 PM

Thursday and Fridays are our normal release dates so that sounds good

Simon Stewart 9:14 PM

I’m going to make a decision to gate the release on @jimevans saying that .Net is ready to roll

Jim Evans:black_medium_square: 9:14 PM

to quote @AutomatedTester “no pressure” :slightly_smiling_face: we’re putting a stake in the ground saying a7 is our last alpha?

Simon Stewart 9:15 PM

With a hard stop-date of 2020-10-07 For java, yes And I think we have the most moving parts

Jim Evans:black_medium_square: 9:15 PM

(agreed as a7 being last alpha for .NET too)

Diego Molina 9:17 PM

Any comments from other bindings? @AutomatedTester @titusfortner @rajendra @harsha509?

David Burns 9:17 PM

I want us out of alpha so…

Simon Stewart 9:17 PM

@AutomatedTester we all want to be out of alpha

Rajendra Kadam 9:17 PM

working out for js, some tests issues, trying to fix those

Simon Stewart 9:17 PM

But we also don’t want to move “just because”

Sri Harsha 9:18 PM

JS is already in alpha 7, can we release JS npm with like alpha7-patch1 with CDP ?

Simon Stewart 9:18 PM

Bump JS to alpha8 Keep it simple :slightly_smiling_face:

Sri Harsha 9:19 PM

ok, Thank you @simonstewart

Diego Molina 9:21 PM

Does it make sense to discuss the next topic? “Betas”

Simon Stewart 9:22 PM

We can move on from “alphas” :slightly_smiling_face:

Diego Molina 9:22 PM

Like, having a timeline or something like that for Betas?

David Burns 9:22 PM

There are a number of issues that are “assigned” in the “in Progress” part of https://github.com/SeleniumHQ/selenium/projects/2 I think understanding which of those features are needed for use to move through the betas is important

Simon Stewart 9:23 PM

I have a pile of branches locally with changes If it’s in the 4.0 roadmap, that kind of suggests it’s needed before release If it’s not in the roadmap, we don’t need to worry about it (For the release itself) (We do need to worry about it)

David Burns 9:24 PM

so… I guess my request is, if you’re doing it, what can we do to get it sorted (like hand off to someone else) or if you’ve not started can you unassign yourself I think it would be good to get a clearer picture of where people can help

Simon Stewart 9:25 PM

I’m not actually assigned to that much

David Burns 9:25 PM

this is a comment to all of us really

Simon Stewart 9:25 PM

One code review, one “add support for retries to handlers” I’ve a local change that has the skeleton of retries written, as well as fallback URLs for commands

Diego Molina 9:27 PM

I’ve seen that one and wanted to check, but time hasn’t been on my side lately

Simon Stewart 9:27 PM

Join the club :slightly_smiling_face:

David Burns 9:28 PM

so part of my request really is knowing where I can help without having to badger you all I being me and my team

Simon Stewart 9:29 PM

Getting Grid rock solid would be really helpful I suspect we’re not really using ZMQ properly And if that falls over, we’re in trouble

David Burns 9:31 PM

we’ve engaged @adamgoucher and he seems Ok, but this is where I want to get more usage from betas and the grid is pretty solid we’ve fixed the main issues from browserstack at least

Simon Stewart 9:32 PM

One thing I’d quite like is a way to hook in SaaS providers to the Grid

David Burns 9:32 PM

and I would love to get a new alpha out so we can start using Jaegar more

Simon Stewart 9:33 PM

The Docker support also needs some work Firebase support and XRay would be nice for use in GCP and AWS Our HTTP client needs work: I don’t think reactor is really going to work for us

9:34

Every time I try and switch to it, there’s Yet Another Weird Failure

David Burns 9:35 PM

I am happy to get Puja involved here

Simon Stewart 9:36 PM

I think one thing we’d really love to demo is “deploying Grid to EKS” and seeing it start outputting information @Puja Jagani’s help would be amazing

Puja Jagani 9:36 PM

Would love to help!

Simon Stewart 9:36 PM

Awesomeness :slightly_smiling_face:

Diego Molina 9:36 PM

we can do that, it should not be hard :slightly_smiling_face:

Simon Stewart 9:37 PM

Getting a Kafka version of EventBus would allow folks to use other hosted infra, but I think that may be too much for 4.0

Diego Molina 9:39 PM

I prefer to see the Gird being rock solid at its core, and when that is the case, add the other things

David Burns 9:39 PM

augementing things like that is a definite post 4.0 item

Diego Molina 9:39 PM

for example, I would say we can tackle the redis backed distributor after the release

Simon Stewart 9:40 PM

I’m working on some changes to make the state of the distributor serializable Once those are done, I’ll be a lot happier with it

Diego Molina 9:43 PM

Great, I think those are the topics for today, is there something else?

Simon Stewart 9:44 PM

Not from me

David Burns 9:44 PM

I’m done

Diego Molina 9:45 PM

Thanks everyone!

Simon Stewart 9:45 PM Thank you, @diemol!

How to delete your master branch

How to move away from master as the default branch

At the Selenium project we practice trunk based development, in which trunk is the usual name of the default git branch of the repository. However, when the project was moved to GitHub, the repository followed the traditional use of master as a name for the default git branch.

With the intention of making the Selenium project an even more inclusive place where everyone is welcome, a decision was made to use trunk as the default git branch and, after the switch, delete the master branch. This change created a few challenges. This blog post will point out a few things you should watch out if you want to make the same change in your GitHub repository.

It is common to link specific parts of the code in the documentation, and that link normally contains the branch name. Double-check your documentation for links pointing to files living on the master branch, as they could end up as broken links after the change.

Mentions to the branch name

Similarly, the branch name gets mentioned in different parts of the repository, such as code comments, contribution instructions, issue and pull request templates, and the readme. Don’t forget to check these places.

GitHub repository badges

We all like to show off how our GitHub repository is doing by adding as many badges as we can. In many cases, those badges report a build status that depends on the branch where the build was executed. Make sure your Travis/CircleCI/GitHub Actions badge is pointing to the new branch.

Continuous Integration setups

A good practice in open source is to have a continuous integration setup to run the builds, execute tests and potentially do automated releases. Nowadays, the CI configuration is done in files (e.g. .travis.yml for Travis), and one important piece of that configuration is the name of the branch where the build should be executed. Similar to the previous point, double check that your new branch name is property configured in your CI integration.

Build scripts

At the Selenium project, we have a few custom build scripts that get executed through the continuous integration setup. An example is the script that generates the docs for the Java, Ruby and Python bindings. This script needs to know the code’s branch name to generate the docs. If you have scripts with similar purposes, check them after changing the branch name.

Open pull requests

All of the tasks above could probably be achieved with a text editor and a massive, but careful, “search and replace” across all the files in the repository. In short, the process we followed to move to the new branch trunk was:

  1. Create a new branch called trunk, based on the master branch.
  2. Do all the items described in the previous points.
  3. Commit and push those changes.
  4. Delete the master branch.

Nevertheless, one thing happened that we did not expect: after deleting the master branch, all the open pull requests got closed. This made sense, since they were all targeting the master branch. Therefore, before deleting your master branch, double check and, if needed, edit the open pull requests so they target the new branch.

It goes without saying that the name of your new branch can be any name that works well for your context and environment. For example, the repository that has the contents of the Selenium website uses now dev as the branch with the website source files and publish as the branch with the generated static website that gets published.

These are our lessons learned during the process of deleting the master branch in all the major repositories under the SeleniumHQ GitHub organization. I hope they are helpful if you decide to move from master as a name for your default branch.

This was originally posted at https://opensource.saucelabs.com/blog/how_to_delete_your_master_branch/

Public Project Meeting - August 13, 2020

Continuing the series of bi-weekly public project meetings…

Continuing the series of bi-weekly public project meetings, here is the timeline of the meeting held on August 13, 2020 (times are on IST).

Meetings are held on the #selenium-tlc channel on Selenium Slack.

The next meeting will be on August 27, 2020, 4:30 PM CET.


Diego Molina 7:58 PM :wave:

  • Here is the agenda for today
  • General project statistics (Previous meeting: 338 open issues, 73 open PRs)
  • Overall announcements? New people on committees, with the commit bit, etc?
  • Improving workflow (Reviewing PRs, Improving design requirements)
  • Selenium Conf website in GitHub org? (README is pending)
  • IDE to the main repo?
  • Users/passwords, access keys, etc… to distribution and release repositories.
  • Anything new to report from the last PLC/SFC call?
  • Conferences. Status for SeConf India & SeConf Chicago?
  • Pending work that needs to be done for Alpha 7?
  • Pending work that needs to be done for the first Beta?
  • Selenium Branding guide
  • Selenium marketing strategy (e.g: Webpack)
  • CoC, next steps?
  • Did anyone talk to Miki about the go bindings? (This topic has been skipped in the previous meetings but it is good to keep it on the agenda so we act on it when we have more bandwidth)

8:00 PM

Let’s start with the 1st item General project statistics (Previous meeting: 338 open issues, 73 open PRs)

8:01 PM

Current statistics 334 open issues, 63 open PRs Next item Overall announcements? New people on committees, with the commit bit, etc? Not that I am aware, anyone else?

David Burns 8:02 PM

No, but I would like to propose to create a new team on github for my team to at least have triage ability on bugs

8:03 PM

I can’t assign bugs unless they are somehow associated to the org

Diego Molina 8:03 PM

That is a good idea, I had the thought of creating a triage team and add people who are helping already in the #selenium channel, like @Salmon Mode :+1:

Simon Stewart 8:03 PM

+1 for a triage team

Diego Molina 8:04 PM

We should add that to the governance model

David Burns 8:04 PM

we can always discuss commit bit for my team at a later stage but I want them in the org

Diego Molina 8:04 PM

as a way to be part of the team without the need of explicitly be a committer

8:05 PM

who wants to take that task? add this to the governance model?

David Burns 8:05 PM

I can

Diego Molina 8:05 PM

:thumbsup:

8:06 PM

next topic? Improving workflow (Reviewing PRs, Improving design requirements)

David Burns 8:06 PM

that’s mine

8:07 PM

I would like to see if there is a way we can get designs for what people want descrribed better in issues I have noticed people misinterpretting requests in bugs that my team are working on

8:08 PM

and I dont know if it’s tribal knowledge that is missing or general experience or what can we get more definitive process for this

Simon Stewart 8:08 PM

“misinterpreting”?

David Burns 8:09 PM

well, we started down the observability issue and there are cases where work was done based on what their intrepretation was and it turned out to be different they didnt have the same context and motivation behind the changes

Simon Stewart 8:10 PM

It really helped when we had a conversation about the event stuff And since I’d planned to do that work myself, it seemed more lightweight not to fully describe everything in the issue

David Burns 8:10 PM

I agree, and I want to see if there are times we can front load that in to the issue rather than go down, write code , it’s wrong, try again

Simon Stewart 8:10 PM

Maybe if we make clear that they’re a placeholder for a conversation and identify who to speak to?

Diego Molina 8:11 PM

what I am missing in general about this, is that the decisions made through conversations in Slack are not being written in the GitHub issues or in the PRs, which makes things hard to review and move on

David Burns 8:11 PM

there is that too

8:12 PM

but having a converrsation requires the person that needs to be spoken to being free which isnt always a realistic expectation due to numerrous factors

Simon Stewart 8:13 PM

True, but front-loading all the design work is also impractical

David Burns 8:13 PM

I guess if we add more context and motivation that would be a good halfway point

8:13 PM

motivation being the main one for me.

Diego Molina 8:13 PM

what we also need to realise is that we did not have something that looked like a roadmap before, Simon helped with his brain dump that turned into the GitHub issues we have for the Selenium 4 release project so we are in a better place than the one we were but I agree that more detail on what is intended in the issues is needed, a natural next step in the iteration :+1:

David Burns 8:14 PM

agreed

8:15 PM

because, and this is my next item, if we can have some more info in issues it’s easierr to review there are changes that I can review and I go for correctness in the java server but it might be the wrong idea and we have PRs that sit, again due to people having lives and can’t always be here

Diego Molina 8:16 PM

do you think we should back to the open issues and find ways to extend them and make them more clear?

Simon Stewart 8:17 PM

Select the subset that are needing clarification and ask?

David Burns 8:17 PM

I have started doing that with some of the next load of work that I want my team to work on my goal, like everyone, is to ship se4

Simon Stewart 8:17 PM

Agreed And I want to help make that happen

8:18 PM

But I’m under some weird time constraints

David Burns 8:18 PM

I know, I am not blaming anyone

Simon Stewart 8:18 PM

I know :slightly_smiling_face:

David Burns 8:18 PM

I just want to make your life easier and my team’s and you’re kinda in both

8:19 PM

so… since code is mutable… can we go with I review for correctness, if it’s wrong and we spot then a new issue is raised with more context/motivation? and I will put it on my team’s stack?

8:20 PM

I feel this issue could raise it’s head with Sauce if they expand their team

Diego Molina 8:20 PM

uh, I need the simple English translation for that phrase

David Burns 8:21 PM

heh… sorry since I can review code, and make sure we have tests. If I feel it’s ok to merge I will, after a few days

8:22 PM

if others in this group disagree with the change, let me know, I will add it to our work and will get it sorted The issue of missing context and motivation could happen to anyone joining this group e.g. Sauce expanding their OSS team

Diego Molina 8:24 PM

got it, thanks for the translation I don’t see any issue with that, I think it makes sense in the end we can always improve things after merging code

David Burns 8:24 PM

cool. there are a few PRs from my team that have been sitting for a while

8:25 PM

and didn’t feel I could merge as I didnt have confidence in the serverr (give me a browser any day)

Diego Molina 8:26 PM

I am finding ways to help a bit more there, but we should follow your suggestion, I would appreciate a comment in the PR before merging it, like “hey, this has been sitting for while, it looks correct to me, I’ll merge it tomorrow unless someone has something against” :+1:

David Burns 8:27 PM

deal and we can get to a stage where my team can review each other which would be even better

Diego Molina 8:27 PM

:thumbsup:

8:28 PM

Next topic? Selenium Conf website in GitHub org? (README is pending)

8:29 PM

Quick update here, Andrew gave me an intro on how to make changes, the setup is more complex than I thought. We are in the process of documenting it. We should in the near future formalise a team in the governance model for the Selenium conference, there is a lot of work happening there that should be more recognised :+1:

8:30 PM

Next topic IDE to the main repo?

8:30 PM

I’ve seen @AutomatedTester and @rajendra moving the IDE repo into bazel, right?

David Burns 8:31 PM

bazel work is hand once that is done we can move it over wholesale I think the bazel work is 40% of packages. Tests still need doing but we’re touch the rough edges of bazel here

8:32 PM

we’ve both been chatting to people on the bazel slack

Diego Molina 8:32 PM

thanks for the update next topic?

8:33 PM

Users/passwords, access keys, etc… to distribution and release repositories. I added this one

8:34 PM

A few weeks ago I changed the way docker-selenium is released, moved it to GitHub actions, since I did not know the password used to push the images to Docker Hub, I had to reset the password and use it there

8:35 PM

which means that I am the only one who has the password now, and I believe this is the case for many other things we have (npm, python and ruby stuff, stores for Google/Firefox etc..) is there a way the ones in the TLC can have access to this information?

Simon Stewart 8:35 PM

We have some of the passwords stored in LastPass

Diego Molina 8:35 PM

and also consolidate it?

Simon Stewart 8:36 PM

We can share out individual credentials as needed

Diego Molina 8:36 PM

the thing is that the “as needed” moment usually comes when the one who has the credentials is not available

Simon Stewart 8:37 PM

That’s why we share them on LastPass :slightly_smiling_face:

Titus Fortner 8:37 PM

We could create a selenium account for Rubygems and share the password, right now it is giving individual accounts permission manually

Diego Molina 8:38 PM

Who has access to LastPass and can give access to all the TLC members?

Simon Stewart 8:38 PM

I do. Everyone in the PLC should have it too

Diego Molina 8:38 PM

I am only referring to credentials needed for releases and so on do we want to have different types of credentials mixed?

Simon Stewart 8:38 PM

(Sinking into a meeting where I need to talk at work. Dropping out of here)

Diego Molina 8:39 PM

Ok, then we can touch this topic again in the next meeting, but we already started it :slightly_smiling_face: Next topic: Anything new to report from the last PLC/SFC call?

8:40 PM

Seems not :slightly_smiling_face: Next topic: Conferences. Status for SeConf India & SeConf Chicago?

David Burns 8:42 PM

@mmerrell or @manoj9788 ?

Diego Molina 8:42 PM

I know India is virtual and there is a schedule already, I think they are figuring out if workshops will be done :+1::skin-tone-4:

Diego Molina 8:43 PM

and I saw that Chicago is officially postponed to 2021

David Burns 8:43 PM

in that case, move this topic to just india and then post that conference drop it from the agenda for a while

Diego Molina 8:44 PM

ok, makes sense next topic: Pending work that needs to be done for Alpha 7? Pending work that needs to be done for the first Beta? I am not sure if there are many updates here

8:44 PM

I think we need to land those PRs that are sitting to move to the last alpha

Marcus Merrell 8:46 PM

Yeah–we’ve moved out all SeConf Chicago meetings until November. We’re working to choose a new date with the venue for next year, and working on language in the contract that will allow us “ultimate cancel ability” if this thing continues to be a problem. We can move that off of the agenda for the time being :+1:

8:47 PM

I don’t have any new information about India - as far as I know there are no changes to the plan

Diego Molina 8:48 PM

thanks Marcus!

8:49 PM

So, I know that the 4 remaining topics in the agenda have no updates, so I suggest we skip them and we end the meeting early what do you think?

David Burns 8:49 PM

fine @mmerrell hey… friendly poke about that draining PR

Diego Molina 8:51 PM

ok, thanks everyone for your time!

Public Project Meeting - July 02, 2020

Continuing the series of bi-weekly public project meetings…

Continuing the series of bi-weekly public project meetings, here is the timeline of the meeting held on July 02, 2020 (times are on IST).

Meetings are held on the #selenium-tlc channel on Selenium Slack.

The next meeting will be on July 16, 2020, 4:30 PM CET.


Diego Molina 8:00 PM

Hi all, who is in for the Public Project meeting?

8:01 PM

  • Here is the overall agenda:
  • Overall announcements? New people on committees, with the commit bit, etc?
  • Anything new to report from the last PLC/SFC call?
  • Did anyone talk to Miki about the go bindings?
  • This topic has been skipped in the previous meetings but it is good to keep it on the agenda so we act on it when we have more bandwidth
  • Pending work that needs to be done for Alpha 7?
  • Pending work that needs to be done for the first Beta?
  • Conferences. Status for SeConf India & SeConf Chicago?
  • Selenium Conf website in GitHub org?
  • IDE to the main repo?
  • CoC, next steps?
  • Selenium Branding guide
  • Selenium marketing strategy (e.g: Webpack) (if anyone wants to add something, feel free to do it)

8:02 PM

First, some project health: General project statistics Previous meeting: 343 open issues, 72 open PRs Now: 338 open issues, 73 open PRs

David Burns 8:03 PM

looks like healthy movement as I know I’ve handled a few issues and PRs personally

Diego Molina 8:03 PM

Next topic: Overall announcements? New people on committees, with the commit bit, etc?

Simon Stewart 8:04 PM

WebDriver BiDi meeting was yesterday. There’s some spec prose

David Burns 8:04 PM

@tourdedave is stepping back from the tlc, for a while at least unless I have misunderstood

Manoj Kumar Kumar 8:05 PM

@AutomatedTester stepping into TLC

Simon Stewart 8:05 PM

I thought he did that a while ago, but we failed to update everything

David Burns 8:05 PM

its more official :)

Diego Molina 8:05 PM

do we want to remove him from the list explicitly? does it make a difference?

Simon Stewart 8:05 PM

And @AutomatedTester should have been in the TLC from the start :man-facepalming::skin-tone-2:

“The list”? On the governance part of the site?

Yes

Diego Molina 8:05 PM

I thought @AutomatedTester was there, it just my mistake :slightly_smiling_face:

Simon Stewart 8:06 PM

Unofficial draft of the bidi spec: https://w3c.github.io/webdriver-bidi/ There’s a way to go yet

Diego Molina 8:06 PM

ok, I will create a PR to do that (removing @tourdedave)

David Burns 8:06 PM

As retribution for not being on the TLC officially you all owe me cake :cake:

8:06 :P as for the webdriver bidi, as @simonstewart said, there is prose.

8:07

yesterday’s meeting notes are in https://www.w3.org/2020/07/01-webdriver-minutes.html The spec is being driven by Mozilla and Google mostly atm

Diego Molina 8:08 PM

thanks for the updates next topic? Anything new to report from the last PLC/SFC call?

Luke Hill 8:08 PM

I’m just being nosy, nothing to see here.

Manoj Kumar Kumar 8:09 PM

Nothing specific from the last PLC/SFC call. We’ve caught up on conference updates, which we will cover shortly.

Diego Molina 8:10 PM

ok, sounds good next topic is: Did anyone talk to Miki about the go bindings?

  • This topic has been skipped in the previous meetings but it is good to keep it on the agenda so we act on it when we have more bandwidth there is no need to comment or discuss if no one has updates though

Simon Stewart 8:10 PM

Nothing from me

Diego Molina 8:11 PM

ok the next topic is: Pending work that needs to be done for Alpha 7?

Simon Stewart 8:11 PM

I’d really like us to get the new UI in place for alpha 7 Even if it’s just a skeleton

David Burns 8:12 PM

That is in flight now, hope to get a demo on Monday and see what needs to be improved before we move into the repo :tada:

Simon Stewart 8:12 PM

Great news :slightly_smiling_face: Lemme check the project plan

Diego Molina 8:12 PM

I have seen CDP in Python and JS are almost there

David Burns 8:12 PM

we already have some of the parts required in master and the rest are being worked on CDP in python has landed

Simon Stewart 8:13 PM

https://github.com/SeleniumHQ/selenium/projects/2

Manoj Kumar Kumar 8:13 PM

And GraphQL is nearing completion, I guess.

Simon Stewart 8:13 PM

Things on my list are the new features based on CDP usage Pluggable locators

8:14

And CDP/WebDriver interop (mostly at the element and window level) Those will let us call alpha 7 the final alpha :tada: And we can make a start on the betas as we’ll be feature complete IMO Anything else that folks can think of?

Diego Molina 8:15 PM

nothing else from my side

David Burns 8:15 PM

we do have the beta list at https://github.com/SeleniumHQ/selenium/issues?q=is%3Aopen+is%3Aissue+label%3ASelenium-4-Beta

8:16

do we need to move more things there?

Simon Stewart 8:16 PM

Are those “bugs to fix in the betas” or “bugs to fix before we can cut a beta”?

David Burns 8:16 PM or remove yes

Simon Stewart 8:16 PM

Logically correct, but not an actual answer :slightly_smiling_face:

David Burns 8:16 PM

it’s a list of things @diemol thought we needed and I mostly agree

Diego Molina 8:17 PM

they come from the Google Doc we went through in London in February with Simon

Simon Stewart 8:17 PM

I shall ruthlessly reprioritise Those are things that we mostly need in place before release

8:18

But I think we can go into the betas with “the features are there, but they’re known to be unstable” The alphas are “the features aren’t even there yet”

Diego Molina 8:18 PM

I would expect to have a few things being unstable in the betas

Simon Stewart 8:19 PM

“A few things” will definitely be unstable

David Burns 8:19 PM

I would like to get things that may have got sorted but the bug list is out of date sorted as well from our lists

Simon Stewart 8:20 PM

That list seems mostly up to date

David Burns 8:20 PM

but things like Ruby on bazel and ide in the mono repo I dont think are Se4 dependent

Simon Stewart 8:20 PM

I don’t see things that are already fixed in it

David Burns 8:20 PM

my comment was general so people checked :D

Diego Molina 8:20 PM

indeed, I usually keep an eye on the issues, and I believe is up to date btw, we are already covering the next topic in the agenda Pending work that needs to be done for the first Beta? :+1::skin-tone-4:

David Burns 8:21 PM

yes and no… Can we get PRs in flight finished if they are just waiting on reviews on fixing review comments I meant

Simon Stewart 8:22 PM

Which ones in particular?

David Burns 8:22 PM

The draining one and the redis one (not picking on people) come to mind

Simon Stewart 8:22 PM

I’m not happy landing the Redis one since it leaves a broken RedisBackedDistributor in the tree, and that’s suboptimal

8:23

I need to re-review the draining one

David Burns 8:23 PM

I am not saying we need to fix it but we need people to finish them off :)

Simon Stewart 8:23 PM

Indeed.

Diego Molina 8:25 PM

so, is there anything else to add before moving to the next one?

Manoj Kumar Kumar 8:25 PM

Selenium IDE work is a separate topic? Unsure if @corevo is here? I meant on the Electron piece of work.

David Burns 8:25 PM

I can field that…

Manoj Kumar Kumar 8:25 PM

great!

David Burns 8:26 PM

Selenium IDE is now in the Edge store :tada: that’s the extension version

8:27

As for the electron version, that’s slightly on hold atm but hopefully we can start that up soon :+1::skin-tone-4:

Manoj Kumar Kumar 8:27 PM

https://microsoftedge.microsoft.com/addons/detail/selenium-ide/ajdpfmkffanmkhejnopjppegokpogffp Link to MS Edge store

David Burns 8:27 PM

I would like it to be a thing as we work on core “fit and finish” pieces

Diego Molina 8:28 PM

sounds good should we move to the next topic?

Manoj Kumar Kumar 8:28 PM

yes

Diego Molina 8:28 PM

Conferences. Status for SeConf India & SeConf Chicago?

Manoj Kumar Kumar 8:29 PM

SeConf Chicago - Postponed to 2021 - we are working on new dates and Hotels.

8:30

SeConf India - It was supposed to held on June - we’ve moved it to September, but it seems hard and the Indian borders won’t open up for any travels in and out.

8:31

Final decision is yet to be made, it will get postponed or we may have a shortened(online event)

Diego Molina 8:32 PM thanks for the updates :slightly_smiling_face:

Manoj Kumar Kumar 8:32 PM

@mmerrell Please fill in, if I’ve missed anything!

Diego Molina 8:32 PM

next topic is: Selenium Conf website in GitHub org? @andrewmkrug did a great job in revamping the site weeks ago, and now the code is in a private repo under the SeleniumHQ GitHub org he’ll add some instructions to the README on how to develop on it and deploy it :clap::skin-tone-4:

8:34

the repo is private just to keep information about future conferences confidential :slightly_smiling_face: next topic: IDE to the main repo?

David Burns 8:35 PM

No change on this. I hope to get to it soon, I have a branch doing the Bazel work

Diego Molina 8:35 PM

ok, sounds good next topic: CoC, next steps?

David Burns 8:36 PM

Last week @diemol and I met with Sage Sharp and had a productive meeting

We have given them a bunch of details and they hoped to get back to use end of this week or beginning of next week with a draft

Diego Molina 8:37 PM

yeah, it was a great session, and I think the CoC is on a good path

Marcus Merrell 8:38 PM

The only conference-related note is that we’re looking at a potential opportunity to host an online-only conference sometime in September/October, but we don’t have details or info on the $$ piece yet

Diego Molina 8:39 PM

thanks @mmerrell

8:40

should we move to the next topic?

David Burns 8:40 PM

regarding online confs I would like people to speak to their respective marketing companies and see if it’s being over done

Marcus Merrell 8:40 PM

that’s my #1 concern

David Burns 8:40 PM

there are so many atm…

Marcus Merrell 8:40 PM

how’s Breakpoint looking, btw?

David Burns 8:41 PM

It’s good so far but I know marketing team don’t really want anything past that

Marcus Merrell 8:41 PM

right… not surprising

David Burns 8:41 PM but that may change

Marcus Merrell 8:42 PM

@simonstewart was talking about potentially having a webinar series instead of a 6-hour block of content, and I’m kind of interested in anything that will keep the zoom fatigue to a minimum

unfortunately, online conferences are not my thing, as an organizer or a participant… this might make me an ideal candidate to create an event that won’t over-do it

David Burns 8:42 PM

heheh

Diego Molina 8:43 PM

ok, seems we can move to the next topic

Selenium Branding guide

Manoj Kumar Kumar 8:44 PM

We’ve always get many requests on usage of Selenium Logo for multiple purposes, PLC usually respond to those requests with the help of SFC folks.

And there is also an issue to track : https://github.com/SeleniumHQ/seleniumhq.github.io/issues/81 This has been long pending and finally we’ve started with it…

8:45

Selenium Branding guide is in-progress. Its on a private Google doc shared with the PLC and TLC members. The legal rep from the SFC team has reviewed and shared feedback and recommendations. And right now its with our Selenium team (PLC, TLC(may not be all of TLC) to look at it and see if we need more clarifications.

8:46

@simonstewart @diemol @AutomatedTester and others When you get a moment, pls take a look and share your feedback

Diego Molina 8:47 PM

I think it makes sense to have something like that, it is easy to see the Selenium logo / name misused in many places

that’s a good initiative @manoj9788!

David Burns 8:47 PM

What does this mean when people use our brand incorrectly. Like there is a linkedin group that charges for people making specific posts there.

8:48

(from what I am told) do we have recourse to challenge them?

Manoj Kumar Kumar 8:49 PM

That reminds of another questions,What are social media accounts that are handled by SeleniumHQ team?

Marcus Merrell 8:49 PM

using it to promote “Selenium Certification” is the example I see most often I believe we’ve done it before (before I joined the PLC) “done it” == “challenged them”

Manoj Kumar Kumar 8:50 PM

AFAIK, Twitter: SeleniumHQ, SeleniumConference are handled by SeleniumHQ team. LinkedIn: Is there one? Facebook: I think there is one, but don’t think anyone from SeleniumHQ team is handling that.

Marcus Merrell 8:51 PM

we should hire a tween to manage our insta (and TikTok) only half-kidding

Diego Molina 8:51 PM

there is this https://www.linkedin.com/company/selenium/about/ and this https://www.linkedin.com/company/selenium/about/

Marcus Merrell 8:51 PM

especially considering how many tweens use Selenium to do fortnite/roblox stuff

Manoj Kumar Kumar 8:51 PM

TikTok is officially banned in India :slightly_smiling_face:

Marcus Merrell 8:51 PM

lol

Diego Molina 8:52 PM

sorry, the 2nd link was meant to be this one https://www.linkedin.com/groups/961927/ (edited)

Manoj Kumar Kumar 8:52 PM

ok, no politics here. No idea, who owns that.

Diego Molina 8:54 PM

I feel this topic overlaps with the last one in the agenda: Selenium marketing strategy (e.g: Webpack)

Manoj Kumar Kumar 8:55 PM

Diego you could share some insights on the example you gave on Webpack

Diego Molina 8:56 PM

yeah, I was trying to find some info while Googling

8:57

the idea I heard, is that webpack was not having a good moment in terms of users and reputation and revamping their image (docs, social media, and of course improving the project code) helped them enormously so this point is just to have a conversation starter and see if you think something similar makes sense for Selenium

Simon Stewart 8:58 PM

It’s useful. I think we should also take a look at the things that people like about Cypress and make it clear how to surface the same thing in Selenium :+1::skin-tone-4:

Manoj Kumar Kumar 8:59 PM

Agreed! I think it makes sense @diemol

David Burns 8:59 PM

I would love for us to do something here. @simonstewart and I have previously discussed this as “fit and finish”

9:00

these are the things that people like about puppeteer/cypress and we’ve not done a good job of explaining similar things

Simon Stewart 9:01 PM

Indeed. TBH, I thought we’d be done with Se4 at this point And well into the fit-and-finish bit that could be Se5 But I agree with @diemol that part of that is a nice site with excellent docs

Diego Molina 9:02 PM

nice, so it seems there is a general feeling that we should be doing something like that I can try to do something about it and give an update for the next meeting

Simon Stewart 9:02 PM

Just one piece isn’t good enough to solve the problems That’d be fantastic, @diemol

Manoj Kumar Kumar 9:02 PM

Happy to pair on that @diemol

Diego Molina 9:02 PM

sounds good!

9:03

well, that was the last topic in the agenda, and we are 3 minutes past the end of the meeting thank you everyone!

David Burns 9:03 PM

yay

Manoj Kumar Kumar 9:03 PM

And we’ve moved from Master to Trunk Thanks @AutomatedTester

David Burns 9:03 PM

yes, and it was an important move

Manoj Kumar Kumar 9:04 PM

Thanks @diemol @simonstewart @AutomatedTester and everyone!

Moving to Trunk

Why we are getting rid of master branch in favour of trunk

Since the project started we have been following trunk based development. This was a very natural fit when we were using SVN over a decade ago on Google Code.

As Google Code shut down we moved to GitHub and the git model of doing things. We moved there mostly due to the gravity that GitHub had created in Open Source projects.

This meant that we followed the standard use of master as our trunk to work off. Now that GitHub, and services that use GitHub, have improved support for non-master branches as default we are moving our default branch to trunk. It describes how we, as a project, work and is a more inclusive term.

If you have pull requests based on master we will see about moving that over to the trunk branch ourselves. If we can’t, we may ask you to help with the rebasing.

We, as a project, want to make our community inclusive and this is just one step in making sure we are. Other steps we taking are improving our Code of Conduct and Community Guidelines.

Join us on Slack or IRC if you wish to discuss this further.

How Selenium Works: Episode 1 - Transportation

A series describing how Selenium works under the hood

After an interaction on the last weekend of January 2020, on a Selenium Issue where someone said “why can’t you just…” after I explained the issue I thought that I would start explaining commands in Selenium WebDriver and why we landed on the design that we have today.

I will repeat this on every page of the series but a lot, an annoying amount sometimes, of thinking goes into how every little bit of Selenium works.

Why?

Selenium, by chance and being good at what it does, is used by millions of people around the world as well. It’s how companies from Microsoft and Google to the small startup make sure that their site works in every browser.

How Does Selenium talk to the browser?

Selenium, over the years, decided that we were going to use HTTP to speak to the browser. We built a REST-ish API that every client binding could use and hopefully get the same results.

HTTP and REST-ish? Really?

Yea…

Let’s start with the HTTP part. When we started we had to have a unique way to speak for each browser based on the best way to speak to them. So for Internet Explorer we wrote COM code. It was fine, it worked but gave us nightmares. For Firefox we wrote a monstrocity that read line by line and, thankfully, due to Mozilla’s “make the browser yours” attitude we could do a lot. Opera allowed us to go in via the DevTools protocol.

Now, it meant that, especially in the early days of WebDriver, we would need to maintain N: M bindings where N is the language bindings and M is the browsers we support. This is not a road to a good product. We decided that we need something that every language would understand. We also needed something that would be pretty robust. HTTP was chosen and we set about building the JSONWireProtocol.

The JSONWireProtocol is where we built a REST-ish interface that would speak JSON. I say REST-ish because it didn’t follow all the principles of REST but enough to make it powerful for our needs.

How does it relate to things now?

The Web, the internet, and the world has moved on. Why hasn’t Selenium?

This is a good question and the thing is we are trying to move things on. Unfortunately the web has a state where it is broken unless it is working. HTTP is pretty robust as a protocol. It can also allow people to build up clusters for testing without having to worry too much about how the multiplexing would work. This is the reason why Selenium Grid was created and is still a pretty good choice when it comes to farming out your testing to multiple devices and multiple machines.

But Some automation Framework that uses Chrome Debug Protocol is more like the web, be like them.

So… There are tools that use Chrome’s Debug Protocol to drive the browser and some of the things they do better than Selenium are down to their choice of how they speak to the speak to the browser. Unfortunately it’s a Chrome proprietary protocol and Google is not interested in working with other browsers on making it not.

Also, ignoring the interesting design choices from the the Google team, there is the problem that we have to have a permenantly open connection. In this case it uses WebSockets but if you remember my comment earlier about the internet is down until it’s up. WebSockets would be constantly re-establishing the connection. There is also the problem of how much traffic would be going up and down that pipe.

This is fine for puppeteer where you are only speaking to something on your local machine but if you are combining a CI service, like Circle CI or TravisCI and something like AWS Device Farm, Sauce Labs, or BrowserStack you suddenly have a lot of internet inbetween you and your runner and that data needs to get somewhere.

The W3C Browser Testing and Tools Working group, which is made up of browser vendors and Selenium folk, are trying to design what this will look like to make sure that we can make it cross browser from the start without having to do weird hacky patches to browsers and ship those browsers ourselves.

Want to read more?

This was originally posted to https://www.theautomatedtester.co.uk/

Public Project Meeting - June 04, 2020

Continuing the series of bi-weekly public project meetings…

Continuing the series of bi-weekly public project meetings, here is the timeline of the meeting held on June 04, 2020 (times are on IST).

Meetings are held on the #selenium-tlc channel on Selenium Slack.

The next meeting will be on June 18, 2020, 4:30 PM CET.


Diego Molina 8:05 PM

the agenda will be:

  • anything people want to add in the next 2 minutes
  • me looking to previous agendas and adding those items here

Simon Stewart 8:06 PM

Hahaha

Agenda item: path to betas

8:07 I’d like to hear about the work that @AutomatedTester has in mind for his interns, and how (as a project) we’ll support them

Diego Molina 8:08 PM

Agenda:

  • general project statistics
  • any overall announcements? new people on committees, have the commit bit, etc?
  • so do we want/need to wait for that work to be done before doing Alpha 7?
  • Work to be done before beta? (Path to betas)
  • when is the next SFC call? (if its happened in the last two weeks, anything to report)
  • Did anyone pick up the ball to talk to Miki about the go bindings?
  • SeConf India SeConf Chicago
  • Selenium Conf website in GitHub org?
  • IDE to main repo?
  • CoC

Let’s start

8:09 general project statistics: two weeks ago: 391 open issues, open pull request: 68 now: 343 open issues, open pull request: 72

8:10 looking better, let’s keep the pace! 1

next item:; any overall announcements? new people on committees, have the commit bit, etc?

Simon Stewart 8:11 PM

Just a quick note that @Bongosway has landed a few patches recently. I’m hoping that we find a way to help him into the fold a little more

And a high five to @rajendra for his work on the JDBC stuff 1 reply 4 days ago View thread

Diego Molina 8:12 PM

absolutely, thanks for contributing!

anything else or should we move to the next item in the agenda?

8:13 ok, next item: what do we need to be done before doing Alpha 7?

Simon Stewart 8:15 PM

Things I’d like to see:

  • Switch to the reactor client for http
  • Land a basic replacement for the UI
  • Straw-man proposals for the functionality that might rely on CDP

Of which that last is in my court

David Burns 8:16 PM

  1. I am working on

as for my interns, one of which in here so say hi to @Saksham Gupta

Simon Stewart 8:17 PM

waves to @Saksham Gupta! 1

David Burns 8:17 PM

They will be extending the GraphQL system with in grid (@Saksham Gupta )

and Phani, when he joins, will be building out the Grid UI and modernising it

Diego Molina 8:18 PM

that sounds great!

Marcus Merrell 8:18 PM

welcome, @Saksham Gupta! 1

David Burns 8:18 PM

The goal of the work is to add most, if not all, the features we want in this area

8:19

both @Saksham Gupta and Phani will be supported by me and @rajendra

8:20

and next week we have another member joining our team who we can get to support both interns to make sure we don’t have any performance hits with the work they add and guide them through perf profiling. etc

Simon Stewart 8:20 PM

@Saksham Gupta you might find this useful: https://docs.google.com/document/d/1aFMmmMhBg1PgfTPmyaXaEJAhsh0lf3p0VpV7kfHIstI/edit

Diego Molina 8:20 PM

anything else pending from the non-Java stuff?

I know CDP is not working with JS yet, not sure about Python

David Burns 8:20 PM

Non-java we need to add CDP to python and JS which my team will be doing

Simon Stewart 8:21 PM

One thing i’m keen on is steering users away from raw CDP

David Burns 8:21 PM

agreed

Simon Stewart 8:21 PM

When we get WebDriver BiDi in place, we’d like to use that where possible

CDP is ugly, hard to use, and deeply fragile

Diego Molina 8:22 PM

that is a good point, because we don’t want GitHub issues reporting bugs merely due to something failing in CDP

Simon Stewart 8:23 PM

Something will fail with the CDP stuff

I may have to version it independently of the rest of the java pieces.

Diego Molina 8:23 PM

is the idea to have CDP in JS and Python for Alpha 7?

Marcus Merrell 8:23 PM

has the chromium team talked at all about CDP becoming a standard, or publishing a roadmap? (I’m off to put this exact question into google)

Simon Stewart 8:24 PM

They’re involved with the webdriver bidi stuff

I think there’s a lot of value separating “automation” from “debugging APIs”

Marcus Merrell 8:24 PM

yeah

David Burns 8:24 PM

the spec is being worked on right now

I have been reviewing it this week

Marcus Merrell 8:24 PM

I saw the transcript from last week, good stuff

David Burns 8:25 PM

CDP is not going to be the standard

Diego Molina 8:25 PM

asking again to stay in the topic, is the idea to have CDP in JS and Python for Alpha 7?

Simon Stewart 8:25 PM

Yes

David Burns 8:25 PM

@diemol maybe.. hopefully

Simon Stewart 8:25 PM

We need all languages to have that in place before we can move to betas

Diego Molina 8:27 PM

I have seen a few PRs from https://github.com/seanpoulter, he seems keen to help in JS he already asked how he can implement relative locators in JS we should try to give him quick feedback

Sean Poulter Location Ottawa, Canada Repositories 22 Followers 17 @seanpoulter | Oct 18th, 2012 | Added by GitHub

Simon Stewart 8:28 PM

@harsha509 would you like to help with that? Or @corevo?

And

David Burns 8:28 PM

JS relative locators is in there, might need some TLC

Sri Harsha 8:28 PM

i need a week to hack into js things. currently busy in paid work

Simon Stewart 8:28 PM

NP.

8:29 These paid jobs are what allow us to have the luxury of working on OSS. Focusing on them makes a lot of sense

Diego Molina 8:29 PM

in any case, let’s try to give feedback, we are in the look for JS maintainers and who knows if he could be “the one”

ok, next item?

Simon Stewart 8:30 PM

Have we finished the beta discussion?

I don’t think we’ve got more items to add to it

Diego Molina 8:31 PM

no, that is next

Work to be done before beta? (Path to betas)

Simon Stewart 8:31 PM

The things for alpha-7 are the blockers for beta

8:32 After that, I think the changes are incremental rather than entirely new features

8:33 (other than (maybe) pluggable locators0

Marcus Merrell 8:33 PM

also my “drain” feature

I’m negotiating a couple days with my paid work to get back on that

Simon Stewart 8:33 PM

That’d be nice to get into a7

I suspect that the graphql stuff will cause some changes to have to happen

Marcus Merrell 8:33 PM

can we set up a time to pair for an hour or so?

Sri Harsha 8:33 PM

I will take over maintaining JS bindings for sure in future

Simon Stewart 8:33 PM

@mmerrell sure

8:34 I’m around monday and tuesday next week

@harsha509 WOOHOO!

That’d be awesome

Marcus Merrell 8:34 PM

perfect–I’ve just blocked out most of the day for it

I know what I need to do, but would like a bit of validation on the approach, and then I need to test it

Diego Molina 8:36 PM

ok, seems the betas part has been mostly discussed in the Alpha 7 part and these previous lines

if everyone is ok with it, next topic 2

when is the next SFC call? (if its happened in the last two weeks, anything to report)

Marcus Merrell 8:36 PM

it happened Tuesday, and I believe we primarily discussed the conference

Diego Molina 8:38 PM

ah perfect, there is an item in the agenda for “SeConf India SeConf Chicago”

Simon Stewart 8:38 PM

@manoj9788 will know the most about that

Marcus Merrell 8:40 PM

yep

Diego Molina 8:40 PM

is there something else to comment from SFC or conferences? or should we move to the next item?

Marcus Merrell 8:40 PM

I can speak for Chicago

I don’t think we talked about anything else… the SFC wasn’t present on the call

Diego Molina 8:41 PM

would you like to say something about the Chicago conference?'

Marcus Merrell 8:41 PM

yeah–we’re negotiating with the hotel to take our contract and move it to 2021, around the same time of year

8:42

we’re waiting to hear back from them with a selection of dates in the Sep-Oct-Nov range

hoping not to have it the week before Thanksgiving, but also hoping to keep the room rates low

8:43

as to this year, we’re talking about holding a very sane, relatively small virtual conference, or a series of webinars spread over a couple months

we’re also discussing having another group help us out with planning and execution, someone with experience at promoting and running virtual conferences

8:44

the first discussion will happen today, and if we decide to explore further, I will probably feel more comfortable talking about who we’re considering

there is a lot to consider for a virtual conference, and we want to make sure we are thoughtful and careful

Rajendra Kadam 8:44 PM

replied to a thread: And a high five to @rajendra for his work on the JDBC stuff Thanks @simonstewart. . It wouldn’t have been complete without your help. 1

Diego Molina 8:44 PM

all that is already a lot of info, thanks for sharing!

Marcus Merrell 8:45 PM

for SeConf India, I don’t know if @manoj9788 is on and would like to share. If not, I can at least say a little about what they’re considering, I just don’t want it to be incomplete

Diego Molina 8:46 PM

up to you I would say

Marcus Merrell 8:48 PM

it appears that there’s no way they’re going to be able to put on a conference in September in Bangalore. The borders and COVID caseload aren’t adequately under control, and much like the US conference, there are too many variables that would need to be under control right now for Naresh to feel confident about having an in-person conference a scant 3 months from now 1

(by “borders” I mean “international travel & quarantine procedures”)

Diego Molina 8:48 PM

that makes a lot of sense

Marcus Merrell 8:50 PM

so we are discussing whether or not we can essentially combine the notion of a virtual conference. That troubles me because I know that all parties involved want to see revenue, but the Selenium project doesn’t want to charge for admission. I’m concerned there would be too many hands in the pot for any one of them to receive enough $$ to make it worth their while

but that’s my own concern–not meant to represent the opinion of the planning committee. We’re looking for data, not opinions–so we’re reaching out to people who have been through this in recent weeks to find out what’s possible

8:51 we hope to report in a couple weeks on any progress, both with planning the virtual conference, and with whether or not we can expect to fund our coffers in the near future

Diego Molina 8:51 PM

ok, then we can follow up in the next meeting, thanks! 1

8:52 next topic: Did anyone pick up the ball to talk to Miki about the go bindings?

Simon Stewart 8:52 PM

Not me

Diego Molina 8:52 PM

I think no one did but we should keep the topic around, and try to get to it when we have Se 4 released or close to be released

8:53 adding one more binding now would be too distracting which does not mean that we cannot reach out to him

Simon Stewart 8:54 PM

Agreed

Diego Molina 8:55 PM

ok, let’s move to the next one since we only have a few minutes left

Selenium Conf website in GitHub org?

I see the site was revamped, so great job @andrewmkrug

8:56 but I am not sure if @andrewmkrug is having problems to push the code to the org I can reach out to him

Simon Stewart 8:56 PM

Thank you 1

Diego Molina 8:56 PM

next topic: IDE to main repo?

8:57

I guess we should focus more on the bindings and the Grid for now?

Simon Stewart 8:58 PM

I think @AutomatedTester has already done a chunk of the heavy lifting

9:00

Got to go. Meeting time

Diego Molina 9:00 PM

last topic was CoC, but we can take it next time

well, we covered everything (almost), thank you everyone! 1

Marcus Merrell 9:01 PM

thank YOU, @diemol 1

Selenium 4.0 Alpha 6 is out!

We are very pleased to announce the release of Selenium 4.0 Alpha 6

We are very pleased to announce the release of Selenium 4.0 Alpha 6.

All the information can be seen in different tweets from the project contributors, here they are all in one place:

Happy hacking!

Public Project Meeting - May 07, 2020

Continuing the series of bi-weekly public project meetings…

Continuing the series of bi-weekly public project meetings, here is the timeline of the meeting held on May 07, 2020 (times are on IST).

Meetings are held on the #selenium-tlc channel on Selenium Slack.

The next meeting will be on May 21, 2020, 4:30 PM CET.


adamgoucher 8:00 PM

alright. welcome back. time for another fortnightly chat about the project.

Simon Stewart 8:01 PM

:wave:

Diego Molina 8:01 PM

:wave:

Sri Harsha 8:01 PM

:wave:

adamgoucher 8:02 PM

some general project statistics; open issues: 391 open pull request: 68 (which is the lowest i think ive seen either of those numbers before)

8:03

agenda wise, this is going to be more loosey-goosey than normal as i’m swamped with day job so ignoring things. we’ll see is that is a good thing or not.

8:03

any overall announcements? new people on committees, have the commit bit, etc?

Simon Stewart 8:04 PM

I’ve landed the update to OpenTracing, which unblocks me

8:04

Next step is to wire the tracing into the Docker support And then pick up the websocket forwarding

8:05

(Which, to be fair, is “mostly done”)

adamgoucher 8:05 PM

heh. the last 20% takes the other 80% of the time :slightly_smiling_face:

Simon Stewart 8:05 PM

The Pareto Principle in action

8:06

I’d be happy pushing a6 before the next meeting

adamgoucher 8:06 PM

what do we think is missing from a6 now?

Simon Stewart 8:06 PM

It’s been a while since we did a release, and there’s progress in there

8:07

I’d dearly love the websocket forwarding, but I can live without it @diemol landed the first work with Fail Safe for some more robustness in the Grid

8:08

I think @barancev is also making some progress switching the underlying HTTP engine again

adamgoucher 8:08 PM

looks like there was a bunch of plumbing / dependencies updated in the last week especially with .net and python

Simon Stewart 8:08 PM

@jimevans and @AutomatedTester know more than I do

Jim Evans 8:10 PM

yes, the .NET bindings build using bazel should now work cross-platform. you should be able to run .NET tests using bazel test (with caveats, which i’ve yet to fully document). it kinda works within VS code, but one can for certain develop using Visual Studio 2019 on Windows, and Visual Studio for Mac on MacOS.

adamgoucher 8:11 PM (still breaks my head to write .net code on mac)

8:11

what more was needed for the http engine stuff? i thought there was a flag in there already?

8:12

or did we change it again, again

Simon Stewart 8:13 PM

The underlying library didn’t support http/2 or unix domain sockets, despite it being possible

adamgoucher 8:14 PM

so do we want/need to wait for that work to be done-ish before doing a6? so far that sounds like the only thing that will be confusing to release partially implemented

Simon Stewart 8:14 PM

Nah.

adamgoucher 8:15 PM

scans commits in another window

Simon Stewart 8:15 PM

As long as it’s in before we start on the betas, we’ll be fine

adamgoucher 8:15 PM

a question i know we dont have an answer for, but do we have a gut feel for how many more a’s there are before we start the b’s?

Simon Stewart 8:16 PM

The major outstanding features are: websocket forwarding graph-ql support

adamgoucher 8:16 PM

thats not that horrid of a list. its been much worse

Simon Stewart 8:17 PM

We’ve been chipping away at it

adamgoucher 8:18 PM

so if a6 is within the next 2 weeks, do we have a trigger condition for releasing it?

Simon Stewart 8:18 PM

No trigger condition

8:18

Other than “someone updates the changelog”, I guess

adamgoucher 8:19 PM

do we want to say ‘a6 is next tuesday’ so that all the maintainers are ready to build and tag everything? (feel like we can’t magically do it all from ci but could be making that up)

Simon Stewart 8:20 PM

The graphql piece is to support the ui, so strictly speaking we don’t really need it, but it keeps things flexible

8:20

@AutomatedTester, @p0deje, @jimevans, @titusfortner, @harsha509 Cool with shipping an alpha next week?

Jim Evans 8:21 PM

+1 from me.

Sri Harsha 8:21 PM

Yes

Diego Molina 8:22 PM

how are we handling the numbers in JS, JS is already in a7, right?

Simon Stewart 8:22 PM

“alpha-n+1”

Sri Harsha 8:22 PM

Yes @diemol . Do you have any suggestions @corevo . He should be releasing the next alpha as i know.

Alex Rodionov 8:23 PM

+1 from me

Tomer Steinfeld 8:25 PM

JS has been in alpha for a long time because of historical reasons

adamgoucher 8:25 PM

ok. so thats covers the bulk of the pressing tech stuff. other stuff that could be discussed; when is the next sfc call? (if its happened in the last two weeks, anything to report) did anyone pick up the ball to talk to miki about the go bindings? seconf india seconf us state of the se-ide into the main repo

Tomer Steinfeld 8:25 PM

I think we can land stable 4.0 together, but I don’t see a reason we should release 4 alphas together

adamgoucher 8:26 PM

(or we can keep talking about js too. but that list is just my remaining things)

Marcus Merrell 8:26 PM

the PLC call happened on Tuesday, it was just me and Jim. We mostly talked about conferences, and we were going to follow up with Simon about the status of the Code of Conduct

Simon Stewart 8:27 PM

Uhh… I thought @AutomatedTester was running with the CoC stuff.

Marcus Merrell 8:27 PM

at this point India is still slated to happen in September, same venue. I don’t know the latest about speakers or progress or anything like that

Simon Stewart 8:27 PM

It’s entirely possible I am mistaken

adamgoucher 8:27 PM

i thought david was on that too

Tomer Steinfeld 8:27 PM

Is there an update from the SFC about the MS store?

Marcus Merrell 8:28 PM

ok, I thought David was on the MS Store issue, and not the CoC, but it wouldn’t be the first time I was mistaken

Diego Molina 8:28 PM

why don’t we take the CoC draft we have, add it to the new site, and iterate on it?

Simon Stewart 8:28 PM

We were going to get a review and some guidance from Sage Sharp

Marcus Merrell 8:29 PM

for Chicago, we’ve got a verbal understanding that the venue will allow us to reschedule the conference for sometime next year with no fees. We’ve already given them a somewhat hefty deposit, and while we could likely fight to get that back, we’d rather just have it next April or October–we’re going to make that decision in late May/early June

Diego Molina 8:30 PM

for the SeleniumConf website, @andrewmkrug has joined the Selenium GitHub org, and he is helping us to push the site code to a private repo

Marcus Merrell 8:30 PM

for the Fall, we’re considering an online-only conference, and we’re waiting for a few pieces of data to come in over the next couple weeks, around TestBash and SauceCon, to gauge how they went, ideas for optimization, pros/cons, do’s don’t’s, etc

Andrew Krug 8:30 PM

was added to #selenium-tlc by Diego Molina.

Marcus Merrell 8:32 PM

I spoke to Deb (from SFC) quite a bit on Friday about tips and pointers for an online-only conference, and I’ve started to develop some opinions for how it should be done. I haven’t yet, however, come up with a firm position on the pricing model for sponsors or attendees–I definitely want to offer all the track sessions/keynotes for free, and offer a paid tier for “something” else, like if people want T-shirts or something else, but it would likely be a model where they pay what they want (to support the project), and the swag they get depends on the tier they buy into

8:33

I’m waiting to hear more from Richard Bradshaw before beginning that discussion, probably during our bi-weekly Conference conference call, on May 28th

adamgoucher 8:35 PM

so. CoC — when can we get the review and guidance? if its more than ‘not in may’ we should likely throw it up and start the iteration process

Simon Stewart 8:36 PM

It depends on Sage’s availability, and that of the people working on the CoC

adamgoucher 8:37 PM

(which, sounds like we’re not quite sure of who those are from our end)

Simon Stewart 8:37 PM

Last I checked, @mmerrell, @AutomatedTester, @diemol, @jimevans and I were all interested in being involved

8:38

From memory.

adamgoucher 8:38 PM

so the nebulous items seem to be; determine who is actually on the coc stuff

Simon Stewart 8:38 PM

Agreed

adamgoucher 8:38 PM

doh! no editing. and, determine who is actually doing the ms store stuff

8:40

which means, for the next meeting;

  • release a6 (a7 of js)
  • report who is point and who is assisting with the CoC
  • report who is leading the ms store stuff

8:41

anyone else have anything they want / need to discuss in public?

Simon Stewart 8:41 PM

I’m good

8:41

Though perhaps we should figure out who owns what on that list I hold the build bacon this time

Diego Molina 8:42 PM

maybe we can record how a release is done? and from that I can write docs

Simon Stewart 8:43 PM

I’ll walk you through the process We did have it written up here: https://github.com/SeleniumHQ/selenium/wiki/Releasing-Selenium

adamgoucher 8:43 PM

from the april 23 meeting, looks like @AutomatedTester is the store person Screen Shot 2020-05-07 at 11.12.57 AM.png Screen Shot 2020-05-07 at 11.12.57 AM.png

David Burns 2 days ago

I am waiting on replies from SFC. I chased up yesterday. Have meeting with MS next week

adamgoucher 8:45 PM

anyone volunteering for CoC lead?

Diego Molina 8:46 PM

ah nice, the release process is written, we “just” need to update it

Simon Stewart 8:46 PM

The java one doesn’t seem wildly inaccurate

adamgoucher 8:48 PM

which means, for the next meeting;

  • release a6 (a7 of js) – simon
  • report who is point and who is assisting with the CoC – tbd
  • report who is leading the ms store stuff - david?

Alexei Barantsev 8:49 PM

sorry to be late, I’m +1 for the next alpha

adamgoucher 8:50 PM

so if there isnt anything else, i say we call this thing done and do it all again in a fortnight.

8:52

slack says no one is furiously typing so, see all y’all in two weeks. as ever, if there is something you want discussed, message me directly or just drop it here for us to pickup

Diego Molina 8:53 PM

thank you @adamgoucher!

Simon Stewart 8:54 PM

Thanks, @adamgoucher!

David Burns 9:24 PM

Argh… missed it again!!!

9:28

For CoC, I keep dropping the ball on this one. I have been busy with work but hopefully can do something in the next two weeks

Public Project Meeting - April 23, 2020

Continuing the series of bi-weekly public project meetings…

Continuing the series of bi-weekly public project meetings, here is the timeline of the meeting held on April 23, 2020 (times are on CET).

Meetings are held on the #selenium-tlc channel on Selenium Slack.

The next meeting will be on May 7, 2020, 4:30 PM CET.


Diego Molina 4:32 PM

Hi all, we are going to start the next project status meeting in a moment

for now, the agenda would be:

  • project stats: +/- issues, prs
  • any staffing announcements
  • whats been worked on (seems things are picking up again)
  • whats next
  • when do we plan the next release
  • SeleniumConf status (for India and Chicago), and its website

Simon Stewart 4:32 PM

Does someone want to announce it on the main #selenium channel too?

Diego Molina 4:33 PM

I can do that

Simon Stewart 4:33 PM

Thanks

Diego Molina 4:34 PM

before we start, does anyone want to add a topic?

4:36

maybe we can also discuss the Go bindings again

but I will take that silence as a “no more topics”

First topic, project stats: +/- issues, prs…

Simon Stewart 4:37 PM

@AutomatedTester probably knows those

Diego Molina 4:37 PM

Since a few weeks we are under 65 PRs and 400 issues, we made progress but not as significant as in the previous weeks

I am looking at a couple of OSS projects that build a dashboard so we have a better overview

Simon Stewart 4:38 PM

It’s the law of diminishing returns. We’re starting to hit actual issues and things that need thinking about

Diego Molina 4:41 PM

I experimented during the weekend with https://chaoss.github.io/grimoirelab/ and https://github.com/cncf/devstats, I liked the first one more, but we need to find a place where to deploy it for free Recently I bumped into https://github.com/google/triage-party, which could be also a good one to have an overview (edited)

4:42

all this in the spirit of having a clear project status for everyone

I can try to have something working for the next meeting, does anyone have more comments or should we move to the next topic?

Simon Stewart 4:42 PM

No comments from me

Diego Molina 4:43 PM

next topic: any staffing announcements, what did you mean by this @adamgoucher?

Simon Stewart 4:43 PM

@harsha509 has joined the team :slightly_smiling_face:

adamgoucher 4:43 PM

anyone get the commit bit, step away from a committee, etc.

Diego Molina 4:44 PM

well, @tourdedave mentioned he does not have the bandwidth to be in the TLC (which is my fault because I added him without asking, in the spirit of having someone from the IDE)

4:45

we could just leave it as it is or ask around if someone is interested?

Simon Stewart 4:45 PM

Having a strong owner for the IDE would be really helpful

Marcus Merrell 4:47 PM

I’m afraid unless he or Tomer change their mind, I’m not sure anyone exists who could fit the bill

we maintain really strong contacts with Dave.. that might have to be good enough for now

Diego Molina 4:48 PM

the TLC has no size limit, so things could continue as they are, right?

Simon Stewart 4:49 PM

They could

And it sounds a bit unfair to continue to lean on @tourdedave after he’s stepped away

Diego Molina 4:51 PM

what the IDE needs for now is support from the PLC, since Microsoft wants to help with having the extension on Edge (new), but I think @AutomatedTester asked to be introduced to them, not sure what the status is there

support as in, sort out legal stuff for creating an account on the MS store

Simon Stewart 4:52 PM

That won’t be hard. Someone needs to message the selenium@conservancy.org

Tomer Steinfeld 4:52 PM

I introduced @AutomatedTester I think the next step is to have someone from the SFC create an account

To do that we need PLC stamp

So that the SFC will do it

Simon Stewart 4:52 PM

@mmerrell want to run with that, or shall we ask @AutomatedTester to do it?

Titus Fortner 4:52 PM

What does that give the project though, if it isn’t the electron implementation?

Marcus Merrell 4:52 PM

I can run with it

Simon Stewart 4:52 PM

I’m happy with @AutomatedTester on point here :slightly_smiling_face:

Titus Fortner 4:52 PM

Not saying we should ever turn down help

Just curious

Marcus Merrell 4:53 PM

He might have better contacts than me

Simon Stewart 4:53 PM

@titusfortner support on Edge, and maybe someone from MS will step into the gap

Diego Molina 4:53 PM

to have the IDE working on the new Edge

Simon Stewart 4:53 PM

And also, and this is important, IDE working on Edge (as @diemol says)

Titus Fortner 4:55 PM

I thought all chromium apps worked already. I should actually use it :)

Diego Molina 4:55 PM

could we leave as an action item to have @mmerrell (since he is in the PLC) chat with @AutomatedTester in case David needs help with the PLC? and have a status for the next meeting?

Simon Stewart 4:56 PM

Sure

Diego Molina 4:57 PM

you ok with that @mmerrell?

while he answers, should we move slowly to the next topic?

Marcus Merrell 5:00 PM

yeah, I’m ok with that

Diego Molina 5:00 PM

next topic, whats been worked on (seems things are picking up again)

Simon Stewart 5:00 PM

I’ve some diffs lined up

5:01

  • Streamlining how we manage cli flags and configuration, so that things included on the ClassPath get picked up too
  • WebSocket proxying
  • A patch that I started at SeConf (I know) to get relative locators working a little more nicely
  • I also have experimental support for pinning browser versions (and their drivers) in the bazel build, which resolves some issues that folks may have

When I get some bandwidth, landing those would be nice

After that, I’ll dig into the .Net stuff now that @jimevans has it working on macOS and see whether there’s some jiggery-pokery with select we can do so that bazel test //… will work the way we expect it to

Oh, I’ve also started wrapping OpenTelemetry with our own APIs so we do an update without too much chaos

0.2.0 -> 0.3.0 is messy

Diego Molina 5:04 PM

From my side:

  • Docker images working with the Grid 4 Alpha 5, only supporting standalone and hub/node for now
  • Working on adding support for retries in the Grid, issue #8167
  • Also, added tags and categories to the blog in selenium.dev, so now all governance related meetings can be seen at https://www.selenium.dev/categories/governance/

Marcus Merrell 5:04 PM

ditto me for the “quiesce” feature, in terms of “working since SeConf” and “when I get some bandwidth”

Jim Evans 5:05 PM

@simonstewart let me know what you’d like to see here in terms of .NET.

Marcus Merrell 5:05 PM

the bulk of it is complete, still do to:

actually spin down the nodes

5:05

write unit tests

Simon Stewart 5:06 PM

I’ve still been pondering on how we make it possible to spin the grid up in an ad-hoc order

And I keep coming back to the fact that life would be easier if we had a backbone of a “message bus”, a “key/value store”, and a “service registry”

We definitely have the message bus already

And the session-map is perilously close to being a key/value store

Diego Molina 5:07 PM

conceptually I wanted to cover that in the support for retries issue, because we cannot expect the docker containers to start always in the same order

Simon Stewart 5:07 PM

Right

Regularly has support for a successful retry and an unsuccessful retry

But we can’t build everything on that :slightly_smiling_face:

Diego Molina 5:08 PM

I want to tackle that first, so at some point containers can be used in other envs

between https://jodah.net/failsafe/fallback/ and https://github.com/resilience4j/resilience4j I am liking more the first one (edited)

Simon Stewart 5:08 PM

You’re writing the code, and I like both of them :slightly_smiling_face:

5:09

Fallback is also used by an alternative netty-based http client

We may need to switch from AsynHttpClient because it doesn’t support http2 (or unix domain sockets)

5:10

I’ve been looking at io.projectreactor.netty:reactor-netty:0.9.6.RELEASE and I think @barancev may have some code

Or he may not :slightly_smiling_face:

Diego Molina 5:10 PM

I guess we can come back to that when some written code from my side actually works :slightly_smiling_face:

Simon Stewart 5:11 PM

Well, it means that looking at failsafe fallback is a better bet

Which leans into your preference

So it’s more a datapoint than anything else

Diego Molina 5:12 PM

sounds good

ok, should we move to the next topic, so we can hopefully finish on time

Simon Stewart 5:12 PM

SGTM

Diego Molina 5:12 PM

next topic is, what’s next & when do we plan the next release

Simon Stewart 5:12 PM

Next release? I’d like a banner feature in. WebSockets and CDP across the Grid would be it, for me

5:13

Or we can just ship what we have

Marcus Merrell 5:13 PM

that would be amazing

Simon Stewart 5:13 PM

It’s a SMOP

Simple Matter of Programming

Diego Molina 5:13 PM

we have 267 commits after the alpha 5 release, sounds like there could be something we can release?

Simon Stewart 5:13 PM

So I think the choice we have to make is “timed releases” or “feature releases”

Marcus Merrell 5:14 PM

I thought SMOP might be “Simple Matter of Pfantasy”

Simon Stewart 5:14 PM

git log selenium-4.0.0-alpha-5..HEAD --oneline java

5:15

HA! 098eb99991

5:15

We landed support for configs via TOML….

Diego Molina 5:16 PM

true, what if we try to have the retries thing, docs for toml, and maybe have a release before the next status meeting?

Simon Stewart 5:16 PM

Looks like lots of little fixes

DOCS?

:wink:

I can write an info section for configuration

Diego Molina 5:17 PM

that is what I was thinking

Simon Stewart 5:17 PM

kk

File an issue and assign it to me

(At some point, I need to do my day job)

Diego Molina 5:17 PM

before the beta some of us need to make those docs a bit nicer for Se4

5:18

I will do that then

Simon Stewart 5:18 PM

Thank you

Shall we mark some issues as “4.0a6”?

Diego Molina 5:19 PM

Maybe it is too much, not sure

Marcus Merrell 5:19 PM

my offer still stands to help with issue hygiene, I just need permissions

Simon Stewart 5:19 PM

Or, perhaps, let’s work on our features, and next meeting ship 4.0a6 regardless of where we are

@mmerrell I’ll fix that up for you now

And @harsha509 too

Sri Harsha 5:20 PM Js bindings is already at alpha7. We can try to implement relative locators(which is pending in JS bindings) and release in next meeting.

Simon Stewart 5:21 PM

That’d be great

Thank you

Diego Molina 5:21 PM

issue for TOML https://github.com/SeleniumHQ/selenium/issues/8232

Simon Stewart 5:22 PM

Thank you

Diego Molina 5:22 PM

ok, two topics left

first is, SeleniumConf status (for India and Chicago), and its website

Marcus Merrell 5:23 PM

I’ll see if I can get a website update from Bill McGee now that it’s a bit later on the west coast

Diego Molina 5:23 PM

so India will happen (:crossed_fingers: ) in September, and Chicago in November, does anyone know any news related to that?

Simon Stewart 5:24 PM

@mmerrell you should have an invitation from GH to join the SeleniumHQ org. Am slightly surprised you’re not a member already :slightly_smiling_face:

Marcus Merrell 5:26 PM

the conference status is currently:

  • We’re waiting until around May 15th to make a decision, but
  • While we believe the conference could happen in November, it’s Bill McGee’s observation that people right now just don’t seem to be interested in buying tickets, submitting papers, or writing checks to sponsor in-person conferences right now
  • Given that we’re having trouble motivating people to take the actions they need to take now (the previous point), it’s hard to imagine how we can feel confident in a November conference in the near future
  • What I’m saying is that, things in the community need to happen in May in order to hold a conference in November, and I don’t have even the barest hint that those things will happen

so, at this point we believe we will be able to recover most/all funds from the Holiday Inn, based on Sauce’s experience with the Fairmont in Austin, and TestBash’s experience in Detroit

5:27

but we’re going to wait a few more weeks, a) because we can, and b) in case there’s some kind of earth-shattering news that comes out that changes the picture

Simon Stewart 5:27 PM

The UK has been told that social distancing will remain necessary until next year

Alexei Barantsev 5:28 PM

@simonstewart I don’t have any new code for http client yet, just an item on my todo list

Marcus Merrell 5:28 PM

as you might have seen, our leadership much more optimistic :face_palm:

Simon Stewart 5:28 PM

@barancev ok. There’s no rush

Diego Molina 5:29 PM

that’s a great update @mmerrell, thanks

something else I wanted to ask is, if we could have at some point the SeleniumConf website code and assets also under the SeleniumHQ GitHub org

Simon Stewart 5:29 PM

Totes up for that

5:30 I’ve another meeting to go to

Marcus Merrell 5:30 PM

me too. that’s where things get sensitive

Simon Stewart 5:30 PM

Toodle pip

Marcus Merrell 5:30 PM

but I think we need to head in that direction

Diego Molina 5:30 PM

and as part of this, add the general conference guidelines to the governance doc

Marcus Merrell 5:30 PM

yep, that’s on my plate

Diego Molina 5:30 PM

that’s fine, we can stop here as we have no more time

5:31

but we can keep the topic in our head for informal discussions

Simon Stewart 5:31 PM

You can carry on without me. I’m fine with that :slightly_smiling_face:

Diego Molina 5:31 PM

and have a status of it in the next meeting

5:32

to respect people’s time, we will end the meeting here, I will upload the minutes to selenium.dev, and prepare an agenda for the next one

5:32

thank you everyone!

Public Project Meeting - April 9, 2020

As an initiative to bring more transparency to the Selenium project…

As an initiative to bring more transparency to the Selenium project, we are now holding bi-weekly public project meetings. These are written meetings which are held on the #selenium-tlc channel on Selenium Slack.

Here is the timeline of the meeting held on April 9, 2020 (times are on CET).

The next meeting will be on April 23, 2020, 4:30 PM CET.


Simon Stewart 4:31 PM @adamgoucher there needs to be a calendar invite for these things

adamgoucher 4:32 PM well, originally the idea was that people could manage their own calendars but if you send me which email you want it attached to i can add you to the one ive been putting people on who wanted an invite

4:35 anyhow; here’s the rough approximation of an agenda. we’ll see how it goes;

  • anything governance-y that needs to be discussed in public (not limited to, but including public announcement of people getting the commit bit, etc.)
  • status of prs
  • status of issues
  • status of se project related events (india, chicago are the big ones)
  • next release status and/or timeline
  • go around the metaphorical table on how people are doing against things they signed up for
  • anything that needs to get sussed out in public (from reading the channel, the main thing that came up is the js discussion)
  • open the floor for other discussions either instigated by ’project people

4:38 anything governance-y that needs to be discussed in public (not limited to, but including public announcement of people getting the commit bit, etc.)

Diego Molina 4:38 PM if there is time, let’s add the recent topic of adding go bindings

adamgoucher 4:38 PM has there been an sfc call recently? (i cant remember when they are)

Diego Molina 4:40 PM governance related, I’d say: we need to define where we put these meetings minutes, how we announce them widely (do we need?), and that we still need a code of conduct

adamgoucher 4:41 PM ok. @diemol pester my monday morning if i haven’t figured out how to get them onto the blog by then

Diego Molina 4:41 PM So, meetings minutes… we can put them in the same format as a blog entry, and we can tag/label them so they are publicly accessible I can do that, I would just need the contents of the previous meetings, and also add small instructions on how to add new ones

adamgoucher 4:43 PM i think we just start with this one. i didnt take the most excellent notes the last couple and they might have expired out the channel (havent scrolled up to check)

Diego Molina 4:43 PM ok, so I will start doing that with this onee

adamgoucher 4:44 PM who is the point person for the code of conduct

Diego Molina 4:44 PM @AutomatedTester said something about being working on it? 4:44 but we currently have a draft, why don’t we use that draft and iterate on it?

adamgoucher 4:45 PM makes sense. as we did with the other doc

4:46 ok. next thing on the list is status of prs. which @AutomatedTester has been culling like a mad man over the last week and we’re down the 62

4:47 followed closely by status of issues and there is now 402 which i think he is also attacking (but i dont have a number from 2 weeks ago)

Diego Molina 4:48 PM perhaps we should set up a project health status dashboard I saw a couple of OSS projects that could do that

adamgoucher 4:49 PM could be interesting. of course we could also then get into wild semantic discussions around ‘what’ healthy is. :smile:

4:50 next; status of se project related events (india, chicago are the big ones)

4:51 i saw that seconf india has been moved to september. how is chicago looking?

Diego Molina 4:51 PM I think no one is around who could reply that question

David Burns 4:52 PM I also think it’s too early to comment. Chicago is in lockdown at the moment for the foreseeable

4:52 we also need to be see how many venues are still around when we come out of our homes

Isaul Vargas 4:53 PM As for big cities in the US, only by End of May can we know if restrictions will be lifted due to testing and lowering the curve.

adamgoucher 4:53 PM (it has more of a recurring agenda item more than me seeing someone who can answer)

4:54 and restrictions will be lifted in june and clamped back down in july. as is the way in a pandemic. (and really, will be until we get a vaccine)

4:55 next item; next release status and/or timeline. @simonstewart?

Simon Stewart 4:55 PM India has been moved to later in the year

4:56 We’re running the 4.0 release in the open: https://github.com/SeleniumHQ/selenium/projects/2

4:56 The config stuff won’t be too horrible. I’m quite liking the fact that TOML opens up some options

adamgoucher 4:56 PM yup. so is your plan still ‘push the button on stage to do the release and retire for your daily beverage’ or are we aiming for a same-ish part of the calender

Simon Stewart 4:56 PM When we ship, I stand down

4:57 I’d still like to get the betas out soon

4:57 But there are some big pieces missing before we can get to that point

4:58 The big one being the CDP stuff across Grid, which I’ve many of the moving parts for in various branches on my machine

Diego Molina 4:58 PM when I look at the things on the “to do” column, maybe 80% is Grid, right?

5:00 if so, it is something that calms me down because at least (from my side), I am having slowly more time to work on the code

5:00 but there are a couple of things on that list which concern me: IDE to the monorepo (and build it with bazel) + implement CDP and relative locators in JS

David Burns 5:01 PM I am doing the IDE to mono repo now

5:01 relative locators in JS should be easy, I can do it or talk @harsha509 through it

Diego Molina 5:02 PM but in the IDE, what is our approach in terms of browser extension vs. electron

5:02 right now we could only do the browser extension, right?

David Burns 5:02 PM that is separate from the mono repo work

5:03 these are questions for @tourdedave and @corevo

Simon Stewart 5:03 PM Right now, there’s just the browser extension, but @tourdedave and @corevo did start work on the electron port

5:03 I’m not sure what kind of progress they’re making, if any

Diego Molina 5:04 PM ok, so it seems we will only focus on the browser extension for now

adamgoucher 5:07 PM ok, so to summarize; all the known to-dos are in the github project india has been shifted, but dont want to just move the target to september aiming for betas to start soon, grid cdp is really the last big hurdle until those can start

Diego Molina 5:08 PM and the JS stuff, right?

5:08 (CDP + relative locators)

adamgoucher 5:09 PM i think we can skip the next thing which is ‘how are people progressing on the stuff they signed up for’ with a ‘see the github project’

5:11 because the next thing on the list i prepared was - anything that needs to get sussed out in public which, for today, means ‘what to do about javascript’. not sure that anything got resolved the other day but i think the core of it is ‘webdriver.js is the official binding but not under the auspices of the project’ or something?

Simon Stewart 5:11 PM To reiterate feedback from other people, and my own reflections:

5:12 There is a general feeling that the selenium project should own the core of its own bindings We’ve gone from having basically no-one interested in JS to having Sri on board (@harsha509) We’ve not nailed down the overall strategy yet

5:14 Which kind of suggests not using webdriver.io’s webdriver module, but continuing to work with our own stuff

5:14 Unless that module moves under the aegis of the project

Diego Molina 5:15 PM oh, actually I was talking to @christian-bromann about it, and he manifested again his interest to help move the JS bindings to use the webdriver package, and leave things ready for someone who wants to maintain the bindings

Simon Stewart 5:15 PM And if the code for the webdriver package was in our repo, I think that’s probably what we’d do

Diego Molina 5:16 PM I am not a 100% sure that he is ok with moving the code from that package to our repo but in the worst case, would a copy/fork of the code work?

Simon Stewart 5:17 PM That seems like a bad idea

Christian Bromann 5:17 PM What is the problem of not having the webdriver binding in the Selenium repo?

Simon Stewart 5:18 PM The feedback I’ve had from several people has been that they’re deeply uncomfortable with it, and won’t approve of it

5:18 It’s not just a technical thing

5:18 There are the social aspects to consider too

Christian Bromann 5:19 PM I understand.

Diego Molina 5:20 PM well, the idea of the committees is to reach consensus in these cases, and it looks like we would never reach it for this situation

Christian Bromann 5:20 PM Well the idea of generating raw bindings based of some json files is pretty easy to reimplement and I am happy to support how it can be done.

5:22 copying over the code form WebdriverIO to Selenium is rather difficult as it depends on some other wdio utilities (logging and utility functions)

Simon Stewart 5:22 PM I do wonder how far adrift the JS bindings are

5:23 The obvious missing 4.0 features are relative locators and the CDP integration

5:23 The CDP integration isn’t nailed down properly anywhere. We’ve got access to the raw protocol, but we’ve yet to build the abstractions people would actually write against

Christian Bromann 5:23 PM Given the situation I am would be also happy to invite the Selenium JS contributor to the WebdriverIO org to ensure code access and ability to merge/review code changes.

Simon Stewart 5:24 PM Thank you

Diego Molina 5:25 PM well, then it seems JS bindings stay as they are hopefully we all find a way to make them fit for the 4.0 release

5:25 should we talk about the go bindings?

adamgoucher 5:26 PM thats the only other thing on my list

Simon Stewart 5:26 PM We can talk about Go bindings

5:27 Miki offered to donate https://github.com/tebeka/selenium to the project a while ago

5:27 I got busy and had health issues, so dropped things on the floor

5:27 Should we pick that back up again?

adamgoucher 5:28 PM is he also intending to maintain it (dunno the status of them) or is it a ‘i did a thing and dont need it anymore so someone can pick it up if they want’

Simon Stewart 5:28 PM I dunno

5:28 That would be part of the conversation

David Burns 5:29 PM if it’s the latter then I am not sure we would want them. It’s amazingly nice but the maintenance burden, potentially, doesnt feel worth it

Simon Stewart 5:30 PM Indeed

5:30 But it would be nice to have some “official” Go bindings.

adamgoucher 5:30 PM i know nothing about go, but i feel like the bar for any binding to be included in the main project; is it maintained? is it idomatically correct for the language? is there not a competing, more obvious one to incorporate?

Simon Stewart 5:30 PM Turns out that people like them

5:30 s/them/the language/

Diego Molina 5:30 PM seems it is worthy to give the conversation a go

5:30 who would like to drive that conversation with Miki?

Simon Stewart 5:31 PM It’s pretty dormant right now, but is that due to being complete? My understanding is “yes” Nothing that I’m aware of

5:31 puts finger on nose

adamgoucher 5:31 PM sounds like ‘you are a go’ for the conversation about go. as it were

Simon Stewart 5:31 PM Not me

5:31 Yeah, I think it’s a conversation that’s well worth having

Diego Molina 5:32 PM I can see from a quick look that the go bindings have vendor stuff in it, for example it has the ability to use Sauce Labs out of the box

5:33 even if I work for Sauce, we need to see all those things in case we want to merge them

Simon Stewart 5:34 PM Aye

Diego Molina 5:36 PM I know how the Grid works (in general), but I still have black spots in my head when talking about bindings we need someone who knows how bindings should work and do a check on the go bindings

adamgoucher 5:37 PM sounds like ‘we think having the go bindings in the main project is cool, but currently the people in the channel right now dont have enough interest (or knowledge) to drive the conversation’

5:38 likely also have to talk to sfc about rights transfer and such. though the existing licensing could cover it

Diego Molina 5:39 PM maybe we bring the topic back in 2 weeks and see how people feel?

Simon Stewart 5:40 PM SGTM

adamgoucher 5:41 PM ok. i didnt have anything else? did anyone else?

Simon Stewart 5:42 PM I’ve got other meetings to attend, so nowt from me

adamgoucher 5:43 PM taking silence from the rest as a no. thanks everyone!

Diego Molina 5:43 PM Thank you all!