Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new engine/platform Deno #5476

Closed
jimmont opened this issue Jan 12, 2020 · 9 comments · Fixed by #10753
Closed

new engine/platform Deno #5476

jimmont opened this issue Jan 12, 2020 · 9 comments · Fixed by #10753
Labels
data:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation.
Milestone

Comments

@jimmont
Copy link
Contributor

jimmont commented Jan 12, 2020

A relatively new platform Deno is under active development that includes language and Web API features. Deno seems well suited for addition as a target to track for compatibility in the same way Nodejs is currently tracked.

Please add Deno as an MDN target when it fits the requirements. I anticipate this platform displacing Nodejs due to overall design advantages.

More details:
https://github.com/denoland/deno
https://deno.land/

@queengooborg queengooborg added the data:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation. label Jan 13, 2020
@ddbeck
Copy link
Collaborator

ddbeck commented Jul 16, 2020

This came up in the MDN chat on Matrix today. Now that Deno is 1.0, I understand there's a little more interest in this. I thought I'd recap (and elaborate) on my comments in chat today.

As far as I know, we don't have a distinct policy on adding new browsers and engines to BCD. But I can say with certainty that before adding a new one, we'd want to know there's demand for such data and a path to sustainably maintaining it.

This is far from comprehensive, but some questions to consider:

  • Are BCD consumers interested in this data? Are there would-be consumers of BCD who aren't because it doesn't include this engine?
  • Are there resources to help BCD's maintainers review PRs? (e.g., Chrome Platform Status, node.green, etc.)
  • Are there engine experts who would agree to respond to review requests? Who are these people? Do they have a good track record of participation in their respective communities?

I imagine other BCD maintainers have other questions, of course.

It's a pretty small team that keeps BCD on track, so we'll need to make sure that we're planning additions in a way that ensures our data continues to increase in quality and utility.

@ry
Copy link

ry commented Jul 16, 2020

@ddbeck We are definitely interested in getting Deno on MDN, and I can make sure PRs get reviewed (either by me or someone else on the team).

We don't currently run Chome Platform Tests as part of our CI, but we certainly would like to. I would be happy to dedicate resources to making that happen.

@crowlKats
Copy link
Contributor

I've been working on something like a draft for this, but was wondering: as i saw that the BCD for Node only has entries in APIs it supports, and doesn't have entries for APIs it doesn't. Should we follow suit with Deno? I think we shouldn't (to some extend; i don't think we should have entries for things like CSS), as Deno does strive to be browser compatible, so if someone looks up an API but finds no entry for Deno, they might get confused as to whether it does support it or not. With node this might not be an issue as it barely follows any web standards as doesn't strive to be compatible.

@queengooborg
Copy link
Collaborator

@00ff0000red also showed interest for adding Deno data into BCD in #8729.

@ddbeck
Copy link
Collaborator

ddbeck commented Jan 13, 2021

We now have a more coherent guideline for the addition of new browsers and engines into BCD. You can read it here: https://github.com/mdn/browser-compat-data/blob/master/docs/data-guidelines.md#addition-of-browsers and #7238 provides some additional background.

The gist is, to add Deno, we would need a proposal which shows that Deno meets the expectations for new engines and how would-be Deno contributors would plan to introduce and expand Deno's coverage in BCD.

@lucacasonato
Copy link
Collaborator

Hey 👋 - consider this the proposal:

Deno aims to be a web browser for scripts. We can run user code in a sandbox similar to web browsers, have the ability to import code in the same way as web browsers, implement the same APIs as web browsers, and use the same test suite as web browsers (WPT). Deno is effectively a web browser without DOM. As a consequence, the first place users will look when figuring out how a Web API works is MDN.

MDN is also hugely important for discovery of web APIs. If you look up "fetch request javascript" on Google, the first result will be "Using Fetch - Web APIs | MDN". Navigating to that page a user can see what browsers the API is available in. It would be great for Deno users if that chart also showed compatibility in Deno. For some APIs like URL, server side runtimes are already listed (Node), so this would not be a crazy new change.

The same also applies to caniuse. Many developers are familiar with caniuse, and use it to determine if a certain browser / engine supports a specific feature.

A first step towards getting the data displayed on MDN and canisue is to get the Data into the BCD index. I think the Deno project is now ready to take on the maintenance of BCD for Deno. Our team and project is well set up to handle this:

  • We run web platform tests as part of CI (view results at https://wpt.deno.land/). This can be used to accurately and deterministically determine compat data.
  • If accepted, we will add updating of BCD data to our release checklist. That way no extra work is needed from the BCD team - we would be pushing up all the data in a timely fashion right after a release.
  • We have a team of full time engineers who is available to review Deno BCD, and would be acting on behalf of the vendor. Right now @ry and me would be available as reviewers.
  • If accepted, we will provide documentation on how we test individual features and where our WPT results are available.

@ddbeck
Copy link
Collaborator

ddbeck commented Jun 8, 2021

@lucacasonato Thank you so much for writing this up and starting the implementing PR. This is exactly the sort of thing I was hoping would come out of the engine addition guidelines. 🎉

I'll start reviewing the data PR, though it may take me some time to get through the whole thing.

There is one additional piece of this, that this proposal doesn't quite cover, which is getting a consumer of BCD to show the data. Actually displaying the data is up to BCD's consumers (e.g., MDN, caniuse, etc.). My first impression of your data is that it's suitable to show up on MDN, but I think current practice obligates a discussion post on mdn/content (and, subsequently a PR against mdn/yari, to implement the icon and other changes needed to the compat table code). Since you've closely followed our guideline here, I'd happily endorse showing the Deno data on MDN and give it my support on a content discussion.

(If you want Deno data to appear elsewhere, you'll need to look into those other consumers' processes. But since BCD is so closely linked to MDN, I figured that'd be the easiest path forward.)

@lucacasonato
Copy link
Collaborator

which is getting a consumer of BCD to show the data

Makes sense :-). I'll open a content proposal for MDN after this is landed.

@lucacasonato
Copy link
Collaborator

I'll start reviewing the data PR, though it may take me some time to get through the whole thing.

Regarding the data review - I'm hoping to get https://github.com/foolip/mdn-bcd-collector working in the next couple of days to get some hard data on when which feature was added. Maybe this could help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants
@ry @ddbeck @jimmont @queengooborg @lucacasonato @crowlKats and others