Skip to content

Commit f8dbc2f

Browse files
captainbrossetPatrick Brosset
andauthored
2025 dashboard
Co-authored-by: Patrick Brosset <patrickbrossset@gmail.com>
1 parent 3eb7ad5 commit f8dbc2f

File tree

87 files changed

+4963
-3055
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+4963
-3055
lines changed

README.md

Lines changed: 108 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,108 @@
1-
# Microsoft Edge - 2024 web platform top developer needs
2-
3-
This repository contains the data and scripts that are used to generate the [Microsoft Edge - 2024 web platform top developer needs](https://microsoftedge.github.io/TopDeveloperNeeds/) dashboard.
4-
5-
For more information about the dashboard, see [Introducing the Edge 2024 web platform top developer needs dashboard](https://blogs.windows.com/msedgedev/2024/04/18/2024-web-platform-top-developer-needs-dashboard/) oin the Microsoft Edge blog.
6-
7-
The rest of this README file explains how to update the dashboard data and site.
8-
9-
## Prerequisites
10-
11-
* Install [Node.js](https://nodejs.org).
12-
* Install the required dependencies by typing `npm install`.
13-
14-
## Updating the list of features
15-
16-
The features listed on the dashboard are defined in the `features.json` file.
17-
18-
To update the list of features, make changes to the file. The file contains a JSON array of objects, where each object represents a single feature.
19-
20-
Features are based on the features part of the [web-features project](https://github.com/web-platform-dx/web-features/). At a minimum, each feature object must contain the following information:
21-
22-
* `webFeaturesID`: the ID of the feature in the [web-features](https://github.com/web-platform-dx/web-features/) repo.
23-
* `rationale`: a list of reasons why this feature is important for our dashboard. Each reason is an object with the following string properties `{ description, link }`.
24-
* `wpt`: a string starting with `/results`, and including the optional request parameters that's used to retrieve WPT test results on the wpt.fyi site.
25-
26-
For example:
27-
28-
```json
29-
{
30-
"webFeaturesID": "object-view-box",
31-
"wpt": "/results/css?q=object%20view%20box",
32-
"rationale": [
33-
{
34-
"description": "The feature is a pre-requisite for the View Transitions API, which is a highly requested feature",
35-
"link": "https://github.com/w3c/csswg-drafts/issues/7058"
36-
}
37-
]
38-
}
39-
```
40-
41-
If the feature corresponds to a group of features from the web-features repo, make the following changes:
42-
43-
* `name`: define a name for the group of features.
44-
* `webFeaturesIDs`: change this field's type to an array of the IDs of the features in the web-features repo.
45-
46-
For example, the Scrollbar styling group below is a group of three different web-features:
47-
48-
```json
49-
{
50-
"name": "Scrollbar styling",
51-
"webFeaturesID": ["scrollbar-color", "scrollbar-gutter", "scrollbar-width"],
52-
"wpt": "/results/css?q=path%3A%2Fcss%2Fcss-scrollbars%20or%20%28scrollbar-gutter%20and%20path%3A%2Fcss%2Fcss-overflow%29",
53-
"rationale": [
54-
{
55-
"description": "Styling scrollbar ranked #5 in the State of CSS Survey 2023's browser incompatibilities question",
56-
"link": "https://2023.stateofcss.com/en-US/usage/#css_interoperability_features"
57-
}
58-
]
59-
}
60-
```
61-
62-
In addition, you can provide the following optional fields:
63-
64-
* `id`: used to set the anchor link ID for the feature. By default anchor links match web-features IDs. Use `id` to override the default anchor link ID. This can be useful when updating a feature over time, to avoid breaking existing links.
65-
* `name`: to override the name coming from the web-features repo.
66-
* `description`: to override the description coming from the web-features repo.
67-
* `spec`: to override the spec (or specs) coming from the web-features repo.
68-
69-
## Generating the dashboard data
70-
71-
1. Update the dependencies:
72-
73-
* `npm update web-features`
74-
75-
This updates to the most recent version of web-features.
76-
77-
* `npx npm-check-updates -u`
78-
79-
This updates to the most recent version of browser-compat-data, and other dependencies, such as Playwright.
80-
81-
* `npm install`
82-
83-
This installs the missing dependencies if new versions were found at the previous step.
84-
85-
* `npx playwright install`
86-
87-
This re-installs the Playwright executables, if needed.
88-
89-
1. To update the computed feature data file:
90-
91-
* `npm run generate`
92-
93-
This re-generates `site/_data/features.json` based on `features.json`.
94-
95-
1. To retrieve the latest WPT revision for this week:
96-
97-
* `npm run get-wpt-shas`
98-
99-
This adds more entries into the `historical-shas.json` file, which is needed to retrieve WPT test results.
100-
101-
1. To retrieve the WPT test results:
102-
103-
* `npm run update-wpt`
104-
105-
This fetches the missing WPT results for our features based on the `historical-shas.json` file, and puts them in `site/_data/wpt.json` as well as generates front-end files in `site/assets/`.
106-
107-
1. To build the site
108-
109-
* `npm run build-site`
110-
111-
This generates the dashboard website in the `docs` directory.
112-
113-
## Testing the dashboard
114-
115-
To test the built website before publishing it to the live server, run `npm run serve-site` and open a browser window to `http://localhost:8080/`.
1+
# Microsoft Edge - 2025 web platform top developer needs
2+
3+
This repository contains the data and scripts that are used to generate the [Microsoft Edge - 2025 web platform top developer needs](https://microsoftedge.github.io/TopDeveloperNeeds/) dashboard.
4+
5+
For more information about the dashboard, see these articles on the Microsoft Edge blog:
6+
7+
* [Introducing the Edge 2024 web platform top developer needs dashboard](https://blogs.windows.com/msedgedev/2024/04/18/2024-web-platform-top-developer-needs-dashboard/)
8+
* [The Edge 2025 web platform top developer needs dashboard](https://blogs.windows.com/msedgedev/2025/06/26/the-edge-2025-web-platform-top-developer-needs-dashboard)
9+
10+
The rest of this README file explains how to update the dashboard data and site.
11+
12+
## Prerequisites
13+
14+
* Install [Node.js](https://nodejs.org).
15+
* Install the required dependencies by typing `npm install`.
16+
17+
## Updating the list of features
18+
19+
The features listed on the dashboard are defined in the `features.json` file.
20+
21+
To update the list of features, make changes to the file. The file contains a JSON array of objects, where each object represents a single feature.
22+
23+
Features are based on the features part of the [web-features project](https://github.com/web-platform-dx/web-features/). At a minimum, each feature object must contain the following information:
24+
25+
* `webFeaturesID`: the ID of the feature in the [web-features](https://github.com/web-platform-dx/web-features/) repo.
26+
* `rationale`: a list of reasons why this feature is important for our dashboard. Each reason is an object with the following string properties `{ description, link }`.
27+
* `wpt`: a string starting with `/results`, and including the optional request parameters that's used to retrieve WPT test results on the wpt.fyi site.
28+
29+
**If you change the `wpt` URL after you've already generated the WPT results, set `wptOverride:true` on the feature object, then run `npm run generate` and `npm run update-wpt` again to update the WPT results for this feature. Later, remove the `wptOverride` field.**
30+
31+
For example:
32+
33+
```json
34+
{
35+
"webFeaturesID": "object-view-box",
36+
"wpt": "/results/css?q=object%20view%20box",
37+
"rationale": [
38+
{
39+
"description": "The feature is a pre-requisite for the View Transitions API, which is a highly requested feature",
40+
"link": "https://github.com/w3c/csswg-drafts/issues/7058"
41+
}
42+
]
43+
}
44+
```
45+
46+
If the feature corresponds to a group of features from the web-features repo, make the following changes:
47+
48+
* `name`: define a name for the group of features.
49+
* `webFeaturesIDs`: change this field's type to an array of the IDs of the features in the web-features repo.
50+
51+
For example, the Scrollbar styling group below is a group of three different web-features:
52+
53+
```json
54+
{
55+
"name": "Scrollbar styling",
56+
"webFeaturesID": ["scrollbar-color", "scrollbar-gutter", "scrollbar-width"],
57+
"wpt": "/results/css?q=path%3A%2Fcss%2Fcss-scrollbars%20or%20%28scrollbar-gutter%20and%20path%3A%2Fcss%2Fcss-overflow%29",
58+
"rationale": [
59+
{
60+
"description": "Styling scrollbar ranked #5 in the State of CSS Survey 2023's browser incompatibilities question",
61+
"link": "https://2023.stateofcss.com/en-US/usage/#css_interoperability_features"
62+
}
63+
]
64+
}
65+
```
66+
67+
In addition, you can provide the following optional fields:
68+
69+
* `id`: used to set the anchor link ID for the feature. By default anchor links match web-features IDs. Use `id` to override the default anchor link ID. This can be useful when updating a feature over time, to avoid breaking existing links.
70+
* `name`: to override the name coming from the web-features repo.
71+
* `description`: to override the description coming from the web-features repo.
72+
* `spec`: to override the spec (or specs) coming from the web-features repo.
73+
74+
## Generating the dashboard data
75+
76+
1. Update the dependencies:
77+
78+
* `npm run bump`
79+
80+
This updates to the most recent version of web-features, BCD, and playwright, as well as other dependencies.
81+
82+
1. To update the computed feature data file:
83+
84+
* `npm run generate`
85+
86+
This re-generates `site/_data/features.json` based on `features.json`.
87+
88+
1. To retrieve the latest WPT revision for this week:
89+
90+
* `npm run get-wpt-shas`
91+
92+
This adds more entries into the `historical-shas.json` file, which is needed to retrieve WPT test results.
93+
94+
1. To retrieve the WPT test results:
95+
96+
* `npm run update-wpt`
97+
98+
This fetches the missing WPT results for our features based on the `historical-shas.json` file, and puts them in `site/_data/wpt.json` as well as generates front-end files in `site/assets/`.
99+
100+
1. To build the site
101+
102+
* `npm run build-site`
103+
104+
This generates the dashboard website in the `docs` directory.
105+
106+
## Testing the dashboard
107+
108+
To test the built website before publishing it to the live server, run `npm run serve-site` and open a browser window to `http://localhost:8080/`.

0 commit comments

Comments
 (0)