wd
wd copied to clipboard
Port core logic to webdriver package
Let's make a plan on how we can port core logic from the webdriver
into WD. Given the current state I feel uncomfortable just adding it as another dependency and just stuck it into the code base. It seems to be that a rewrite that would retain the WD API is the best way forward. Therefor let's discuss what we can keep as functionality and API interface and what we should drop.
The following I consider outdated and should be dropped:
- callbacks (in favor of promises)
- asserter
- chaining
I feel like if we want to modernise this everyone needs to rewrite his tests anyway if we would drop promises. I would rather spend time on adopting all the nice things of WD into WebdriverIO.
What do you guys think? @admc @jlipps
What is of course difficult about this is that I have no idea how people are using this and which API's need to continue being supported for historical reasons. I think the proposal to do a rebuild on top of the webdriver core project to re-implement these interfaces makes sense. Maybe start with promises as a major breaking release and then add the other stuff back in if people ask for it.
I also like the idea that WD functionality that people like could inform work for webdriverio and eventually just become a small wrapper, so that work doesn't need to be done in multiple projects everytime something changes.
I agree with @admc. My thought for a next major rev would be:
- rewrite based on wdio core
- promise-only (i could be convinced we should continue to support chaining though...)
- same API surface
- new tests
- new doc generation
i think if we do all that we'll have something that isn't busted and can be used immediately by many users or easily migrated to by other users.