nimbus-town/nimbus

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 unimportanywhere, 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 :

  1. clone nimbusin a new folder
  2. run pnpm install --frozen-lockfile
  3. run pnpm dev
  4. 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