Nimbus dependencies
Opened this issue · 9 comments
Dependencies and packages
Since the project is not starting from scratch, there is already a lot of dependencies installed with a specific version. Now might be a good time to revisit what we are using and if there some upkeep needed or not.
In general
- Are we happy with our current dependencies ?
- Is there any alternatives we should consider ?
- Is there any package that is not needed anymore ? (ex: I don't think we use
unimport
anywhere, AFAIK we just rely on Nuxt for autoimports ?)
On pnpm i
Executing pnpm i
in the root of the project shows a warning in the console :
Progress: resolved 1771, reused 1745, downloaded 0, added 1771, done
WARN Could not apply patch <root>/patches/@vueuse__motion.patch to <root>/node_modules/.pnpm/@vueuse+motion@2.2.6_patch_hash=2v574i37tz7ffssjdagkznimyq_magicast@0.3.5_rollup@2.79.1_vue@3_4l5qmtl2olisq7wu3y32q3d4py/node_modules/@vueuse/motion
- Do we still need patches at all ?
- If the answer is yes, should we update this patch to stop this warning ?
Note
This has been solved in #10
On pnpm dev
Executing pnpm dev
shows two warnings in the console :
WARN [nuxt] Expected @nuxt/schema to be at least 3.14.159 but got 3.13.2. This might lead to unexpected behavior. Check your package.json or refresh your lockfile.
[@nuxtjs/i18n 6:02:27 PM] WARN In project layer (<root>/nuxt.config) - langDir is set to an absolute path <root>/locales) but should be set a path relative to srcDir (<root>). Absolute paths will not work in production, see https://i18n.nuxtjs.org/options/lazy#langdir for more details.
- Do we need to refresh the lockfile to stop the warning ?
- Do we need to change the i18n config ?
Note
This has been solved in #13
On pnpm outdated
Running pnpm outdated
shows that a lot of the dependencies could be updated :
- Do we want to upgrade everything ?
- If no, is there any package we should update ?
┌───────────────────────────────────┬──────────┬───────────┐
│ Package │ Current │ Latest │
├───────────────────────────────────┼──────────┼───────────┤
│ @antfu/eslint-config (dev) │ 3.9.1 │ 3.9.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @iconify/json │ 2.2.170 │ 2.2.275 │
├───────────────────────────────────┼──────────┼───────────┤
│ @iconify/utils │ 2.1.32 │ 2.1.33 │
├───────────────────────────────────┼──────────┼───────────┤
│ @nuxt/test-utils │ 3.14.3 │ 3.14.4 │
├───────────────────────────────────┼──────────┼───────────┤
│ @upstash/redis │ 1.34.0 │ 1.34.3 │
├───────────────────────────────────┼──────────┼───────────┤
│ form-data │ 4.0.0 │ 4.0.1 │
├───────────────────────────────────┼──────────┼───────────┤
│ github-reserved-names │ 2.0.4 │ 2.0.7 │
├───────────────────────────────────┼──────────┼───────────┤
│ lru-cache │ 11.0.0 │ 11.0.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ nuxt (dev) │ 3.14.159 │ 3.14.1592 │
├───────────────────────────────────┼──────────┼───────────┤
│ pinia │ 2.2.2 │ 2.2.6 │
├───────────────────────────────────┼──────────┼───────────┤
│ vue-tsc (dev) │ 2.1.6 │ 2.1.10 │
├───────────────────────────────────┼──────────┼───────────┤
│ @emoji-mart/data │ 1.1.2 │ 1.2.1 │
├───────────────────────────────────┼──────────┼───────────┤
│ @nuxt/devtools │ 1.5.2 │ 1.6.1 │
├───────────────────────────────────┼──────────┼───────────┤
│ @nuxtjs/color-mode │ 3.4.4 │ 3.5.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/core │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/extension-bold │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/extension-character-count │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/extension-code-block │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/extension-history │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/extension-italic │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/extension-mention │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/extension-paragraph │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/extension-placeholder │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/extension-text │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/pm │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/starter-kit │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/suggestion │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @tiptap/vue-3 │ 2.2.4 │ 2.10.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ @vue-macros/nuxt │ 1.11.12 │ 1.12.9 │
├───────────────────────────────────┼──────────┼───────────┤
│ @vueuse/core │ 11.0.3 │ 11.3.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ @vueuse/integrations │ 11.0.3 │ 11.3.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ @vueuse/math │ 11.0.3 │ 11.3.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ @vueuse/nuxt │ 11.0.3 │ 11.3.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ chroma-js │ 3.0.0 │ 3.1.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ emoji-mart │ 5.5.2 │ 5.6.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ focus-trap │ 7.5.4 │ 7.6.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ happy-dom │ 15.10.2 │ 15.11.6 │
├───────────────────────────────────┼──────────┼───────────┤
│ iso-639-1 │ 3.0.1 │ 3.1.3 │
├───────────────────────────────────┼──────────┼───────────┤
│ shiki │ 1.22.2 │ 1.23.1 │
├───────────────────────────────────┼──────────┼───────────┤
│ simple-git │ 3.26.0 │ 3.27.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ std-env │ 3.7.0 │ 3.8.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ typescript (dev) │ 5.6.2 │ 5.7.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ unimport │ 3.11.1 │ 3.13.3 │
├───────────────────────────────────┼──────────┼───────────┤
│ workbox-build │ 7.1.1 │ 7.3.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ workbox-window │ 7.1.0 │ 7.3.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ @vercel/kv │ 2.0.0 │ 3.0.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ nuxt-security │ 1.4.3 │ 2.1.4 │
├───────────────────────────────────┼──────────┼───────────┤
│ postcss-nested │ 6.0.1 │ 7.0.2 │
├───────────────────────────────────┼──────────┼───────────┤
│ string-length │ 5.0.1 │ 6.0.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ @antfu/ni (dev) │ 0.23.0 │ 0.23.1 │
├───────────────────────────────────┼──────────┼───────────┤
│ @pinia/nuxt │ 0.5.4 │ 0.7.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ @unocss/nuxt │ 0.63.6 │ 0.64.1 │
├───────────────────────────────────┼──────────┼───────────┤
│ slimeform │ 0.9.1 │ 0.10.0 │
├───────────────────────────────────┼──────────┼───────────┤
│ vite-plugin-pwa │ 0.20.5 │ 0.21.0 │
└───────────────────────────────────┴──────────┴───────────┘
You should install nimbus via pnpm install --frozen-lockfile
(undo changes and run previous command),
I'll check if we can update some dependencies...
I guess we need to recreate the patches, missing version in the patch name.
You should install nimbus via pnpm install --frozen-lockfile (undo changes and run previous command),
@userquin This is happening even when running pnpm install --frozen-lockfile
on a freshly cloned version of nimbus on my end.
I have included a recording to show what's happening :
- clone
nimbus
in a new folder - run
pnpm install --frozen-lockfile
- run
pnpm dev
- the warning is till there
nimbus-install.mov
You can ignore both warnings, I'm going to check both...
Now it should be fine, i18n and nuxt schema warnings fixed on dev server
Thanks @userquin, I can confirm the warnings are gone now! I'll keep the issue open to discuss upgradind the other dependencies, or finding alternatives/obsolete packages.
Renovate is configured for Elk: elk-zone/elk#1098, which periodically scans outdated dependencies and creates PRs. I think we can set up Renovate for nimbus too.
Currently, some of them fail CI check so we need to adjust the existing codebase to align with package version up.
@shuuji3 If Renovate was working fine for Elk then let's not reinvent the wheel, agreed.
Who could setup Renovate on this repo then ? I guess it must be someone with admin rights ?
Yes, the admin permission is needed as it requires installing the Renovate app (https://github.com/marketplace/renovate) to the repository (@patak-dev or someone who has proper permission can do that).
We already codified the Renovate setting here so it would be easier to replicate the same setting as Elk instead of setting up from scratch: https://github.com/nimbus-town/nimbus/blob/main/.github/renovate.json5