Skip to content

Commit d91f968

Browse files
2026 edition
1 parent f979ca3 commit d91f968

File tree

73 files changed

+26397
-2234
lines changed

Some content is hidden

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

73 files changed

+26397
-2234
lines changed

.github/workflows/generate-site.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,16 @@ jobs:
2727
- name: Compute feature data
2828
run: npm run generate
2929

30-
- name: Retrieve latest WPT revision and results
30+
- name: Retrieve latest WPT and Test262 runs and fetch test results
3131
run: |
3232
npm run get-wpt-shas
33-
npm run update-wpt
33+
npm run get-test262-dates
34+
npm run fetch-results
3435
3536
- name: Commit changes
3637
run: |
37-
git config --local user.email "${{ github.actor }}@users.noreply.github.com"
38-
git config --local user.name "${{ github.actor }}"
38+
git config --local user.email "github-actions[bot]@users.noreply.github.com"
39+
git config --local user.name "github-actions[bot]"
3940
git add .
4041
git commit -m "Weekly regen" --allow-empty
4142
git push origin main

README.md

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Microsoft Edge - 2025 web platform top developer needs
1+
# Microsoft Edge - 2026 web platform top developer needs
22

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.
3+
This repository contains the data and scripts that are used to generate the [Microsoft Edge - 2026 web platform top developer needs](https://microsoftedge.github.io/TopDeveloperNeeds/) dashboard.
44

55
For more information about the dashboard, see these articles on the Microsoft Edge blog:
66

@@ -24,9 +24,11 @@ Features are based on the features part of the [web-features project](https://gi
2424

2525
* `webFeaturesID`: the ID of the feature in the [web-features](https://github.com/web-platform-dx/web-features/) repo.
2626
* `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.
27+
* One test source field:
28+
* `wpt`: a string starting with `/results`, and including optional request parameters, used to retrieve WPT test results from wpt.fyi.
29+
* or `test262`: for features tracked in Test262 instead of WPT. Set this to the feature name as returned by the https://data.test262.fyi/features.json API (for example: `Temporal`).
2830

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.**
31+
**If you change the `wpt` URL after you've already generated the WPT results, set `forceUpdateResults:true` on the feature object, then run `npm run generate` and `npm run fetch-results` again to update the WPT results for this feature. Later, remove the `forceUpdateResults` field.**
3032

3133
For example:
3234

@@ -43,10 +45,25 @@ For example:
4345
}
4446
```
4547

48+
For a feature tracked in Test262 instead of WPT, use `test262` (and omit `wpt`):
49+
50+
```json
51+
{
52+
"webFeaturesID": "temporal",
53+
"test262": "Temporal",
54+
"rationale": [
55+
{
56+
"description": "Temporal is highly requested by developers",
57+
"link": "https://github.com/web-platform-dx/developer-signals/issues/291"
58+
}
59+
]
60+
}
61+
```
62+
4663
If the feature corresponds to a group of features from the web-features repo, make the following changes:
4764

4865
* `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.
66+
* `webFeaturesID`: change this field's type to an array of the IDs of the features in the web-features repo.
5067

5168
For example, the Scrollbar styling group below is a group of three different web-features:
5269

@@ -70,37 +87,38 @@ In addition, you can provide the following optional fields:
7087
* `name`: to override the name coming from the web-features repo.
7188
* `description`: to override the description coming from the web-features repo.
7289
* `spec`: to override the spec (or specs) coming from the web-features repo.
90+
* `graphNote`: a string that will be shown as a note below the graph for this feature on the dashboard. This can be used to provide additional context about the data shown in the graph.
7391

7492
## Generating the dashboard data
7593

7694
1. Update the dependencies:
7795

7896
* `npm run bump`
79-
97+
8098
This updates to the most recent version of web-features, BCD, and playwright, as well as other dependencies.
8199

82100
1. To update the computed feature data file:
83101

84102
* `npm run generate`
85-
103+
86104
This re-generates `site/_data/features.json` based on `features.json`.
87105

88-
1. To retrieve the latest WPT revision for this week:
106+
1. To retrieve the latest WPT revisions and test262 run dates for the dates we care about:
89107

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.
108+
* `npm run update-dates`
93109

94-
1. To retrieve the WPT test results:
110+
This updates the `wpt-shas.json` and `test262-dates.json` files, which are then needed to retrieve WPT and test262 test results.
95111

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/`.
112+
1. To retrieve the test results:
113+
114+
* `npm run fetch-results`
115+
116+
This fetches the missing WPT and Test262 results for our features based on what's in `wpt-shas.json` and `test262-dates.json`, and puts them in `site/_data/testResults.json` as well as generates front-end files in `site/assets/`.
99117

100118
1. To build the site
101119

102120
* `npm run build-site`
103-
121+
104122
This generates the dashboard website in the `docs` directory.
105123

106124
## Testing the dashboard

TODO.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
TODO
2+
3+
- Several features have no results: tentative tests only?
4+
--> Added an option to include tentative tests. Set to true this year. Makes sense?

const.js

Lines changed: 108 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,91 @@
11
// The weeks we're interested in getting WPT data from.
22
export const WEEKS = [
3-
{from: "2024-07-03", to: "2024-07-09"},
4-
{from: "2024-07-10", to: "2024-07-16"},
5-
{from: "2024-07-17", to: "2024-07-23"},
6-
{from: "2024-07-24", to: "2024-07-30"},
7-
{from: "2024-07-31", to: "2024-08-06"},
8-
{from: "2024-08-07", to: "2024-08-13"},
9-
{from: "2024-08-14", to: "2024-08-20"},
10-
{from: "2024-08-21", to: "2024-08-27"},
11-
{from: "2024-08-28", to: "2024-09-03"},
12-
{from: "2024-09-04", to: "2024-09-10"},
13-
{from: "2024-09-11", to: "2024-09-17"},
14-
{from: "2024-09-18", to: "2024-09-24"},
15-
{from: "2024-09-25", to: "2024-10-01"},
16-
{from: "2024-10-02", to: "2024-10-08"},
17-
{from: "2024-10-09", to: "2024-10-15"},
18-
{from: "2024-10-16", to: "2024-10-22"},
19-
{from: "2024-10-23", to: "2024-10-29"},
20-
{from: "2024-10-30", to: "2024-11-05"},
21-
{from: "2024-11-06", to: "2024-11-12"},
22-
{from: "2024-11-13", to: "2024-11-19"},
23-
{from: "2024-11-20", to: "2024-11-26"},
24-
{from: "2024-11-27", to: "2024-12-03"},
25-
{from: "2024-12-04", to: "2024-12-10"},
26-
{from: "2024-12-11", to: "2024-12-17"},
27-
{from: "2024-12-18", to: "2024-12-24"},
28-
{from: "2024-12-25", to: "2024-12-31"},
29-
{from: "2025-01-01", to: "2025-01-07"},
30-
{from: "2025-01-08", to: "2025-01-14"},
31-
{from: "2025-01-15", to: "2025-01-21"},
32-
{from: "2025-01-22", to: "2025-01-28"},
33-
{from: "2025-01-29", to: "2025-02-04"},
34-
{from: "2025-02-05", to: "2025-02-11"},
35-
{from: "2025-02-12", to: "2025-02-18"},
36-
{from: "2025-02-19", to: "2025-02-25"},
37-
{from: "2025-02-26", to: "2025-03-04"},
38-
{from: "2025-03-05", to: "2025-03-11"},
39-
{from: "2025-03-12", to: "2025-03-18"},
40-
{from: "2025-03-19", to: "2025-03-25"},
41-
{from: "2025-03-26", to: "2025-04-01"},
42-
{from: "2025-04-02", to: "2025-04-08"},
43-
{from: "2025-04-09", to: "2025-04-15"},
44-
{from: "2025-04-16", to: "2025-04-22"},
45-
{from: "2025-04-23", to: "2025-04-29"},
46-
{from: "2025-04-30", to: "2025-05-06"},
47-
{from: "2025-05-07", to: "2025-05-13"},
48-
{from: "2025-05-14", to: "2025-05-20"},
49-
{from: "2025-05-21", to: "2025-05-27"},
50-
{from: "2025-05-28", to: "2025-06-03"},
51-
{from: "2025-06-04", to: "2025-06-10"},
52-
{from: "2025-06-11", to: "2025-06-17"},
53-
{from: "2025-06-18", to: "2025-06-24"},
54-
{from: "2025-06-25", to: "2025-07-01"},
55-
{from: "2025-07-02", to: "2025-07-08"},
56-
{from: "2025-07-09", to: "2025-07-15"},
57-
{from: "2025-07-16", to: "2025-07-22"},
58-
{from: "2025-07-23", to: "2025-07-29"},
59-
{from: "2025-07-30", to: "2025-08-05"},
60-
{from: "2025-08-06", to: "2025-08-12"},
61-
{from: "2025-08-13", to: "2025-08-19"},
62-
{from: "2025-08-20", to: "2025-08-26"},
63-
{from: "2025-08-27", to: "2025-09-02"},
64-
{from: "2025-09-03", to: "2025-09-09"},
65-
{from: "2025-09-10", to: "2025-09-16"},
66-
{from: "2025-09-17", to: "2025-09-23"},
67-
{from: "2025-09-24", to: "2025-09-30"},
68-
{from: "2025-10-01", to: "2025-10-07"},
69-
{from: "2025-10-08", to: "2025-10-14"},
70-
{from: "2025-10-15", to: "2025-10-21"},
71-
{from: "2025-10-22", to: "2025-10-28"},
72-
{from: "2025-10-29", to: "2025-11-04"},
73-
{from: "2025-11-05", to: "2025-11-11"},
74-
{from: "2025-11-12", to: "2025-11-18"},
75-
{from: "2025-11-19", to: "2025-11-25"},
76-
{from: "2025-11-26", to: "2025-12-02"},
77-
{from: "2025-12-03", to: "2025-12-09"},
78-
{from: "2025-12-10", to: "2025-12-16"},
79-
{from: "2025-12-17", to: "2025-12-23"},
80-
{from: "2025-12-24", to: "2025-12-30"},
81-
{from: "2025-12-31", to: "2026-01-06"},
82-
{from: "2026-01-07", to: "2026-01-13"},
83-
{from: "2026-01-14", to: "2026-01-20"},
84-
{from: "2026-01-21", to: "2026-01-27"},
85-
{from: "2026-01-28", to: "2026-02-03"},
86-
{from: "2026-02-04", to: "2026-02-10"},
87-
{from: "2026-02-11", to: "2026-02-17"},
88-
{from: "2026-02-18", to: "2026-02-24"}
3+
{ from: "2025-07-03", to: "2025-07-09" },
4+
{ from: "2025-07-10", to: "2025-07-16" },
5+
{ from: "2025-07-17", to: "2025-07-23" },
6+
{ from: "2025-07-24", to: "2025-07-30" },
7+
{ from: "2025-07-31", to: "2025-08-06" },
8+
{ from: "2025-08-07", to: "2025-08-13" },
9+
{ from: "2025-08-14", to: "2025-08-20" },
10+
{ from: "2025-08-21", to: "2025-08-27" },
11+
{ from: "2025-08-28", to: "2025-09-03" },
12+
{ from: "2025-09-04", to: "2025-09-10" },
13+
{ from: "2025-09-11", to: "2025-09-17" },
14+
{ from: "2025-09-18", to: "2025-09-24" },
15+
{ from: "2025-09-25", to: "2025-10-01" },
16+
{ from: "2025-10-02", to: "2025-10-08" },
17+
{ from: "2025-10-09", to: "2025-10-15" },
18+
{ from: "2025-10-16", to: "2025-10-22" },
19+
{ from: "2025-10-23", to: "2025-10-29" },
20+
{ from: "2025-10-30", to: "2025-11-05" },
21+
{ from: "2025-11-06", to: "2025-11-12" },
22+
{ from: "2025-11-13", to: "2025-11-19" },
23+
{ from: "2025-11-20", to: "2025-11-26" },
24+
{ from: "2025-11-27", to: "2025-12-03" },
25+
{ from: "2025-12-04", to: "2025-12-10" },
26+
{ from: "2025-12-11", to: "2025-12-17" },
27+
{ from: "2025-12-18", to: "2025-12-24" },
28+
{ from: "2025-12-25", to: "2025-12-31" },
29+
{ from: "2026-01-01", to: "2026-01-07" },
30+
{ from: "2026-01-08", to: "2026-01-14" },
31+
{ from: "2026-01-15", to: "2026-01-21" },
32+
{ from: "2026-01-22", to: "2026-01-28" },
33+
{ from: "2026-01-29", to: "2026-02-04" },
34+
{ from: "2026-02-05", to: "2026-02-11" },
35+
{ from: "2026-02-12", to: "2026-02-18" },
36+
{ from: "2026-02-19", to: "2026-02-25" },
37+
{ from: "2026-02-26", to: "2026-03-04" },
38+
{ from: "2026-03-05", to: "2026-03-11" },
39+
{ from: "2026-03-12", to: "2026-03-18" },
40+
{ from: "2026-03-19", to: "2026-03-25" },
41+
{ from: "2026-03-26", to: "2026-04-01" },
42+
{ from: "2026-04-02", to: "2026-04-08" },
43+
{ from: "2026-04-09", to: "2026-04-15" },
44+
{ from: "2026-04-16", to: "2026-04-22" },
45+
{ from: "2026-04-23", to: "2026-04-29" },
46+
{ from: "2026-04-30", to: "2026-05-06" },
47+
{ from: "2026-05-07", to: "2026-05-13" },
48+
{ from: "2026-05-14", to: "2026-05-20" },
49+
{ from: "2026-05-21", to: "2026-05-27" },
50+
{ from: "2026-05-28", to: "2026-06-03" },
51+
{ from: "2026-06-04", to: "2026-06-10" },
52+
{ from: "2026-06-11", to: "2026-06-17" },
53+
{ from: "2026-06-18", to: "2026-06-24" },
54+
{ from: "2026-06-25", to: "2026-07-01" },
55+
{ from: "2026-07-02", to: "2026-07-08" },
56+
{ from: "2026-07-09", to: "2026-07-15" },
57+
{ from: "2026-07-16", to: "2026-07-22" },
58+
{ from: "2026-07-23", to: "2026-07-29" },
59+
{ from: "2026-07-30", to: "2026-08-05" },
60+
{ from: "2026-08-06", to: "2026-08-12" },
61+
{ from: "2026-08-13", to: "2026-08-19" },
62+
{ from: "2026-08-20", to: "2026-08-26" },
63+
{ from: "2026-08-27", to: "2026-09-02" },
64+
{ from: "2026-09-03", to: "2026-09-09" },
65+
{ from: "2026-09-10", to: "2026-09-16" },
66+
{ from: "2026-09-17", to: "2026-09-23" },
67+
{ from: "2026-09-24", to: "2026-09-30" },
68+
{ from: "2026-10-01", to: "2026-10-07" },
69+
{ from: "2026-10-08", to: "2026-10-14" },
70+
{ from: "2026-10-15", to: "2026-10-21" },
71+
{ from: "2026-10-22", to: "2026-10-28" },
72+
{ from: "2026-10-29", to: "2026-11-04" },
73+
{ from: "2026-11-05", to: "2026-11-11" },
74+
{ from: "2026-11-12", to: "2026-11-18" },
75+
{ from: "2026-11-19", to: "2026-11-25" },
76+
{ from: "2026-11-26", to: "2026-12-02" },
77+
{ from: "2026-12-03", to: "2026-12-09" },
78+
{ from: "2026-12-10", to: "2026-12-16" },
79+
{ from: "2026-12-17", to: "2026-12-23" },
80+
{ from: "2026-12-24", to: "2026-12-30" },
81+
{ from: "2026-12-31", to: "2027-01-06" },
82+
{ from: "2027-01-07", to: "2027-01-13" },
83+
{ from: "2027-01-14", to: "2027-01-20" },
84+
{ from: "2027-01-21", to: "2027-01-27" },
85+
{ from: "2027-01-28", to: "2027-02-03" },
86+
{ from: "2027-02-04", to: "2027-02-10" },
87+
{ from: "2027-02-11", to: "2027-02-17" },
88+
{ from: "2027-02-18", to: "2027-02-24" }
8989
];
9090

9191
// The browsers we're interested in.
@@ -99,3 +99,25 @@ export const BROWSER_FLAVOR = "stable";
9999

100100
// The branch where we're getting the WPT data from.
101101
export const WPT_BRANCH = "master";
102+
103+
// Whether to include tentative results in the WPT data.
104+
export const INCLUDE_TENTATIVE = true;
105+
106+
// The JS engine names to use when retrieving JavaScript test results from test262.
107+
export const JS_ENGINES_PER_BROWSER = BROWSER_FLAVOR === "experimental"
108+
? {
109+
chrome: "v8_exp",
110+
edge: "v8_exp",
111+
firefox: "sm_exp",
112+
safari: "jsc_exp",
113+
}
114+
: {
115+
chrome: "v8",
116+
edge: "v8",
117+
firefox: "sm",
118+
safari: "jsc",
119+
};
120+
121+
// Where to get Test262 historical data.
122+
// See https://github.com/test262-fyi/data/issues/13#issuecomment-3872802218
123+
export const TEST262_DATA_END_POINT = "https://f.sakamoto.pl/linus/data/test262.fyi";

eleventy.config.cjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { BROWSER_FLAVOR, WPT_BRANCH } = require("./const.js");
1+
const { BROWSER_FLAVOR, WPT_BRANCH, INCLUDE_TENTATIVE } = require("./const.js");
22

33
module.exports = function (eleventyConfig) {
44
eleventyConfig.addPassthroughCopy("site/assets");
@@ -7,6 +7,7 @@ module.exports = function (eleventyConfig) {
77

88
eleventyConfig.addGlobalData("browserFlavor", () => BROWSER_FLAVOR);
99
eleventyConfig.addGlobalData("wptBranch", () => WPT_BRANCH);
10+
eleventyConfig.addGlobalData("includeTentative", () => INCLUDE_TENTATIVE);
1011

1112
return {
1213
dir: {

0 commit comments

Comments
 (0)