First of all, thank you very much for your interest in contributing to BCD! We‘re really happy to accept contributions from everyone, whether you’re a browser engineer, a spec writer or a web developer. This document contains the information you need to get started.
The BCD project welcomes contributors of all kinds, however there are a few requirements that all contributors must follow.
The project requires that all contributors follow Mozilla's code of conduct and etiquette guidelines. Violations of these guidelines may result in exclusion from all MDN Web Docs projects.
This project has a formal governance document, which describes how various types of contributors work within the project and how decisions are made.
The repository is licensed under the Creative Commons CC0 Public Domain Dedication license. Any contributions must be compatible with its terms. If you are contributing for a company or other organization, please ask your employer.
To contribute to this project, you must have all of the following:
Most simple changes can be done within the GitHub website. For more substantial changes, you will need to clone the repository locally, and as such will need the following:
At times, you may need to search through browser source code. To do so, you should have the following:
While contributing to BCD, there are a number of tools and other resources we regularly use. Some of them are the following:
These resources are helpful for updating Chromium-based browsers, including Chrome, Edge (79+), Opera, Quest, Samsung Internet, WebView and more.
android_webview/…/global-interface-listing-expected.txt
: A list of interfaces and interface members that are exposed on WebView Android.There are many ways you can help improve this repository! For example:
If you're going to submit a pull request modifying the compat data, we highly recommend reading the compat data schema document for a rundown of the compatibility data structure.
When adding data for a particular feature, you'll often need to find which version of each browser the feature first shipped in. For how-to guidance which will help you do that, see Matching web features to browser release version numbers.
Before submitting your pull request, validate your new data against the schema.
Not everything is enforced or validated by the schema. A few things to pay attention to:
css.properties.background
) should make sense and are spelled correctly.If the feature you‘re interested in is an API, CSS or JavaScript feature, you can cross-reference data against mdn-bcd-collector. See the project’s guide on updating BCD using the results for instructions.
Many browsers within BCD can be derived from other browsers given they share the same engine, for example Opera derives from Chrome, and Firefox Android derives from Firefox. To help cut down time working on copying values between browsers, contributors may specify a special value in the data to automatically mirror the data from their upstream counterparts. See the schema documentation for more info.
Note: originally, this functionality used to be provided as an executable script. However, because the script had to be run manually, this meant that mirrored data would become stale rapidly. It was proposed in #15083 to move the mirroring into a build step to reduce maintenance time.
If you need help with this repository or have any questions, first check the FAQ to see if your question has been answered. If your question is not listed or you still need help, contact the MDN team on chat.mozilla.org#mdn or write to us on Discourse.