Skip to content

Conversation

@SorYoshino
Copy link
Contributor

@SorYoshino SorYoshino commented Oct 21, 2025

Summary

Updates yesplaymusic to version 0.4.10, fixes outdated metadata, and improves autoupdate reliability.

Changes

  • Updated to version 0.4.10
  • Switched to the new GitHub release asset YesPlayMusic-Setup-0.4.10.exe
  • Updated hash to use SHA512 for improved security
  • Fixed license metadata and added license.url linking to the official MIT license
  • Enhanced pre_install script with safer parameters and broader cleanup
  • Reworked checkver to use the GitHub API with jsonpath for more reliable version detection
  • Improved autoupdate logic to extract filenames dynamically and fetch hashes from latest.yml

Note

  • The upstream provides installer files in two naming formats: YesPlayMusic-Setup-<version>.exe and YesPlayMusic.Setup.<version>.exe.
    To avoid unnecessary maintenance, this PR uses a regex pattern to dynamically capture the correct filename.

  • The app-64.7z content inside the installer used in this PR is identical to that inside the installer of the original manifest. However, the new installer supports a more secure SHA512 hash verification.

Testing

┏[ 10/21/2025 @ 7:17:27 PM CST][ Zertw ::  ASUS][ RAM: 12/15GB][ 95][ 9.29s]
┣[ D:\Software\Scoop\Local\apps\scoop\current\bin][ master ≡]
└─> .\checkver.ps1 -App yesplaymusic -Dir "D:\Temporary\Software\Microsoft\Windows Sandbox\Repositories\Scoop\Buckets\Extras\bucket" -f
yesplaymusic: 0.4.10 (scoop version is 0.4.10)                                                                                                                                       
Forcing autoupdate!                                                                                                                                                                  
Autoupdating yesplaymusic                                                                                                                                                            
DEBUG[1761045955] [$updatedProperties] = [hash url] -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:491:5                                                           
DEBUG[1761045955] $substitutions (hashtable) -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:221:5                                                                  
DEBUG[1761045955] $substitutions.$cleanVersion                  0410
DEBUG[1761045955] $substitutions.$underscoreVersion             0_4_10
DEBUG[1761045955] $substitutions.$basename                      YesPlayMusic-Setup-0.4.10.exe
DEBUG[1761045955] $substitutions.$dotVersion                    0.4.10
DEBUG[1761045955] $substitutions.$matchName                     YesPlayMusic-Setup-0.4.10.exe
DEBUG[1761045955] $substitutions.$urlNoExt                      https://github.com/qier222/YesPlayMusic/releases/download/v0.4.10/YesPlayMusic-Setup-0.4.10
DEBUG[1761045955] $substitutions.$matchTail
DEBUG[1761045955] $substitutions.$match1                        0.4.10
DEBUG[1761045955] $substitutions.$preReleaseVersion             0.4.10
DEBUG[1761045955] $substitutions.$url                           https://github.com/qier222/YesPlayMusic/releases/download/v0.4.10/YesPlayMusic-Setup-0.4.10.exe
DEBUG[1761045955] $substitutions.$patchVersion                  10
DEBUG[1761045955] $substitutions.$buildVersion
DEBUG[1761045955] $substitutions.$matchHead                     0.4.10
DEBUG[1761045955] $substitutions.$minorVersion                  4
DEBUG[1761045955] $substitutions.$baseurl                       https://github.com/qier222/YesPlayMusic/releases/download/v0.4.10
DEBUG[1761045955] $substitutions.$basenameNoExt                 YesPlayMusic-Setup-0.4.10
DEBUG[1761045955] $substitutions.$majorVersion                  0
DEBUG[1761045955] $substitutions.$dashVersion                   0-4-10
DEBUG[1761045955] $substitutions.$version                       0.4.10
DEBUG[1761045955] $hashfile_url = https://github.com/qier222/YesPlayMusic/releases/download/v0.4.10/latest.yml -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:224:5
Searching hash for YesPlayMusic-Setup-0.4.10.exe in https://github.com/qier222/YesPlayMusic/releases/download/v0.4.10/latest.yml
DEBUG[1761045956] $regex = sha512:\s+([a-zA-Z0-9+\/=]{24,88}) -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:78:9
Found: sha512:d7dfbf49275475742b861e5da04b79cc82687dcc7c6221d7a8261f54d2c878a36d9f74f9793ef923091f6f70dbb38358cfdb13cac0c08b64712f33359de6a5e4 using Extract Mode
Writing updated yesplaymusic manifest

┏[ D:\Temporary\Software\Microsoft\Windows Sandbox\Repositories\Scoop\Buckets\Extras\bucket][ yesplaymusic ≢  ~1]
└─> scoop install yesplaymusic
Installing 'yesplaymusic' (0.4.8-2) [64bit] from 'Extras' bucket
Starting download with aria2 ...
Download: Download Results:
Download: gid   |stat|avg speed  |  %|path/URI
Download: ======+====+===========+===+===================================================
Download: 41b6f5|OK  |   1.5MiB/s|100|D:/Software/Scoop/Local/cache/yesplaymusic#0.4.8-2#89da997.7z
Download: Status Legend:
Download: (OK):download completed.
Checking hash of YesPlayMusic.0.4.8.exe ... ok.
Extracting YesPlayMusic.0.4.8.exe ... done.                                                                             
Running pre_install script...done.
Linking D:\Software\Scoop\Local\apps\yesplaymusic\current => D:\Software\Scoop\Local\apps\yesplaymusic\0.4.8-2          
Creating shortcut for YesPlayMusic (YesPlayMusic.exe)
'yesplaymusic' (0.4.8-2) was installed successfully!

  • Use conventional PR title: <manifest-name[@version]|chore>: <general summary of the pull request>
  • I have read the Contributing Guide

Summary by CodeRabbit

Release Notes

  • Chores
    • Updated to version 0.4.10
    • Enhanced license information display
    • Improved installation process and version detection

@github-actions
Copy link
Contributor

All changes look good.

Wait for review from human collaborators.

yesplaymusic

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

Check the full log for details.

@coderabbitai
Copy link

coderabbitai bot commented Oct 21, 2025

Walkthrough

Single Scoop bucket manifest update for YesPlayMusic, bumping version from 0.4.8-2 to 0.4.10, updating download URLs and hashes, converting license to a structured object, modernizing pre_install PowerShell syntax, and restructuring checkver/autoupdate to use GitHub API-based release discovery.

Changes

Cohort / File(s) Change Summary
YesPlayMusic Manifest Update
bucket/yesplaymusic.json
Version bumped to 0.4.10; homepage URL updated (trailing slash removed); license converted from string to object with identifier and GitHub URL; download URL and hash (SHA-512) updated for 64-bit architecture; pre_install PowerShell commands refactored with explicit Path parameters and broadened removal pattern; checkver shifted to GitHub API with jsonpath filtering; autoupdate restructured to use named capture groups and separate hash source from release YAML.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • ScoopInstaller/Extras#16298: Similar checkver/autoupdate migration to GitHub API-based release data with regex/URL pattern adjustments for asset-based updates.
  • ScoopInstaller/Extras#16343: Identical manifest-level changes including GitHub API checkver with jsonpath, named capture groups in autoupdate, and architecture.64bit restructuring.

Suggested reviewers

  • z-Fng

Poem

🐰 A version hops up, from point-eight to ten,
Where SHA-512 replaces what came before then.
API calls dance where GitHub once stood,
PowerShell scripts now structured and good.
The manifest's dressed in new clothes, understood! 🎵

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title "yesplaymusic: Update to version 0.4.10, fix checkver & autoupdate" directly and accurately summarizes the main changes in the changeset. It correctly identifies the package name, highlights the version bump to 0.4.10 as a primary change, and specifically calls out the two major areas of modification (checkver and autoupdate configuration). The title is concise, clear, and follows the conventional format specified in the repository template. A teammate scanning the commit history would immediately understand that this PR updates YesPlayMusic to version 0.4.10 and improves its version detection and auto-update mechanisms.
Description Check ✅ Passed The pull request description comprehensively meets the template requirements and goes beyond by providing extensive context. It includes a clear summary section, a detailed list of all changes with explanations, additional notes addressing the dual naming formats upstream and SHA512 verification, and a testing section with debug output demonstrating validation. The description properly references issue #16379, and both required checklist items are completed (conventional PR title format and Contributing Guide acknowledgment). The level of detail and structure demonstrates thorough preparation for review.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 26bacb9 and 86b3b4c.

📒 Files selected for processing (1)
  • bucket/yesplaymusic.json (2 hunks)
🔇 Additional comments (5)
bucket/yesplaymusic.json (5)

26-28: Verify checkver regex and jsonpath filter against GitHub API structure.

The checkver uses a GitHub API endpoint with jsonpath filtering and named regex capture. The approach is sound, but the jsonpath $.assets[?(@.name =~ /Setup.+exe/i)] and regex download/v([\\d.-]+)/(?<name>[^\"]+)(?=\") must correctly align with actual GitHub API response structure for releases.

The following patterns need validation:

  • jsonpath: Does $.assets[?(@.name =~ /Setup.+exe/i)].browser_download_url correctly filter for Setup .exe files and extract download URLs?
  • regex: Does (?<name>[^\"]+)(?=\") correctly capture the filename (e.g., YesPlayMusic-Setup-0.4.10.exe) from a GitHub API URL like https://github.com/qier222/YesPlayMusic/releases/download/v0.4.10/YesPlayMusic-Setup-0.4.10.exe?

Please confirm these patterns work as expected by testing against the GitHub API response for this repository's latest release.


36-39: Verify autoupdate hash regex matches latest.yml format.

The autoupdate hash fetching uses a regex sha512:\\s+$base64 against $baseurl/latest.yml. This assumes the latest.yml file contains SHA512 hashes in a specific format.

Please verify:

  1. Does the latest.yml file in YesPlayMusic releases contain SHA512 hashes in the format sha512: <base64-hash>?
  2. Does the regex correctly capture the hash value without extra whitespace or quotes?

16-17: Verify pre_install cleanup pattern scope.

The cleanup pattern changed from removing $dir\$PLUGINSDIR specifically to $dir\$*, which will remove any directory/file starting with $ (e.g., $PLUGINSDIR, $INSDIR, etc.). While this is broader and may be intentional for future-proofing, it carries the risk of unintended removal if the installer creates additional $-prefixed entries.

Please confirm:

  1. Is the broader $* pattern intentional, or should cleanup remain specific to $PLUGINSDIR?
  2. Does the YesPlayMusic installer v0.4.10 create any other $-prefixed temporary directories that should persist or be preserved?

5-8: License URL points to correct resource.

The structured license object with identifier and URL is well-formed. The URL correctly points to the MIT LICENSE file in the repository's master branch.


12-12: Verify SHA512 hash for correctness.

The hash format is correct for Scoop (sha512:<128-character-hex>). The hash should be independently verified to ensure it matches the actual YesPlayMusic-Setup-0.4.10.exe binary.

Please confirm the SHA512 hash d7dfbf49275475742b861e5da04b79cc82687dcc7c6221d7a8261f54d2c878a36d9f74f9793ef923091f6f70dbb38358cfdb13cac0c08b64712f33359de6a5e4 matches the downloadable installer file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Member

@z-Fng z-Fng left a comment

Choose a reason for hiding this comment

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

Thanks!

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants