microsoft / microsoft/vscode-custom-data
Architectural issues with computed Baseline status
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 240
- Forks
- 95
- PR merge metrics
- No merged PRs in 30d
Description
Story
The pull request #111 added to each CSS property an object of the form:
"baseline": {
"status": "high",
"baseline_low_date": "2023-01-18",
"baseline_high_date": "2025-07-18"
},
"baseline": {
"status": "low",
"baseline_low_date": "2022-01-19"
},
"baseline": {
"status": "false"
},
I've recently implemented displaying Baseline status for CSS properties in Chrome DevTools (see https://web.dev/blog/baseline-devtools-css). It uses info from the browsers.css-data.json file form the https://npmjs.com/package/@vscode/web-custom-data npm package.
This is the same package that is used in VSCode.
And now Chromium has the task of updating this package regularly/frequently. Currently, this is done manually, but will be automated soon. See https://issues.chromium.org/issues/439588876.
Problem
New CSS properties don’t appear all that often.
But Baseline statuses become outdated very often.
Another problem is that the Baseline statuses are computed at the time the npm package is built.
And new versions of the npm package are released irregularly. See https://www.npmjs.com/package/@vscode/web-custom-data?activeTab=versions.
A more than month passed between the release of versions 0.5.2 and 0.6.0. And almost 3 months have passed since the release of version 0.6.0!
Let’s look at an example of a CSS property that has:
"baseline": {
"status": "low",
"baseline_low_date": "2022-01-19"
},
Today (2025-08-18) it has the "low" status, as soon as tomorrow (2025-08-19) its status will become "high"!
Currently, the "baseline_high_date" field exists only for CSS properties with the "high" status.
But in fact, "baseline_high_date" field doesn't make much sense. Its value is always 30 months after the "baseline_low_date".
As an idea, the value of the "status" field could instead be computed at runtime using the value of the "baseline_low_date" field and the current date.
But this will not solve the problem that the "baseline_low_date" field value is not updated in a timely manner, since the npm package is not updated regularly/frequently.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the baseline objects introduced by pull request #111 and the browsers.css-data.json data consumed from @vscode/web-custom-data. Compare the proposed runtime computation with the package update process and Chromium issue 439588876; done requires an agreed architecture that keeps Baseline dates and statuses current.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100