+
Skip to content

Conversation

ptkagori
Copy link
Contributor

@ptkagori ptkagori commented Jul 14, 2025

Summary

Added Biome support for the Qwik framework. This is a WIP PR which follows up on Add Qwik Domain and enabled pre-existing rules

  • noQwikUseVisibleTask
  • useQwikClasslist
  • useImageSize
  • useAnchorHref

Note: Changes also include the initial qwik domain setup already covered in the above PR but just so local dev works even before the setup PR is merged

Test Plan

  • Unit Tests: Added/Updated valid and invalid test cases for the above added rules

Docs

Added: biomejs/website#2727 to sync addition of Qwik domain with website

Each rule includes insightful documentation with:

  • Clear purpose and Qwik-specific context
  • Invalid/valid code examples
  • Automatic fix capabilities where applicable
  • Integration with Biome's configuration schema

ptkagori added 8 commits July 9, 2025 20:01
Add Qwik domain support and implement the noReactProps rule to disallow React-specific props in Qwik components.
Add a rule to disallow missing key props in JSX elements inside iterators for Qwik applications.
# Conflicts:
#	crates/biome_configuration/src/analyzer/linter/rules.rs
#	crates/biome_diagnostics_categories/src/categories.rs
#	crates/biome_js_analyze/src/lint/nursery.rs
#	packages/@biomejs/backend-jsonrpc/src/workspace.ts
Copy link

changeset-bot bot commented Jul 14, 2025

🦋 Changeset detected

Latest commit: f37b036

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
@biomejs/biome Patch
@biomejs/cli-win32-x64 Patch
@biomejs/cli-win32-arm64 Patch
@biomejs/cli-darwin-x64 Patch
@biomejs/cli-darwin-arm64 Patch
@biomejs/cli-linux-x64 Patch
@biomejs/cli-linux-arm64 Patch
@biomejs/cli-linux-x64-musl Patch
@biomejs/cli-linux-arm64-musl Patch
@biomejs/wasm-web Patch
@biomejs/wasm-bundler Patch
@biomejs/wasm-nodejs Patch
@biomejs/backend-jsonrpc Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions bot added A-CLI Area: CLI A-Project Area: project A-Linter Area: linter A-Formatter Area: formatter L-JavaScript Language: JavaScript and super languages A-Diagnostic Area: diagnostocis labels Jul 14, 2025
Copy link
Contributor

@dyc3 dyc3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ngl this is a decently big PR, and its a bit hard to review. Regardless, I tried my best to give you a comprehensive review, but I almost certainly missed some things. The rules are simple enough that I don't think its worth it to split this up into multiple PRs -- just might take a bit longer to get everything merged in.

Regarding rule names: we recently decided that it would be good for rules specific to a particular framework to call it out in their name with an additional prefix -- so for example useQwikThing or noQwikThing. Though the usefulness of some of these rules don't seem entirely limited to just qwik projects, like useJsxA.

@dyc3 dyc3 changed the title feat(qwik): Add Qwik Domain and a few rules feat(qwik): add Qwik Domain and a few rules Jul 14, 2025
@dyc3
Copy link
Contributor

dyc3 commented Jul 14, 2025

Ah one more thing -- since this is adding a new domain, we'll need to have a PR to the website repo as well to document the domain in this file: https://github.com/biomejs/website/blob/c7b801befc8649de03a197aac7ccef41e1dc2c66/codegen/src/domains.rs#L71

We won't be able to merge it until this gets synchronized over to the website repo, i think, but it would be nice to have it queued up.

Copy link

codspeed-hq bot commented Jul 14, 2025

CodSpeed Performance Report

Merging #6887 will not alter performance

Comparing ptkagori:feat/qwik-domain-v2 (f37b036) with main (617c5a3)1

Summary

✅ 129 untouched benchmarks

Footnotes

  1. No successful run was found on main (89d91bd) during the generation of this report, so 617c5a3 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@ematipico
Copy link
Member

ematipico commented Jul 15, 2025

Thank you @ptkagori for your great contribution. I want to add a few things to @dyc3 review.

If you haven't read our contribution guide, I suggest you do so, because it covers a lot of stuff: https://github.com/biomejs/biome/blob/main/crates/biome_analyze/CONTRIBUTING.md

Generally, all rules must follow our rule pillars: https://biomejs.dev/linter/#rule-pillars (this is covered in the contribution guide).

ptkagori added 8 commits July 15, 2025 21:25
…issingJsxKey, and replace noReactProps with noQwikReactProps

- Renamed the Qwik rule `noUseVisibleTask` to `noQwikUseVisibleTask` across all code, tests, documentation, and configuration.
- Removed the obsolete `noMissingJsxKey` rule; its functionality is now unified under `useJsxKeyInIterable`.
- Replaced the `noReactProps` rule with `noQwikReactProps` for Qwik-specific JSX attribute enforcement.
- Updated all related imports, filenames, test directories, documentation, and .changeset to reflect these changes.
- Ensured no unwanted or breaking changes were introduced and all references are consistent.
…issingJsxKey, and replace noReactProps with noQwikReactProps

- Renamed the Qwik rule `noUseVisibleTask` to `noQwikUseVisibleTask` across all code, tests, documentation, and configuration.
- Removed the obsolete `noMissingJsxKey` rule; its functionality is now unified under `useJsxKeyInIterable`.
- Replaced the `noReactProps` rule with `noQwikReactProps` for Qwik-specific JSX attribute enforcement.
- Updated all related imports, filenames, test directories, documentation, and .changeset to reflect these changes.
- Ensured no unwanted or breaking changes were introduced and all references are consistent.
ptkagori added 2 commits July 23, 2025 22:53
# Conflicts:
#	crates/biome_configuration/src/analyzer/linter/rules.rs
#	crates/biome_rule_options/src/lib.rs
#	packages/@biomejs/backend-jsonrpc/src/workspace.ts
#	packages/@biomejs/biome/configuration_schema.json
@ptkagori ptkagori requested a review from ematipico July 24, 2025 16:57
@ematipico
Copy link
Member

ematipico commented Jul 24, 2025

@ptkagori I Ieft 22 comments in my review, and only few of them have been addressed. Please check them, and please check also the snapshots when you update them, some of them are still wrong

ptkagori added 3 commits July 25, 2025 15:54
# Conflicts:
#	packages/@biomejs/backend-jsonrpc/src/workspace.ts
Copy link
Member

@ematipico ematipico left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me now, thank you

@ematipico
Copy link
Member

@dyc3 please review again

@ptkagori ptkagori force-pushed the feat/qwik-domain-v2 branch from 6b772e4 to fd7490c Compare July 29, 2025 12:16
ptkagori added 2 commits July 29, 2025 15:37
# Conflicts:
#	crates/biome_configuration/src/analyzer/linter/rules.rs
#	crates/biome_diagnostics_categories/src/categories.rs
#	crates/biome_js_analyze/src/lint/nursery.rs
#	packages/@biomejs/backend-jsonrpc/src/workspace.ts
# Conflicts:
#	crates/biome_configuration/src/analyzer/linter/rules.rs
#	crates/biome_diagnostics_categories/src/categories.rs
#	crates/biome_js_analyze/src/lint/nursery.rs
#	packages/@biomejs/backend-jsonrpc/src/workspace.ts
@ematipico
Copy link
Member

@ptkagori let me help you with the conflicts. Let's wait for the final review, and then I will take it from there.

@ematipico
Copy link
Member

@ptkagori I fixed the conflicts. If you intend to do more changes, remember to git pull before doing any commits

@ptkagori ptkagori requested a review from dyc3 July 29, 2025 17:26
@ematipico ematipico merged commit 0cc38f5 into biomejs:main Jul 30, 2025
31 checks passed
@github-actions github-actions bot mentioned this pull request Jul 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CLI Area: CLI A-Diagnostic Area: diagnostocis A-Linter Area: linter A-Project Area: project L-JavaScript Language: JavaScript and super languages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载