-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Yarn 3/4 PnP compatibility #5042
Conversation
|
👷 Deploy request for qwik-insights pending review.Visit the deploys page to approve it
|
Thanks for your PR and for the interesting description. So with only these small changes yarn 3/4 works correctly, right? |
@gioboa I was able to run a newly created qwik app (with So as far as I know, it now works correctly. But it doesn't mean that it covers every cases and that something else could come up later on. Something that could be interesting is to automate a test suite that tries to start a qwik app in a Yarn workspace with PnP. That way we could know in the future if a new require was added without properly declaring its dependency. What do you think? |
I think it look so good, well done 👍 let's wait the core team review |
this PR is approved by a core team member so @ianlet pls solve the conflicts and we will merge it. |
Head branch was pushed to by a user without write access
@gioboa PR updated. FYI the "auto-merge" was automatically disabled when I pushed. |
one of the checks is failing, complaining about an additional dependency
|
Yep, we need to adapt the script to allow the extra deps we introduced |
Hi @ianlet 👋 |
@zanettin thanks for the update! Per se it seems to be working. Though I made some more tests with my production app (which is in a Yarn 4 workspace) and now the following error is completely preventing my app to run:
I tried simply upgrading my app from So even though this PR improves the Yarn 3 & 4 compatibility, it doesn't solve it as new changes in I don't mind tracking down every dependency problem I can find, but I'm afraid that it will not prevent errors to come up again in the future. Especially as Yarn is not the tool used for this repo. Do you want me to work on a new check in the CI to ensure it keeps working for a Yarn app using Qwik? That way we can know if new changes break something. |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@builder.io/qwik](https://qwik.builder.io/) ([source](https://togithub.com/BuilderIO/qwik)) | [`1.2.15` -> `1.2.17`](https://renovatebot.com/diffs/npm/@builder.io%2fqwik/1.2.15/1.2.17) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@builder.io%2fqwik/1.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@builder.io%2fqwik/1.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@builder.io%2fqwik/1.2.15/1.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@builder.io%2fqwik/1.2.15/1.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>BuilderIO/qwik (@​builder.io/qwik)</summary> ### [`v1.2.17`](https://togithub.com/BuilderIO/qwik/releases/tag/v1.2.17) [Compare Source](https://togithub.com/BuilderIO/qwik/compare/v1.2.16...v1.2.17) ##### What's Changed - fix(labs): Better handling and visibility of q-insights.json by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5384 - feat(insights): Add new route visibility by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5385 - fix(vite): resolution of nested dependencies by [@​wmertens](https://togithub.com/wmertens) in [QwikDev/qwik#5383 - docs: fix incorrect escaping in URL by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5387 - fix(insights): improve files per cluster by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5388 - fix(qwik): Improve logging of vite plugin by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5389 - fix(core): parent component lookup during pause by [@​wmertens](https://togithub.com/wmertens) in [QwikDev/qwik#5390 - chore: clean up docs site build warnings by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5391 - docs: explain custom event props and detail when PropFunction is needed by [@​maiieul](https://togithub.com/maiieul) in [QwikDev/qwik#5386 - docs: don't index demos; don't duplicate meta descriptions by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5392 - docs: add custom 404 page by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5393 - chore(docs): small improvements to routing/index.mdx by [@​wmertens](https://togithub.com/wmertens) in [QwikDev/qwik#5395 - refactor(package.json): add docs.dev & docs.preview by [@​maiieul](https://togithub.com/maiieul) in [QwikDev/qwik#5396 - chore: 1.2.17 by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5397 **Full Changelog**: QwikDev/qwik@v1.2.16...v1.2.17 ### [`v1.2.16`](https://togithub.com/BuilderIO/qwik/releases/tag/v1.2.16) [Compare Source](https://togithub.com/BuilderIO/qwik/compare/v1.2.15...v1.2.16) ##### What's Changed - docs: improve SEO with descriptions by [@​hamatoyogi](https://togithub.com/hamatoyogi) in [QwikDev/qwik#5360 - fix(cli): parseTemplatePath doesn't work in windows by [@​yuyidegit](https://togithub.com/yuyidegit) in [QwikDev/qwik#5339 - docs: fix typo by [@​mBonny87](https://togithub.com/mBonny87) in [QwikDev/qwik#5361 - chore(qwik-insights): use clientOutDir if provided by [@​intellix](https://togithub.com/intellix) in [QwikDev/qwik#5366 - docs: remove soundy.cloud by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5374 - chore: clean up release script by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5376 - fix(qwik): Incorrect module reference in inlinedQrl by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5375 - docs: Alex Russell Approved javascript framework by [@​PatrickJS](https://togithub.com/PatrickJS) in [QwikDev/qwik#5364 - chore: improved README.md for build artifacts by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5377 - fix(qwik-city): parseBody should not clone Request by [@​mpeg](https://togithub.com/mpeg) in [QwikDev/qwik#5353 - docs(eslint-rules): refactor use-method-usage to reflect current qwik… by [@​maiieul](https://togithub.com/maiieul) in [QwikDev/qwik#5344 - fix: Yarn 3/4 PnP compatibility by [@​ianlet](https://togithub.com/ianlet) in [QwikDev/qwik#5042 - revert: refactor(optimizer): remove using resolvePackageData API from Vite by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5379 - docs: update Alex Russell by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5381 - chore: 1.2.16 by [@​mhevery](https://togithub.com/mhevery) in [QwikDev/qwik#5382 ##### New Contributors - [@​yuyidegit](https://togithub.com/yuyidegit) made their first contribution in [QwikDev/qwik#5339 - [@​mBonny87](https://togithub.com/mBonny87) made their first contribution in [QwikDev/qwik#5361 - [@​ianlet](https://togithub.com/ianlet) made their first contribution in [QwikDev/qwik#5042 **Full Changelog**: QwikDev/qwik@v1.2.15...v1.2.16 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 9pm on sunday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/ascorbic/unpic-img). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
* add created/updated date to docs frontmatter * read the frontmatter (#1) * feat: show updated docs showing the updated docs with a circle next to the title, in this commit I added the circles. * chore(docs): remove warnings (#5345) * style(eslint): convey a stricter restriction from `just` to `only` (examples) (#5340) * feat(vite): allow disabling dev SSR server in vite (#5347) * chore(docs): Small fix of file to edit (#5348) * docs: Update index.mdx (#5351) * Update index.mdx Correct mistake. The original was: Both pages are created by adding ... Changed to: Pages are created by adding ... * trigger GH checks --------- Co-authored-by: gioboa <giorgiob.boa@gmail.com> * fix: action redirect accidentally stripped searchparams (#5349) Fix #5342 * fix: remove cf pages stream polyfill (#5352) * chore: updated twitter logo to X (#5357) * docs: update React cheat sheet title (#5358) * 1.2.15 (#5359) * docs: improve SEO with descriptions (#5360) * fix(cli): parseTemplatePath doesn't work in windows (#5339) * fix(cli) parseTemplatePath doesn't work in windows * refactor use path.sep --------- Co-authored-by: Yale <yale.yu@kuka.com> * docs: fix typo (#5361) * chore(qwik-insights): use clientOutDir if provided (#5366) * docs: remove soundy.cloud (#5374) * chore: clean up release script (#5376) * fix(qwik): Incorrect module reference in inlinedQrl (#5375) * fix(qwik): Incorrect module reference in inlinedQrl Fix #5368 * fixup! fix(qwik): Incorrect module reference in inlinedQrl * docs: Alex Russell Approved javascript framework (#5364) * docs: Alex Russell Approved Alex Russell Approved JavaScript framework * docs(faq): wording * chore: improved README.md for build artifacts (#5377) * fix(qwik-city): parseBody should not clone Request (#5353) fix(qwik-city): parseBody should not clone requests * docs(eslint-rules): refactor use-method-usage to reflect current qwik… (#5344) * docs(eslint-rules): refactor use-method-usage to reflect current qwik API * refactored unit tests * re-add TSAsExpression * word change: just -> only, to reflect latest PR --------- Co-authored-by: Miško Hevery <misko@hevery.com> * fix: Yarn 3/4 PnP compatibility (#5042) * CI * revert --------- Co-authored-by: Roman Zanettin <roman.zanettin@gmail.com> * Revert "refactor(optimizer): remove using resolvePackageData API from Vite" (#5379) Revert "refactor(optimizer): remove using resolvePackageData API from Vite (#5312)" This reverts commit ec53ef7. * docs: update Alex Russell (#5381) * chore: 1.2.16 (#5382) * fix(labs): Better handling and visibility of q-insights.json (#5384) * feat(insights): Add new route visibility (#5385) * fix(vite): resolution of nested dependencies Co-authored-by: Manu MA <manucorporat@users.noreply.github.com> * docs: fix incorrect escaping in URL (#5387) * fix(insights): improve files per cluster (#5388) Increase clustering distance which should result in creation of fewer clusters. Fewer clusters means that less files should be downloaded to the client (each file will have more symbols.) This should improve performance. * fix(qwik): Improve logging of vite plugin (#5389) fix(qwik): Improve logging of vite plugin The log now includes file location and code snippet. * fix(core): parent component lookup during pause the parentCtx attribute was optimized to point directly to parents with $contexts$ defined, but that broke pausing which needs the immediate parent. Co-authored-by: Jesse Zhang <jesse.zhang@orchard.com> * chore: clean up docs site build warnings (#5391) * docs: explain custom event props and detail when PropFunction is needed (#5386) * docs: don't index demos; don't duplicate meta descriptions (#5392) * docs: add custom 404 page (#5393) * chore(docs): small improvements to routing/index.mdx * refactor(package.json): add docs.dev & docs.preview Add pnpm docs.dev & pnpm docs.preview commands to improve the DX for contributors. * chore: 1.2.17 (#5397) * fix(insight): use relative path (#5399) * docs: Update media page with new YouTube video links (#5401) Update media page with new YouTube video links * chore(starters): add VSCode debug setting (#5408) * docs(integrations): astro integration docs (#5409) * docs(integrations): astro integration docs * docs(integration): typo * docs(docs): updated docs changes * docs(menu): Add Astro integration to menu (#5410) * Add Astro integration to menu * Add description and keywords to Astro integration page, and update contributor list. * chore(docs): update node integration page (#5413) Bold statement regarding `ORIGIN` env var. * fix(qwik-city): vercel adapter default to `webworker` target (#5414) * docs: correct broken image (#5415) * docs(astro): Qwik + Astro doc improvements (#5416) * Qwik astro doc improvements * typo fix * fix(propfunctionprops): prevent 'undefined', 'null', 'never' conversion to PropFnInterface (#5363) * fix(propfunctionprops): prevent 'undefined', 'null', 'never' conversion to PropFnInterface fix #4946 * improve PropFunctionProps readability and edge-cases * fix never becoming undefined * fixup! fix never becoming undefined * refine tests --------- Co-authored-by: Miško Hevery <misko@hevery.com> * fix(qwik-city): better type for svg?jsx imports (#5420) * fix(qwik-city): fix rendered svg?jsx component closing tag (#5423) * fix: fix optimized svg closing tag * test: add svg optimizer test * fix: cache max-age vite.config for dev mode (#5427) * fix(cli): casing for component and mdx route creation (#5430) * docs: fix broken image (#5432) * docs: fixed small typo (#5434) * docs: add missing contributors (#5435) * fix: 3rd party imports of libs during build (#5431) Co-authored-by: Miško Hevery <misko@hevery.com> * fix(docs): improve SEO (#5439) * feat(core): auto px addition to css properties for unitless numbers (#5426) * feat(core): auto px addition to css properties for unitless numbers This adds support for auto-addition of 'px' to css properties * add tests to check styles in both ssr and csr * docs: Add link to create new Qwik Insights app as self-serve (#5443) * fix: Pass the missing props for Spinner component (#5437) Pass the missing props for Spinner component As the `growing` props is missing in the bootstrap starter template `Spinner` component it is causing the issue in production build while testing after adding the bootstrap. * fix(docs): Wrap function in cleanup function instead of returning it (#5440) Wrap function in cleanup function instead of returning it * fix(docs): typo in qwikcity -> Validator docs (#5444) --------- Co-authored-by: gioboa <giorgiob.boa@gmail.com> * fix(docs): typo in qwik city -> middleware page (#5446) --------- Co-authored-by: gioboa <giorgiob.boa@gmail.com> * fix(docs): update links for Edit this page button (#5445) --------- Co-authored-by: gioboa <giorgiob.boa@gmail.com> * chore: 1.2.18 (#5449) * docs: Add Component library `ionic-qwik` to community projects on docs. (#5429) Add Component library `ionic-qwik`. * chore(docs): advanced usage of Slot, visibleTask (#5424) chore(docs): advanced Slot, visibleTask, Context * chore(core): update `QwikKeyboardEvent` type (#5433) chore(core): update keyboardevent to have code attr and update deprecated attrs * fix(docs): remove `inline-code` and `link` in tag `<a />` (#5450) --------- Co-authored-by: wangyipeng <ffwangyipeng@chinatelecom.cn> Co-authored-by: Giorgio Boa <35845425+gioboa@users.noreply.github.com> * docs(ssg): fix shell command (#5459) * docs(auth.js): add credentials example (#5462) * chore: 1.2.19 (#5466) * chore(all): Vite 5 upgrade * chore(core): remove resolvePackageData (#5312) * chore: pnpm api.update * feat(playground): remove broken versions * feat: add qwik/no-use-visible-task eslint rule (#5455) * feat: add qwik/no-use-visible-task eslint rule ---- Co-authored-by: Matteo Pietro Dazzi <ilteoood@users.noreply.github.com> Co-authored-by: Pasquale De Lucia <pasquale.delucia96@gmail.com> Co-authored-by: Gloria Giannascoli <gloriag-dev@users.noreply.github.com> Co-authored-by: pietrodev07 <pietrodev07@users.noreply.github.com> * linter 🧽 * feat: add extra tips * fix: change message * docs: add missing eslint recap * chore(insights): remove unnecessary log (#5461) * fix: add example context to docs (#5467) * feat(qwik-city): allow customizing SVGO options of image plugin (#5407) * docs: fix typo * docs: fix typo (#5481) * fix(core): Support JSX in signals (#5442) Fix #4966 Fix #3530 * docs(FAQ): - lazy-loading on user interaction & speculative module fetching (#5488) docs: FAQ - lazy-loading on user interaction & speculative module fetching * docs(faq): add link to typescript (#5487) * fix: disable Vite modulepreload (#5493) * fix: disable Vite modulePreload Fixed: #5478 * chore: use cleaner option * docs(faq): fix typos and improve the wording of some sentences (#5490) * docs: make the distinction between module-prefetching and <Link prefetch> (#5485) docs(module-prefetching): make the distinction between module-prefetching and <Link prefetch> * docs(showcase): add `index.app` and `wiza.co` (#5484) Update pages.json * fix(docs): mdx interpreting title as component (#5499) * docs: cleanup the vdom section (#5500) * fix: revert "fix: remove cf pages stream polyfill" (#5502) * fix(qwik-city): prefix ids of SVGs based on their path when loaded as qwik nodes (#5497) Enable the prefixIds SVGO plugin by default, while still allowing customization. This is a follow up on #5407. Here's a discussion on why it makes sense when optimizing SVG files for the web: svg/svgo#674. * fix: cf pages polyfill only if needed (#5507) fix: polyfill only if needed * refactor: extract group type * docs: add QwikCityMockProvider explanation (#5505) * Extend index.mdx to include QwikCityMockProvider * docs: add links between vitest integration page and qwikcity api page * docs(glob-import): add documentation for import.meta.glob (#5504) * docs(glob-import): add documentation for import.meta.glob * docs(glob-imports): add Glob Import link to /cookbook/index.mdx * docs(glob-import): refactor type any to Record<string, any> * docs: add Record<string, any> to mdx as well * fix: CF pages polyfill also when shimmed (#5512) * fix: polyfill also when shimmed * chore: add comment to explain polyfill * chore: Giorgio's feedback * refactor: made the renderUpdate as a const put the mardown update in a const which made the code cleaner and better to understand * fix: fixed build * docs: api update * refactor: build * chore: fix pnpm-locke file * chore: build * chore: pnpm fmt * refactor: removed style-system --------- Co-authored-by: Marcos Perona <mperona@gmail.com> Co-authored-by: Giorgio Boa <35845425+gioboa@users.noreply.github.com> Co-authored-by: Alex Tocar <commit@ueuie.dev> Co-authored-by: Miško Hevery <misko@hevery.com> Co-authored-by: Nelson Sousa <nelsonprsousa@gmail.com> Co-authored-by: Runar Jordahl <runar.jordahl@gmail.com> Co-authored-by: gioboa <giorgiob.boa@gmail.com> Co-authored-by: Kaushik080 <120493528+Kaushik080@users.noreply.github.com> Co-authored-by: Yoav Ganbar <hamatoyogi@users.noreply.github.com> Co-authored-by: yale.yu <35560398+yuyidegit@users.noreply.github.com> Co-authored-by: Yale <yale.yu@kuka.com> Co-authored-by: Bonny87 <36232591+mBonny87@users.noreply.github.com> Co-authored-by: D <intellix@users.noreply.github.com> Co-authored-by: PatrickJS <github@patrickjs.com> Co-authored-by: Maïeul <45822175+maiieul@users.noreply.github.com> Co-authored-by: Ian Létourneau <letourneau.ian@gmail.com> Co-authored-by: Roman Zanettin <roman.zanettin@gmail.com> Co-authored-by: Wout Mertens <Wout.Mertens@gmail.com> Co-authored-by: Manu MA <manucorporat@users.noreply.github.com> Co-authored-by: Jesse Zhang <jesse.zhang@orchard.com> Co-authored-by: maieulchevalier <maieul.chevalier@gmail.com> Co-authored-by: Jack Shelton <104264123+thejackshelton@users.noreply.github.com> Co-authored-by: Erik Eng <e.ptz0n@gmail.com> Co-authored-by: Steve Sewell <steve@builder.io> Co-authored-by: Riccardo Perra <perrariccardo0@gmail.com> Co-authored-by: Pasquale De Lucia <pasquale.delucia96@gmail.com> Co-authored-by: Sidharth Mohanty <sidmohanty11@gmail.com> Co-authored-by: Daniela Bonvini <danbonvini@gmail.com> Co-authored-by: Shai Reznik <shairez@users.noreply.github.com> Co-authored-by: Lucas Stahl <30933416+Stahlwalker@users.noreply.github.com> Co-authored-by: John Prem Kumar S <36818969+JohnPremKumar@users.noreply.github.com> Co-authored-by: Thomas Deinhamer <184284+thasmo@users.noreply.github.com> Co-authored-by: Harish Krishnan <harishkrishnan1993@gmail.com> Co-authored-by: Juer Genie Whang <2695996944@qq.com> Co-authored-by: Juer Genie Whang <juergenie@qq.com> Co-authored-by: wangyipeng <ffwangyipeng@chinatelecom.cn> Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com> Co-authored-by: Arjun <arjunsingh8112@gmail.com> Co-authored-by: Bendegúz Hajnal <hajnalbendeguz@gmail.com> Co-authored-by: ulic75 <ulic75@gmail.com> Co-authored-by: Youssef Adbib <mradbib@gmail.com> Co-authored-by: Necati <necatifk07@gmail.com> Co-authored-by: Leo <wtlin1228@gmail.com> Co-authored-by: mulztob <49060581+mulztob@users.noreply.github.com>
What is it?
Description
As documented in #5038, we cannot start a Qwik app in a Yarn 3 or 4 workspace with PnP because some dependencies are not properly declared in both
qwik
andqwik-city
.The changes in this PR are simply to make the dependencies explicit or to make them as an acutal dependency instead of just a dev-dependency.
Close #5038.
For reference: here are the places I found in the code requiring each dependency.
packages/qwik/src/optimizer/src/plugins/eslint-plugin.ts
packages/qwik/src/optimizer/src/plugins/vite-server.ts
packages/qwik/src/optimizer/src/plugins/vite-utils.ts
packages/qwik/src/optimizer/src/plugins/image-size-server.ts
packages/qwik/src/optimizer/src/plugins/rollup.ts
packages/qwik/src/optimizer/src/plugins/rollup.unit.ts
packages/qwik/src/optimizer/src/plugins/plugin.ts
packages/qwik/src/optimizer/src/plugins/vite.ts
packages/qwik/src/optimizer/src/plugins/vite.unit.ts
packages/qwik-city/buildtime/vite/image-jsx.ts
packages/qwik-city/adapters/cloud-run/vite/index.ts
packages/qwik-city/buildtime/vite/config.ts
packages/qwik-city/buildtime/vite/plugin.ts
packages/qwik-city/buildtime/vite/dev-server.ts
packages/qwik-city/adapters/shared/vite/index.ts
packages/qwik-city/static/main-thread.ts
packages/qwik-city/runtime/vite.config.ts
packages/qwik-city/middleware/node/node-fetch.ts
packages/qwik-city/runtime/src/service-worker/utils.unit.ts
Use cases and why
Yarn enforces a more strict approach than other package managers (you can read more about it here) regarding how dependencies are declared. In order to improve maintainability and prevent future issues, it forces all required dependency to be explicitly declared.
Even though Qwik is managed with
pnpm
and it wasn't reported as an issue until now, being aware of this and declaring dependencies explicitly should improve both the code maintainability and the adoption of Qwik (for those using Yarn 3 or 4 with PnP not in loose mode).Checklist: