Skip to content
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

v0.9.0: Added the new UI prefabs #16

Merged
merged 10 commits into from
Jan 8, 2025
Merged

v0.9.0: Added the new UI prefabs #16

merged 10 commits into from
Jan 8, 2025

Conversation

kurone-kito
Copy link
Owner

@kurone-kito kurone-kito commented Jan 8, 2025

Overview

QuickMenu
Buttons
Cards

  • ❇️ NEW 3 parts includes the Quick Menu, the Wings Root Menu, and the compact player card.
  • ⚠️ Renamed 1 parts.
    • In principle, this should not be a destructive change because the GUIDs in the metadata match.
  • ⚠️ Implemented the expandable icon to the IconWithCaptionButton prefab.
    • If you do not want this change, manually deactivate the corresponding hierarchy.
  • ✨ Fixed the bug that the BG banner is not interactive to the InteractivePlayerCard prefab.

Features

  • 909dc99: Improved the buttons prefabs
    • Molecules/Buttons/ExpandableButton: Removed the extra raycast target
    • ⚠️ Molecules/Buttons/IconWithCaptionButton: Implemented the expandable icon
    • Molecules/Buttons/NavigationButton: Improved the layout
  • 0bd3138: Added and improved the composited cards prefabs
    • ❇️ Molecules/Cards/CompactPlayerCard
    • ⚠️ Molecules/Cards/CreditCard -> Molecules/Cards/PurchaseCard
    • Molecules/Cards/GroupWithTab: Improved the layout
    • Molecules/Cards/PlayerCard: Improved the layout
    • Molecules/Cards/SocialWithTab: Improved the layout
    • Molecules/Cards/WorldWithTab: Improved the layout
  • a1f8768: Improved the prefabs on the category menus
    • Organisms/Category/AvatarMenu: Removed the extra icon
    • Organisms/Category/SocialMenu: Removed the extra icon
  • d028f60: Added the prefab that the root menu of the wings
    • ❇️ Organisms/Wings/WingsRootMenu
  • aa8917b: Added the prefab that the quick menu
    • ❇️ Organisms/Mock/QuickMenu

Bug fixes

  • 0bd3138: Fixed the bug that the BG banner is not interactive
    • Molecules/Cards/InteractivePlayerCard

Update for the sample world

  • c0796e1: Improved the catalog scene

CI/CD

  • 0b27896: Re-ordered the CI/CD scripts

Other updates

  • e5c8131: Bumped the version to 0.9.0
  • 056b5a5: Updated the dependencies
  • 1238b7b: Improved the CSpell configuration

Summary by CodeRabbit

Release Notes

  • New Features

    • Added new prefabs and metadata for UI components in the VRC UI kit
    • Introduced new button animations and interaction states
  • Dependency Updates

    • Updated package versions for VRChat Worlds, LaunchPad Icons, and QVPEN
    • Upgraded black.kit.vrcui package to version 0.9.0
  • Workflow Improvements

    • Minor refinements to GitHub Actions workflow configurations
    • Updated CI/CD pipeline formatting and organization
  • Development Tools

    • Added spell-checking configuration to ignore TextMesh Pro assets

- ! added the expandable icon to the icon with caption button.
- removed the raycast target from the expandable icon from the
  expandable button.
- improved the layout to the navigation icon button
- added the small-sized player card
- moved the credit card prefab to the basic cards catalog
- improved the layout to the cards with tab
- fixed the bug that the interactive player card's bg-image wasn't
  interactive
- swapped some prefabs between the catalogs
- removed the expandable icons.
@kurone-kito kurone-kito added bug Something isn't working enhancement New feature or request labels Jan 8, 2025
@kurone-kito kurone-kito self-assigned this Jan 8, 2025
Copy link

coderabbitai bot commented Jan 8, 2025

Walkthrough

This pull request encompasses a series of minor updates across multiple files in a Unity project. The changes primarily involve workflow configuration adjustments in GitHub Actions files, updates to package dependencies, and the addition of new metadata files for prefabs and assets. The modifications focus on version updates, workflow formatting, and asset management within the project structure.

Changes

File Change Summary
.github/workflows/*.yml Reordered workflow steps, updated permissions, and reformatted configuration files without changing core functionality
Packages/black.kit.vrcui/package.json Version bumped to 0.9.0, updated dependencies for black.kit.launchpadicons and com.vrchat.worlds
Packages/vpm-manifest.json Updated dependency versions for net.ureishi.qvpen, com.vrchat.worlds, and black.kit.launchpadicons
Packages/black.kit.vrcui/Runtime/.../*.meta Added new metadata files for prefabs and assets with fileFormatVersion: 2 and unique GUIDs
Packages/black.kit.vrcui/Runtime/Animations/Button/IconWithCaptionButton.controller New Animator Controller added with states for button interactions
cspell.config.yml Added Assets/TextMesh Pro to ignorePaths

Possibly related PRs

Suggested Labels

documentation

Poem

🐰 Hopping through code with glee,
Workflows dance, dependencies free!
Metadata sparkles, versions take flight,
Unity's magic shines ever so bright!
A rabbit's update, precise and neat! 🚀


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
Packages/black.kit.vrcui/Runtime/Animations/Button/IconWithCaptionButton.controller (1)

1788-1828: Consider normalizing z-positions across states

The current z-position variations between states (-0.3 for Normal, -2.4 for Highlighted/Selected, 0 for others) might cause:

  • Depth sorting issues due to large jumps
  • Inconsistent UI layering

Consider using consistent z-positions across all states or smaller increments if depth separation is needed.

Also applies to: 513-553

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 718d595 and e5c8131.

⛔ Files ignored due to path filters (20)
  • Packages/black.kit.vrcui/Examples/Prefabs/Molecules/BasicCardsCatalog.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Examples/Prefabs/Molecules/CompositedCards1Catalog.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Examples/Prefabs/Organisms/CategoryMenuCatalog1.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Examples/Prefabs/Organisms/CategoryMenuCatalog2.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Examples/Prefabs/Organisms/WingsRootMenuCatalog.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Examples/Scenes/Catalogs.unity is excluded by !**/*.unity
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Buttons/ExpandableButton.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Buttons/IconWithCaptionButton.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Buttons/NavigationIconButton.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Cards/CompactPlayerCard.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Cards/GroupCardWithTab.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Cards/InteractivePlayerCard.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Cards/PlayerCard.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Cards/PurchaseCard.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Cards/SocialCardWithTab.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Cards/WorldCardWithTab.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Category/AvatarsMenu.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Category/SocialMenu.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Mock/QuickMenu.prefab is excluded by !**/*.prefab
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Wings/WingsRootMenu.prefab is excluded by !**/*.prefab
📒 Files selected for processing (14)
  • .github/workflows/build-listing.yml (2 hunks)
  • .github/workflows/push.yml (2 hunks)
  • .github/workflows/release.yml (3 hunks)
  • Packages/black.kit.vrcui/Examples/Prefabs/Organisms/WingsRootMenuCatalog.prefab.meta (1 hunks)
  • Packages/black.kit.vrcui/Runtime/Animations/Button/IconWithCaptionButton.controller (1 hunks)
  • Packages/black.kit.vrcui/Runtime/Animations/Button/IconWithCaptionButton.controller.meta (1 hunks)
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Cards/CompactPlayerCard.prefab.meta (1 hunks)
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Mock.meta (1 hunks)
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Mock/QuickMenu.prefab.meta (1 hunks)
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Wings.meta (1 hunks)
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Wings/WingsRootMenu.prefab.meta (1 hunks)
  • Packages/black.kit.vrcui/package.json (2 hunks)
  • Packages/vpm-manifest.json (2 hunks)
  • cspell.config.yml (1 hunks)
✅ Files skipped from review due to trivial changes (7)
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Wings.meta
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Mock.meta
  • Packages/black.kit.vrcui/Runtime/Animations/Button/IconWithCaptionButton.controller.meta
  • Packages/black.kit.vrcui/Examples/Prefabs/Organisms/WingsRootMenuCatalog.prefab.meta
  • Packages/black.kit.vrcui/Runtime/Prefabs/Molecules/Cards/CompactPlayerCard.prefab.meta
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Mock/QuickMenu.prefab.meta
  • Packages/black.kit.vrcui/Runtime/Prefabs/Organisms/Wings/WingsRootMenu.prefab.meta
🧰 Additional context used
🪛 actionlint (1.7.4)
.github/workflows/release.yml

14-14: shellcheck reported issue in this script: SC2086:info:2:32: Double quote to prevent globbing and word splitting

(shellcheck)


14-14: shellcheck reported issue in this script: SC2086:info:4:33: Double quote to prevent globbing and word splitting

(shellcheck)

🔇 Additional comments (14)
Packages/black.kit.vrcui/Runtime/Animations/Button/IconWithCaptionButton.controller (3)

19-27: Well-configured transition timing!

The transition configuration is optimal for a responsive UI button:

  • Quick 0.05s duration provides snappy feedback
  • Fixed duration ensures consistent behavior
  • Exit time of 1 prevents animation interruption

896-946: Well-structured state machine implementation!

The animator controller follows UI best practices:

  • Comprehensive coverage of UI states (Normal, Highlighted, Pressed, Selected, Disabled)
  • Clear transition conditions
  • Logical default state

70-154: Well-designed color transitions!

The color animations demonstrate good UI/UX practices:

  • Clear visual distinction between states
  • Consistent opacity for enabled states
  • Appropriate dimming for disabled state
cspell.config.yml (1)

18-18: LGTM! Appropriate addition to ignore paths

The addition of "Assets/TextMesh Pro" to ignored paths is consistent with other Unity-related paths and will prevent unnecessary spell checking of TextMesh Pro asset files.

.github/workflows/push.yml (2)

42-42: LGTM! Improved cache key configuration

The cache key now includes hashes of both global.json and *.csproj files, which will ensure better cache invalidation when these critical files change.


49-49: ⚠️ Potential issue

Fix shell script quoting to prevent globbing

The command needs proper quoting to prevent potential word splitting and globbing issues.

Apply this fix:

-        run: '"${{ env.pathToCi }}/build.cmd" BuildRepoListing --root "${{ env.pathToCi }}" --list-publish-directory "$GITHUB_WORKSPACE/${{ env.listPublishDirectory }}" --current-package-name "${{ vars.PACKAGE_NAME }}"'
+        run: '"${{ env.pathToCi }}/build.cmd" BuildRepoListing --root "${{ env.pathToCi }}" --list-publish-directory "${GITHUB_WORKSPACE}/${listPublishDirectory}" --current-package-name "${PACKAGE_NAME}"'

Likely invalid or redundant comment.

.github/workflows/build-listing.yml (1)

27-27: LGTM! Explicit permission declaration

Good security practice to explicitly declare the pages:write permission needed for GitHub Pages deployment.

.github/workflows/release.yml (3)

29-31: LGTM! Well-scoped permissions

The workflow correctly defines minimal required permissions (contents:write) for release operations.


Line range hint 51-58: LGTM! Robust version detection

The version detection uses a comprehensive regex pattern that correctly handles semantic versioning, including build metadata.


77-83: Verify GPG signing environment

The GPG signing step properly uses secrets, but consider verifying the GPG environment setup.

✅ Verification successful

GPG signing environment is properly configured

The workflow has a complete and secure GPG setup using industry-standard practices:

  • Proper key import via crazy-max/ghaction-import-gpg@v6
  • Maximum trust level configuration
  • Consistent use of secrets across signing operations
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify GPG configuration in the workflow
# Test: Check if GPG signing is configured correctly in other workflows

# Look for GPG signing configurations
rg -l 'gpg.*sign|GPG_.*KEY|GPG_PASSPHRASE' .github/workflows/

Length of output: 93


Script:

#!/bin/bash
# Check for GPG setup steps in release.yml
cat .github/workflows/release.yml

Length of output: 4275

Packages/black.kit.vrcui/package.json (2)

4-4: Version bump to 0.9.0 is appropriate.

The version increase aligns with the scope of changes mentioned in PR objectives (new UI prefabs, renamed components).


27-29: Dependencies updated to latest minor versions.

The updates to black.kit.launchpadicons (^0.8.1) and com.vrchat.worlds (^3.7.5) are minor version bumps, which should maintain backward compatibility.

Let's verify the compatibility of these versions:

✅ Verification successful

Dependencies are correctly updated and compatible

The version updates are safe minor bumps that maintain backward compatibility. The dependency tree is clean with no version conflicts.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if these are the latest stable versions
curl -s "https://api.vrchat.cloud/api/1/config" | jq '.clientApiKey' || echo "VRChat API check failed"

# Look for any known issues with these versions
gh api graphql -f query='
{
  repository(owner: "vrchat", name: "packages") {
    issues(last: 5, states: OPEN) {
      nodes {
        title
        body
        labels(first: 5) {
          nodes {
            name
          }
        }
      }
    }
  }
}'

Length of output: 381


Script:

#!/bin/bash
# Search for usage of these packages
echo "=== Searching for package usage ==="
rg -l "black\.kit\.(launchpadicons|toybox)" --type json

echo -e "\n=== Checking for version declarations ==="
rg "\"(black\.kit\.(launchpadicons|toybox)|com\.vrchat\.worlds)\".*:.*\".*\"" --type json

echo -e "\n=== Looking for potential compatibility markers ==="
rg "requires|dependencies" --type json -A 5 -B 5

Length of output: 34116

Packages/vpm-manifest.json (2)

13-22: Dependencies section properly updated.

All version updates are consistent with package.json and follow proper semver patterns.


41-65: Locked dependencies properly configured.

The locked dependencies section correctly specifies all required versions and their interdependencies. The dependency chain is properly maintained:

  • black.kit.toybox -> com.vrchat.worlds ^3.7.4
  • com.vrchat.worlds 3.7.5 -> com.vrchat.base 3.7.5
  • net.ureishi.qvpen -> com.vrchat.worlds ^3.5.0

Let's verify there are no circular dependencies:

✅ Verification successful

Dependencies are properly configured with no circular references

The dependency graph forms a clean tree structure with com.vrchat.worlds as a shared dependency, and all version constraints are satisfied by the locked versions.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for circular dependencies in the manifest
jq -r '.locked | to_entries | .[] | select(.value.dependencies != null) | .key as $parent | .value.dependencies | to_entries[] | [$parent, .key] | @tsv' Packages/vpm-manifest.json | tsort --check

Length of output: 293


Script:

#!/bin/bash
# Extract and analyze dependencies using jq
jq -r '
  def find_deps($pkg; $seen):
    if $pkg == null or ($seen | contains([$pkg])) then
      "Circular dependency detected: \($seen | join(" -> ")) -> \($pkg)"
    else
      .locked[$pkg].dependencies // {} | to_entries[] | .key as $dep |
      find_deps($dep; ($seen + [$pkg]))
    end;
  .locked | keys[] as $pkg | find_deps($pkg; [])
' Packages/vpm-manifest.json

Length of output: 374

@kurone-kito kurone-kito merged commit ab819fd into main Jan 8, 2025
1 check passed
@kurone-kito kurone-kito deleted the add-the-new-features branch January 8, 2025 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant