browser-compat-data icon indicating copy to clipboard operation
browser-compat-data copied to clipboard

Add linter for support blocks filled only with false

Open saschanaz opened this issue 4 years ago • 16 comments

A checklist to help your pull request get merged faster:

  • [x] Summarize your changes
  • [ ] Review the results of the linter and fix problems reported (If you need help, please ask in a comment!)
  • [x] Link to related issues or pull requests, if any: #6768, #6431

This implements a linter to prevent any support block filled only with false.

Quite a lot of failures, not sure how to proceed. Maybe create an allowlist for now and try reducing it later?

saschanaz avatar Oct 03 '20 19:10 saschanaz

Problems in 101 files:
✖ api\AuthenticatorAttestationResponse.json
✖ api\BluetoothAdvertisingData.json
✖ api\BluetoothDevice.json
✖ api\BluetoothRemoteGATTService.json
✖ api\BudgetService.json
✖ api\BudgetState.json
✖ api\CanvasRenderingContext2D.json
✖ api\ConstrainULong.json
✖ api\CSS.json
✖ api\Document.json
✖ api\DocumentFragment.json
✖ api\DocumentOrShadowRoot.json
✖ api\DOMConfiguration.json
✖ api\DOMImplementationList.json
✖ api\HTMLButtonElement.json
✖ api\HTMLIFrameElement.json
✖ api\HTMLIsIndexElement.json
✖ api\HTMLMenuItemElement.json
✖ api\HTMLTableElement.json
✖ api\IDBVersionChangeRequest.json
✖ api\NDEFMessage.json
✖ api\NDEFReader.json
✖ api\NDEFReadingEvent.json
✖ api\NDEFRecord.json
✖ api\NDEFWriter.json
✖ api\PaymentAddress.json
✖ api\PerformanceFrameTiming.json
✖ api\Range.json
✖ api\ReadableByteStreamController.json
✖ api\ReadableStreamBYOBReader.json
✖ api\ReadableStreamBYOBRequest.json
✖ api\RTCIceTransport.json
✖ api\RTCRemoteOutboundRtpStreamStats.json
✖ api\RTCStatsReport.json
✖ api\SVGMeshElement.json
✖ api\ULongRange.json
✖ api\Window.json
✖ api\XRPermissionDescriptor.json
✖ api\XRPermissionStatus.json
✖ css\at-rules\media.json
✖ css\at-rules\page.json
✖ css\at-rules\viewport.json
✖ css\properties\azimuth.json
✖ css\properties\break-after.json
✖ css\properties\break-before.json
✖ css\properties\break-inside.json
✖ css\properties\column-fill.json
✖ css\properties\column-width.json
✖ css\properties\font-variant.json
✖ css\properties\initial-letter-align.json
✖ css\properties\margin-trim.json
✖ css\properties\mask-origin.json
✖ css\properties\offset-position.json
✖ css\properties\ruby-position.json
✖ css\properties\text-align.json
✖ css\properties\text-indent.json
✖ css\properties\text-overflow.json
✖ css\selectors\blank.json
✖ css\selectors\column.json
✖ css\selectors\empty.json
✖ css\selectors\first-letter.json
✖ css\selectors\grammar-error.json
✖ css\selectors\has.json
✖ css\selectors\spelling-error.json
✖ css\types\attr.json
✖ css\types\frequency-percentage.json
✖ css\types\frequency.json
✖ css\types\image.json
✖ css\types\length-percentage.json
✖ css\types\length.json
✖ html\elements\command.json
✖ html\elements\dir.json
✖ html\elements\iframe.json
✖ html\elements\isindex.json
✖ html\elements\link.json
✖ html\elements\listing.json
✖ html\elements\menu.json
✖ html\elements\multicol.json
✖ html\elements\nextid.json
✖ html\elements\textarea.json
✖ http\headers\cache-control.json
✖ http\headers\content-security-policy.json
✖ http\headers\cookie2.json
✖ http\headers\feature-policy.json
✖ http\headers\set-cookie2.json
✖ svg\elements\textPath.json
✖ javascript\builtins\AsyncIterator.json
✖ javascript\builtins\Iterator.json
✖ javascript\operators\pipeline.json
✖ mathml\elements\math.json
✖ mathml\elements\mglyph.json
✖ mathml\elements\mlabeledtr.json
✖ mathml\elements\mo.json
✖ mathml\elements\mspace.json
✖ mathml\elements\mstyle.json
✖ mathml\elements\mtable.json
✖ mathml\elements\mtd.json
✖ mathml\elements\mtr.json
✖ webextensions\manifest\content_security_policy.json
✖ webextensions\manifest\manifest_version.json
✖ webextensions\match_patterns.json

saschanaz avatar Oct 03 '20 19:10 saschanaz

Marking as "not ready" since we need to fix our data first.

queengooborg avatar Oct 05 '20 10:10 queengooborg

Could this be tweaked to test for falsy values to include null? That's the lint I think we should have :)

foolip avatar Jun 09 '21 18:06 foolip

We had way too many false-only items so I intended to make the scope smaller here. But since we removed quite a lot of them, maybe it's now time to cover null.

saschanaz avatar Jun 09 '21 18:06 saschanaz

That's a kind of progress! Would you mind updating what would still be failing this lint now? (I could, but am on phone but still curious...)

foolip avatar Jun 09 '21 20:06 foolip

Already did 😉 (I mean, #6854)

saschanaz avatar Jun 09 '21 20:06 saschanaz

Problems in 116 files:
✖ api/BluetoothRemoteGATTService.json
✖ api/ConstrainULong.json
✖ api/MediaTrackSettings.json
✖ api/MediaTrackSupportedConstraints.json
✖ api/MouseEvent.json
✖ api/PaymentResponse.json
✖ api/PushRegistrationManager.json
✖ api/PushSubscriptionChangeEvent.json
✖ api/RTCDataChannel.json
✖ api/RTCIceCandidatePairStats.json
✖ api/RTCIceCandidateStats.json
✖ api/RTCIceCandidateType.json
✖ api/RTCIceComponent.json
✖ api/RTCIceCredentialType.json
✖ api/RTCIdentityAssertion.json
✖ api/RTCIdentityProviderGlobalScope.json
✖ api/RTCIdentityProviderRegistrar.json
✖ api/RTCRtpEncodingParameters.json
✖ api/RTCRtpSendParameters.json
✖ api/RTCRtpStreamStats.json
✖ api/Request.json
✖ api/SVGElement.json
✖ api/SVGImageElement.json
✖ api/SourceBuffer.json
✖ api/TouchList.json
✖ api/ULongRange.json
✖ api/VRDisplay.json
✖ api/VREyeParameters.json
✖ api/VRFieldOfView.json
✖ api/VRPose.json
✖ api/Window.json
✖ api/XRPermissionDescriptor.json
✖ api/XRPermissionStatus.json
✖ css/properties/font-variant.json
✖ css/properties/masonry-auto-flow.json
✖ css/properties/text-align.json
✖ css/properties/text-indent.json
✖ css/properties/text-overflow.json
✖ css/selectors/target-within.json
✖ css/types/frequency.json
✖ css/types/length-percentage.json
✖ css/types/length.json
✖ html/elements/menu.json
✖ html/elements/textarea.json
✖ html/manifest/dir.json
✖ html/manifest/iarc_rating_id.json
✖ html/manifest/lang.json
✖ http/headers/content-security-policy.json
✖ http/headers/cookie2.json
✖ http/headers/expect.json
✖ http/headers/feature-policy.json
✖ http/headers/forwarded.json
✖ http/headers/set-cookie2.json
✖ http/headers/tk.json
✖ http/headers/x-forwarded-for.json
✖ http/headers/x-forwarded-host.json
✖ http/headers/x-forwarded-proto.json
✖ http/methods.json
✖ svg/attributes/conditional_processing.json
✖ svg/attributes/core.json
✖ svg/attributes/events.json
✖ svg/attributes/presentation.json
✖ svg/attributes/xlink.json
✖ svg/elements/a.json
✖ svg/elements/altGlyph.json
✖ svg/elements/altGlyphDef.json
✖ svg/elements/altGlyphItem.json
✖ svg/elements/animate.json
✖ svg/elements/animateColor.json
✖ svg/elements/animateMotion.json
✖ svg/elements/animateTransform.json
✖ svg/elements/cursor.json
✖ svg/elements/feConvolveMatrix.json
✖ svg/elements/feDiffuseLighting.json
✖ svg/elements/feDisplacementMap.json
✖ svg/elements/feDistantLight.json
✖ svg/elements/feFlood.json
✖ svg/elements/feGaussianBlur.json
✖ svg/elements/feImage.json
✖ svg/elements/feSpecularLighting.json
✖ svg/elements/feTurbulence.json
✖ svg/elements/filter.json
✖ svg/elements/font-face-format.json
✖ svg/elements/font-face-name.json
✖ svg/elements/font-face-src.json
✖ svg/elements/font-face-uri.json
✖ svg/elements/font-face.json
✖ svg/elements/font.json
✖ svg/elements/glyph.json
✖ svg/elements/glyphRef.json
✖ svg/elements/hatch.json
✖ svg/elements/hatchpath.json
✖ svg/elements/hkern.json
✖ svg/elements/image.json
✖ svg/elements/linearGradient.json
✖ svg/elements/mask.json
✖ svg/elements/mesh.json
✖ svg/elements/meshgradient.json
✖ svg/elements/meshpatch.json
✖ svg/elements/meshrow.json
✖ svg/elements/missing-glyph.json
✖ svg/elements/mpath.json
✖ svg/elements/radialGradient.json
✖ svg/elements/script.json
✖ svg/elements/style.json
✖ svg/elements/svg.json
✖ svg/elements/symbol.json
✖ svg/elements/textPath.json
✖ svg/elements/tref.json
✖ svg/elements/tspan.json
✖ svg/elements/view.json
✖ svg/elements/vkern.json
✖ javascript/builtins/Array.json
✖ javascript/builtins/String.json
✖ javascript/builtins/TypedArray.json
✖ xslt/elements/stylesheet.json

Latest update.

saschanaz avatar Jun 09 '21 20:06 saschanaz

Nice, a lot more bad data to sort through :)

foolip avatar Jun 09 '21 22:06 foolip

I just merged this into main and ran the lint. Fewer failures, but still a bunch:

Problems in 83 files:
✖ api/CanMakePaymentEvent.json
✖ api/MediaTrackConstraints.json
✖ api/MediaTrackSupportedConstraints.json
✖ api/RTCIceCandidatePairStats.json
✖ api/RTCIceCandidateStats.json
✖ api/RTCIceCredentialType.json
✖ api/RTCIdentityProviderGlobalScope.json
✖ api/RTCIdentityProviderRegistrar.json
✖ api/RTCRtpEncodingParameters.json
✖ api/RTCRtpSendParameters.json
✖ api/SVGImageElement.json
✖ api/VRDisplay.json
✖ api/VREyeParameters.json
✖ api/VRFieldOfView.json
✖ api/VRPose.json
✖ api/Window.json
✖ api/XRPermissionStatus.json
✖ css/properties/font-variant.json
✖ css/properties/masonry-auto-flow.json
✖ css/properties/text-align.json
✖ css/properties/text-overflow.json
✖ css/selectors/target-within.json
✖ css/types/frequency.json
✖ html/manifest/dir.json
✖ html/manifest/iarc_rating_id.json
✖ html/manifest/lang.json
✖ http/headers/authorization.json
✖ http/headers/content-security-policy.json
✖ http/headers/digest.json
✖ http/headers/expect.json
✖ http/headers/feature-policy.json
✖ http/headers/forwarded.json
✖ http/headers/tk.json
✖ http/headers/want-digest.json
✖ http/headers/www-authenticate.json
✖ http/methods.json
✖ svg/attributes/conditional_processing.json
✖ svg/attributes/core.json
✖ svg/attributes/events.json
✖ svg/attributes/presentation.json
✖ svg/attributes/xlink.json
✖ svg/elements/a.json
✖ svg/elements/altGlyph.json
✖ svg/elements/altGlyphDef.json
✖ svg/elements/altGlyphItem.json
✖ svg/elements/animate.json
✖ svg/elements/animateMotion.json
✖ svg/elements/animateTransform.json
✖ svg/elements/cursor.json
✖ svg/elements/feConvolveMatrix.json
✖ svg/elements/feDiffuseLighting.json
✖ svg/elements/feDisplacementMap.json
✖ svg/elements/feDistantLight.json
✖ svg/elements/feFlood.json
✖ svg/elements/feGaussianBlur.json
✖ svg/elements/feImage.json
✖ svg/elements/feSpecularLighting.json
✖ svg/elements/feTurbulence.json
✖ svg/elements/filter.json
✖ svg/elements/font-face-format.json
✖ svg/elements/font-face-name.json
✖ svg/elements/font-face-src.json
✖ svg/elements/font-face-uri.json
✖ svg/elements/font-face.json
✖ svg/elements/font.json
✖ svg/elements/glyph.json
✖ svg/elements/glyphRef.json
✖ svg/elements/hkern.json
✖ svg/elements/image.json
✖ svg/elements/linearGradient.json
✖ svg/elements/mask.json
✖ svg/elements/missing-glyph.json
✖ svg/elements/mpath.json
✖ svg/elements/radialGradient.json
✖ svg/elements/script.json
✖ svg/elements/style.json
✖ svg/elements/svg.json
✖ svg/elements/symbol.json
✖ svg/elements/textPath.json
✖ svg/elements/tref.json
✖ svg/elements/tspan.json
✖ svg/elements/view.json
✖ svg/elements/vkern.json

foolip avatar Apr 20 '22 06:04 foolip

More failures:

Problems in 89 files:
✖ api\RTCIceCandidatePairStats.json
✖ api\RTCIceCredentialType.json
✖ api\RTCIdentityProviderGlobalScope.json
✖ api\RTCIdentityProviderRegistrar.json
✖ api\RTCRtpEncodingParameters.json
✖ api\RTCRtpSendParameters.json
✖ api\SVGImageElement.json
✖ api\VRDisplay.json
✖ api\VREyeParameters.json
✖ api\VRFieldOfView.json
✖ api\VRPose.json
✖ api\XRPermissionStatus.json
✖ css\properties\font-variant.json
✖ css\properties\masonry-auto-flow.json
✖ css\properties\text-align.json
✖ css\properties\text-overflow.json
✖ css\selectors\target-within.json
✖ css\types\frequency.json
✖ html\manifest\dir.json
✖ html\manifest\iarc_rating_id.json
✖ html\manifest\lang.json
✖ http\headers\authorization.json
✖ http\headers\content-security-policy.json
✖ http\headers\digest.json
✖ http\headers\expect.json
✖ http\headers\feature-policy.json
✖ http\headers\forwarded.json
✖ http\headers\tk.json
✖ http\headers\want-digest.json
✖ http\headers\www-authenticate.json
✖ http\methods.json
✖ svg\attributes\conditional_processing.json
✖ svg\attributes\core.json
✖ svg\attributes\events.json
✖ svg\attributes\presentation.json
✖ svg\attributes\xlink.json
✖ svg\elements\a.json
✖ svg\elements\altGlyph.json
✖ svg\elements\altGlyphDef.json
✖ svg\elements\altGlyphItem.json
✖ svg\elements\animate.json
✖ svg\elements\animateMotion.json
✖ svg\elements\animateTransform.json
✖ svg\elements\cursor.json
✖ svg\elements\feConvolveMatrix.json
✖ svg\elements\feDiffuseLighting.json
✖ svg\elements\feDisplacementMap.json
✖ svg\elements\feDistantLight.json
✖ svg\elements\feFlood.json
✖ svg\elements\feGaussianBlur.json
✖ svg\elements\feImage.json
✖ svg\elements\feSpecularLighting.json
✖ svg\elements\feTurbulence.json
✖ svg\elements\filter.json
✖ svg\elements\font-face-format.json
✖ svg\elements\font-face-name.json
✖ svg\elements\font-face-src.json
✖ svg\elements\font-face-uri.json
✖ svg\elements\font-face.json
✖ svg\elements\font.json
✖ svg\elements\glyph.json
✖ svg\elements\glyphRef.json
✖ svg\elements\hkern.json
✖ svg\elements\image.json
✖ svg\elements\linearGradient.json
✖ svg\elements\mask.json
✖ svg\elements\missing-glyph.json
✖ svg\elements\mpath.json
✖ svg\elements\radialGradient.json
✖ svg\elements\script.json
✖ svg\elements\style.json
✖ svg\elements\svg.json
✖ svg\elements\symbol.json
✖ svg\elements\textPath.json
✖ svg\elements\tref.json
✖ svg\elements\tspan.json
✖ svg\elements\view.json
✖ svg\elements\vkern.json
✖ javascript\builtins\Temporal\Calendar.json
✖ javascript\builtins\Temporal\Duration.json
✖ javascript\builtins\Temporal\Instant.json
✖ javascript\builtins\Temporal\now.json
✖ javascript\builtins\Temporal\PlainDate.json
✖ javascript\builtins\Temporal\PlainDateTime.json
✖ javascript\builtins\Temporal\PlainMonthDay.json
✖ javascript\builtins\Temporal\PlainTime.json
✖ javascript\builtins\Temporal\PlainYearMonth.json
✖ javascript\builtins\Temporal\TimeZone.json
✖ javascript\builtins\Temporal\ZonedDateTime.json

saschanaz avatar May 08 '22 13:05 saschanaz

This pull request has merge conflicts that must be resolved before we can merge this.

github-actions[bot] avatar May 13 '22 20:05 github-actions[bot]

This pull request has merge conflicts that must be resolved before we can merge this.

github-actions[bot] avatar May 18 '22 15:05 github-actions[bot]

 Problems in 89 files:
✖ api/RTCIceCandidatePairStats.json
  → Support history – 10 errors:
    → {red → No support and no tracking bug in ,} api.RTCIceCandidatePairStats.circuitBreakerTriggerCount
    → {red → No support and no tracking bug in ,} api.RTCIceCandidatePairStats.consentExpiredTimestamp
    → {red → No support and no tracking bug in ,} api.RTCIceCandidatePairStats.consentRequestsSent
    → {red → No support and no tracking bug in ,} api.RTCIceCandidatePairStats.firstRequestTimeStamp
    → {red → No support and no tracking bug in ,} api.RTCIceCandidatePairStats.lastRequestTimestamp
    → {red → No support and no tracking bug in ,} api.RTCIceCandidatePairStats.lastResponseTimestamp
    → {red → No support and no tracking bug in ,} api.RTCIceCandidatePairStats.packetsReceived
    → {red → No support and no tracking bug in ,} api.RTCIceCandidatePairStats.packetsSent
    → {red → No support and no tracking bug in ,} api.RTCIceCandidatePairStats.retransmissionsReceived
    → {red → No support and no tracking bug in ,} api.RTCIceCandidatePairStats.retransmissionsSent

@queengooborg The chalk rendering became weird, do you know why?

saschanaz avatar May 19 '22 23:05 saschanaz

This pull request has merge conflicts that must be resolved before we can merge this.

github-actions[bot] avatar May 23 '22 04:05 github-actions[bot]

This pull request has merge conflicts that must be resolved before it can be merged.

github-actions[bot] avatar Jun 01 '22 17:06 github-actions[bot]

Hey @saschanaz, would you be down to update this? We've decided to proceed with disallowing all-false features in BCD!

queengooborg avatar Jun 22 '22 19:06 queengooborg

This pull request has merge conflicts that must be resolved before it can be merged.

github-actions[bot] avatar Nov 24 '22 11:11 github-actions[bot]

Found #16429 merged first with kinda similar purpose. Not sure what should I do, should I merge this with that one? This one seems to cover more things, at least. @queengooborg

saschanaz avatar Nov 24 '22 13:11 saschanaz

Okay, found #17743. Can you please ping me before such decision.

saschanaz avatar Nov 24 '22 13:11 saschanaz

Not sure how should I feel with this.

saschanaz avatar Feb 26 '23 08:02 saschanaz