Skip to content

feat: ✨ Upgrade to Nuxt v4#175

Merged
slugb0t merged 2 commits intomainfrom
staging
Dec 15, 2025
Merged

feat: ✨ Upgrade to Nuxt v4#175
slugb0t merged 2 commits intomainfrom
staging

Conversation

@slugb0t
Copy link
Member

@slugb0t slugb0t commented Dec 15, 2025

Summary by Sourcery

Upgrade the UI app to Nuxt 4 and align related dependencies, UI components, and compliance messaging with the new setup.

New Features:

  • Adopt the official @nuxt/icon module in place of the previous nuxt-icon package.
  • Add additional Naive UI components to the global component typings for broader UI usage.

Enhancements:

  • Simplify the Nuxt build transpile configuration to always transpile key UI libraries regardless of environment.
  • Update Nuxt, Naive UI, and related Vue UI dependencies to versions compatible with Nuxt 4.
  • Adjust compliance check templates to clarify that certain FAIR and metadata checks only run after a LICENSE file is detected, using warning callouts for emphasis.

@fairdataihub-bot
Copy link

Thank you for submitting this pull request! We appreciate your contribution to the project. Before we can merge it, we need to review the changes you've made to ensure they align with our code standards and meet the requirements of the project. We'll get back to you as soon as we can with feedback. Thanks again!

@sourcery-ai
Copy link

sourcery-ai bot commented Dec 15, 2025

Reviewer's Guide

Upgrades the UI app to Nuxt v4 and aligns related dependencies/configuration, while also refining compliance-check messaging around missing LICENSE/metadata files.

Flow diagram for updated compliance-check messaging when LICENSE is missing

flowchart TD
  RepoState["Repository pushed or updated"]
  RunChecks["Run Codefair compliance checks"]
  CheckLicense["Check for LICENSE at repository root"]
  LicensePresent{LICENSE present?}
  LicenseMessage["LICENSE section: show LICENSE ✔️ message"]
  NoLicenseMessage["LICENSE section: show LICENSE ❌ with concise guidance"]
  MetadataCheck["Metadata check logic"]
  MetadataBlocked["Metadata section: show warning block that checks run after LICENSE is detected"]
  ArchivalCheck["Archival check logic"]
  ArchivalBlocked["Archival section: show warning block that FAIR release check runs after LICENSE is detected"]
  Dashboard["Render updated dashboard and badges"]

  RepoState --> RunChecks --> CheckLicense --> LicensePresent

  LicensePresent -->|Yes| LicenseMessage --> MetadataCheck --> ArchivalCheck --> Dashboard

  LicensePresent -->|No| NoLicenseMessage --> MetadataBlocked --> ArchivalBlocked --> Dashboard
Loading

File-Level Changes

Change Details Files
Standardize Nuxt build transpile configuration for all environments and migrate to the new Nuxt icon module.
  • Remove environment-conditional transpile list and always transpile Naive UI, VueUC, CSS render SSR, resize observer, and vue-countup
  • Replace deprecated nuxt-icon module reference with @nuxt/icon in Nuxt modules configuration
ui/nuxt.config.ts
Align dependencies with Nuxt v4 and Naive UI ecosystem updates.
  • Upgrade nuxt to v4 and relax version to a caret range
  • Downgrade notivue to a version compatible with the upgraded stack
  • Introduce @nuxt/icon as a runtime dependency and remove nuxt-icon as a dev dependency
  • Add vueuc runtime dependency and bump naive-ui dev dependency to a newer compatible version
ui/package.json
Extend auto-imported Naive UI components to support additional UI elements needed after the upgrade.
  • Register additional Naive UI components such as collapse transition, date picker, dynamic input, popconfirm, and space in the global components type declarations
ui/components.d.ts
Adjust compliance-check messaging around missing LICENSE/metadata to clarify behavior and add explicit warnings.
  • Update archival check text to explain that FAIR release checks will run after a LICENSE file is detected, using a WARNING callout
  • Simplify license check copy and remove duplicated explanation about dependent checks
  • Update metadata check text to use a WARNING callout and clarify that metadata checks run only after a LICENSE is present
bot/compliance-checks/archival/index.js
bot/compliance-checks/license/index.js
bot/compliance-checks/metadata/index.js

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@what-the-diff
Copy link

what-the-diff bot commented Dec 15, 2025

PR Summary

  • Update to .gitignore files
    The .gitignore files in both the bot and ui directories have been updated to ignore changes in the .vscode/ subdirectory. This prevents any unwanted tracking of personal Visual Studio Code settings by Git.

  • Modification to warning messages
    The warning text in the index.js file of bot/compliance-checks/archival and bot/compliance-checks/metadata have been modified for clarity. These new messages emphasize the necessity of a LICENSE file for Fair, Accountable, and Transparent (FAIR) checks in our system.

  • Message cleanup in bot/compliance-checks/license file
    The messages regarding the expected presence of a LICENSE file in the bot/compliance-checks/license file are now more concise and clear. This enhances interoperability and improves our system's license checking functionalities.

  • New component declarations
    The ui/components.d.ts file now has new declarations for additional components including NCollapseTransition, NDatePicker, NDynamicInput, NPopconfirm, and NSpace. This brings the potential for more complex and diverse interfaces in our user interactions.

  • Refactoring of nuxt.config.ts
    The nuxt.config.ts file has been refactored for simplicity and better formatting. The transpile section in particular has been improved, making it easier to read and manage.

  • Update to package.json
    The package.json file has been updated to include new dependencies (@nuxt/icon, vueuc) and to modify the versions of some of our existing dependencies. We've updated nuxt to version ^4.2.2 and naive-ui to version ^2.43.2 for added efficiency and increased compatibility.

@fairdataihub-bot
Copy link

Thanks for making updates to your pull request. Our team will take a look and provide feedback as soon as possible. Please wait for any GitHub Actions to complete before editing your pull request. If you have any additional questions or concerns, feel free to let us know. Thank you for your contributions!

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey there - I've reviewed your changes - here's some feedback:

  • The build.transpile list is now always applied instead of being conditional on NODE_ENV; consider whether this is necessary for Nuxt 4 or if it will unnecessarily slow down local/dev builds.
  • Both .gitignore at the repo root and ui/.gitignore appear to be deleted in this PR; double-check that this is intentional and that you won't start committing previously ignored files.
  • The LICENSE template text no longer mentions that metadata and FAIR release checks are blocked until a LICENSE exists, while the archival/metadata templates still refer to that dependency; consider re-adding or aligning this messaging so users get a consistent explanation of blocked checks.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The `build.transpile` list is now always applied instead of being conditional on `NODE_ENV`; consider whether this is necessary for Nuxt 4 or if it will unnecessarily slow down local/dev builds.
- Both `.gitignore` at the repo root and `ui/.gitignore` appear to be deleted in this PR; double-check that this is intentional and that you won't start committing previously ignored files.
- The LICENSE template text no longer mentions that metadata and FAIR release checks are blocked until a LICENSE exists, while the archival/metadata templates still refer to that dependency; consider re-adding or aligning this messaging so users get a consistent explanation of blocked checks.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@slugb0t slugb0t merged commit 49ae97f into main Dec 15, 2025
5 checks passed
@fairdataihub-bot
Copy link

Thanks for closing this pull request! If you have any further questions, please feel free to open a new issue. We are always happy to help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant