-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Comments
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:
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. |
@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. |
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. |
@00ff0000red also showed interest for adding Deno data into BCD in #8729. |
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. |
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:
|
@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.) |
Makes sense :-). I'll open a content proposal for MDN after this is landed. |
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. |
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/
The text was updated successfully, but these errors were encountered: