Skip to content

Conversation

@scillidan
Copy link
Contributor

@scillidan scillidan commented Dec 21, 2025

architecture

I didn't find a description of the architecture in the Source repository, but Detect It Easy showed that it was 32-bit.

image

checkver

It failed pass checkver.ps1 and has now been fixed:

Extras λ pwsh .\bin\checkver.ps1 nomeiryoui
ConvertFrom-Json: C:\Users\User\Scoop\apps\scoop\current\lib\json.ps1:130
Line |
 130 |      $result = $json | ConvertFrom-Json -ea stop
     |                        ~~~~~~~~~~~~~~~~~~~~~~~~~
     | Conversion from JSON failed with error: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
nomeiryoui: couldn't find '$.tag_name' in https://github.com/Tatsu-syo/noMeiryoUI/releases/latest
Extras λ pwsh .\bin\checkver.ps1 nomeiryoui
nomeiryoui: 3.4.0
  • 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

Refactor

  • Restructured installer configuration to use a unified single-URL and hash model, consolidating from the previous multi-system approach
  • Streamlined installation and automatic update mechanisms
  • Improved configuration maintainability and reduced complexity

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Dec 21, 2025

Walkthrough

A single app installer manifest file is refactored from a multi-architecture layout to a simplified single-URL model, with architecture-specific configuration removed and checkver/autoupdate schemas updated to use GitHub releases API.

Changes

Cohort / File(s) Summary
Manifest refactoring
bucket/nomeiryoui.json
Removed architecture, pre_install, and persist fields. Added root-level url and hash. Introduced shortcuts array. Migrated checkver to GitHub releases API with url, jsonpath, and regex. Simplified autoupdate to single URL.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

  • Verify manifest structure is valid JSON and compatible with installer schema
  • Confirm new url and hash values are correct and accessible
  • Validate checkver API endpoint and jsonpath/regex patterns extract correct version
  • Ensure autoupdate URL template correctly constructs release URLs
  • Review shortcuts configuration for proper executable paths and names

Possibly related PRs

Suggested labels

review-needed

Suggested reviewers

  • z-Fng

Poem

🐰 Hoppy refactor day!
Multi-arch hops condensed to one,
Simpler paths for apps to run,
GitHub releases light the way,
One clean bucket, hooray! ✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the package and version being modified, and specifies the two main fixes: architecture configuration and checkver schema update.
Description check ✅ Passed The description explains the architecture change with evidence and documents the checkver issue and resolution. Both required checklist items are marked complete, confirming adherence to PR conventions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

@github-actions
Copy link
Contributor

All changes look good.

Wait for review from human collaborators.

nomeiryoui

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

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)
bucket/nomeiryoui.json (1)

14-18: Consider simplifying the regex pattern.

The checkver configuration correctly uses the GitHub API and works as described in the PR. However, the regex pattern captures the version number twice (once from TAG-X.Y.Z and once from noMeiryoUIX.Y.Z), which is redundant.

🔎 Optional simplification

Since both capture groups match the same version, you could simplify to:

-        "regex": "download/TAG-([\\d.]+)/noMeiryoUI([\\d.]+)"
+        "regex": "download/TAG-([\\d.]+)/"

This captures only the version from the tag, which is sufficient.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4a9e9fc and 69622c0.

📒 Files selected for processing (1)
  • bucket/nomeiryoui.json (1 hunks)
🧰 Additional context used
🧠 Learnings (5)
📓 Common learnings
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/fvim.json:45-49
Timestamp: 2025-10-16T15:59:21.258Z
Learning: In Scoop manifests, the `autoupdate.url` and `autoupdate.architecture.<arch>.url` fields must be valid URIs according to the JSON schema (defined with `"format": "uri"`). Variables like `$matchUrlx64` that contain only path segments must be combined with a base URL (e.g., `https://github.com/.../releases/download/`) to form a complete valid URI.
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.
📚 Learning: 2025-10-19T13:58:23.389Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.

Applied to files:

  • bucket/nomeiryoui.json
📚 Learning: 2025-10-16T15:59:21.258Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/fvim.json:45-49
Timestamp: 2025-10-16T15:59:21.258Z
Learning: In Scoop manifests, the `autoupdate.url` and `autoupdate.architecture.<arch>.url` fields must be valid URIs according to the JSON schema (defined with `"format": "uri"`). Variables like `$matchUrlx64` that contain only path segments must be combined with a base URL (e.g., `https://github.com/.../releases/download/`) to form a complete valid URI.

Applied to files:

  • bucket/nomeiryoui.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.

Applied to files:

  • bucket/nomeiryoui.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.

Applied to files:

  • bucket/nomeiryoui.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: WindowsPowerShell
🔇 Additional comments (3)
bucket/nomeiryoui.json (3)

8-13: LGTM!

The shortcuts configuration correctly defines a Start Menu shortcut for the noMeiryoUI executable using the standard Scoop format.


19-21: Add hash extraction to the autoupdate block for GitHub releases.

The autoupdate URL pattern correctly matches the release structure, but hash extraction should be configured. Scoop supports automatic hash extraction from GitHub releases via its API, and can automatically retrieve SHA-256 hashes from GitHub release assets. Add the following to extract hashes:

"hash": {
    "mode": "json",
    "jsonpath": "$..assets[?(@.name == '$basename')].browser_download_url",
    "url": "https://api.github.com/repos/Tatsu-syo/noMeiryoUI/releases"
}

Or use the simpler approach if GitHub automatically provides digests for this project.

⛔ Skipped due to learnings
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/fvim.json:45-49
Timestamp: 2025-10-16T15:59:21.258Z
Learning: In Scoop manifests, the `autoupdate.url` and `autoupdate.architecture.<arch>.url` fields must be valid URIs according to the JSON schema (defined with `"format": "uri"`). Variables like `$matchUrlx64` that contain only path segments must be combined with a base URL (e.g., `https://github.com/.../releases/download/`) to form a complete valid URI.
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.

6-7: URL and hash format are correct for the v3.4.0 release.

The TAG-3.4.0 release exists and the URL pattern follows the standard GitHub release download format. The hash is properly formatted as a 64-character uppercase SHA256 value, consistent with Scoop's requirements.

Note that the autoupdate block (lines 19-21) intentionally omits hash extraction, which is consistent with other manifests where automated hash extraction from release metadata is not available. This pattern is established in similar cases within the Scoop ecosystem.

@SorYoshino
Copy link
Contributor

The original checkver appears to have been functioning without issue.

┏[ D:\Software\Scoop\Local\apps\scoop\current\bin][ master ≡]
└─> .\checkver.ps1 -App nomeiryoui -Dir 'D:\Temporary\Software\Microsoft\Windows Sandbox\Repositories\Scoop\Buckets\Extras\bucket' -f
nomeiryoui: 3.4.0 (scoop version is 3.4.0)
Forcing autoupdate!
Autoupdating nomeiryoui
DEBUG[1766304172] [$updatedProperties] = [url hash] -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:491:5
DEBUG[1766304172] $substitutions (hashtable) -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:221:5
DEBUG[1766304172] $substitutions.$matchTail
DEBUG[1766304172] $substitutions.$cleanVersion                  340
DEBUG[1766304172] $substitutions.$matchHead                     3.4.0
DEBUG[1766304172] $substitutions.$dotVersion                    3.4.0
DEBUG[1766304172] $substitutions.$url                           https://github.com/Tatsu-syo/noMeiryoUI/releases/download/TAG-3.4.0/noMeiryoUI3.4.0.zip
DEBUG[1766304172] $substitutions.$buildVersion
DEBUG[1766304172] $substitutions.$version                       3.4.0
DEBUG[1766304172] $substitutions.$match1                        3.4.0
DEBUG[1766304172] $substitutions.$baseurl                       https://github.com/Tatsu-syo/noMeiryoUI/releases/download/TAG-3.4.0
DEBUG[1766304172] $substitutions.$majorVersion                  3
DEBUG[1766304172] $substitutions.$minorVersion                  4
DEBUG[1766304172] $substitutions.$urlNoExt                      https://github.com/Tatsu-syo/noMeiryoUI/releases/download/TAG-3.4.0/noMeiryoUI3.4.0
DEBUG[1766304172] $substitutions.$basenameNoExt                 noMeiryoUI3.4.0
DEBUG[1766304172] $substitutions.$dashVersion                   3-4-0
DEBUG[1766304172] $substitutions.$underscoreVersion             3_4_0
DEBUG[1766304172] $substitutions.$preReleaseVersion             3.4.0
DEBUG[1766304172] $substitutions.$patchVersion                  0
DEBUG[1766304172] $substitutions.$basename                      noMeiryoUI3.4.0.zip
DEBUG[1766304172] $hashfile_url = $null -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:224:5
DEBUG[1766304173] $jsonpath = $..assets[?(@.browser_download_url == 'https://github.com/Tatsu-syo/noMeiryoUI/releases/download/TAG-3.4.0/noMeiryoUI3.4.0.zip')].digest -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:132:5
Could not find hash in https://api.github.com/repos/Tatsu-syo/noMeiryoUI/releases
Downloading noMeiryoUI3.4.0.zip to compute hashes!
Loading noMeiryoUI3.4.0.zip from cache
Computed hash: 97b7d4eb6b04c9a4a617267823fa98c75ae5559765ecb5c1192ee473d4e78ec8
DEBUG[1766304173] $substitutions (hashtable) -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:221:5
DEBUG[1766304173] $substitutions.$matchTail
DEBUG[1766304173] $substitutions.$cleanVersion                  340
DEBUG[1766304173] $substitutions.$matchHead                     3.4.0
DEBUG[1766304173] $substitutions.$dotVersion                    3.4.0
DEBUG[1766304173] $substitutions.$url                           https://github.com/Tatsu-syo/noMeiryoUI/releases/download/TAG-3.4.0/noMeiryoUI3.4.0.zip
DEBUG[1766304173] $substitutions.$buildVersion
DEBUG[1766304173] $substitutions.$version                       3.4.0
DEBUG[1766304173] $substitutions.$match1                        3.4.0
DEBUG[1766304173] $substitutions.$baseurl                       https://github.com/Tatsu-syo/noMeiryoUI/releases/download/TAG-3.4.0
DEBUG[1766304173] $substitutions.$majorVersion                  3
DEBUG[1766304173] $substitutions.$minorVersion                  4
DEBUG[1766304173] $substitutions.$urlNoExt                      https://github.com/Tatsu-syo/noMeiryoUI/releases/download/TAG-3.4.0/noMeiryoUI3.4.0
DEBUG[1766304173] $substitutions.$basenameNoExt                 noMeiryoUI3.4.0
DEBUG[1766304173] $substitutions.$dashVersion                   3-4-0
DEBUG[1766304173] $substitutions.$underscoreVersion             3_4_0
DEBUG[1766304173] $substitutions.$preReleaseVersion             3.4.0
DEBUG[1766304173] $substitutions.$patchVersion                  0
DEBUG[1766304173] $substitutions.$basename                      noMeiryoUI3.4.0.zip
DEBUG[1766304173] $hashfile_url = $null -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:224:5
DEBUG[1766304174] $jsonpath = $..assets[?(@.browser_download_url == 'https://github.com/Tatsu-syo/noMeiryoUI/releases/download/TAG-3.4.0/noMeiryoUI3.4.0.zip')].digest -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:132:5
Could not find hash in https://api.github.com/repos/Tatsu-syo/noMeiryoUI/releases
Downloading noMeiryoUI3.4.0.zip to compute hashes!
Loading noMeiryoUI3.4.0.zip from cache
Computed hash: 97b7d4eb6b04c9a4a617267823fa98c75ae5559765ecb5c1192ee473d4e78ec8
Writing updated nomeiryoui manifest

Additionally, please retain the persist-related sections, as they are useful.

┏[ D:\Software\Scoop\Local\apps\scoop\current\bin][ master ≡]
└─> $app = 'noMeiryoUI'
┏[ D:\Software\Scoop\Local\apps\scoop\current\bin][ master ≡]
└─> $persist_file = @('noMeiryoUI.ini')
┏[ D:\Software\Scoop\Local\apps\scoop\current\bin][ master ≡]
└─> $persist_file | ForEach-Object {
     $dir = Invoke-Expression ('scoop prefix {0}' -f $app)
     if (-not (Test-Path -Path $dir)) { return }
     (Get-Item -Path "$dir\$_").LinkType
 }
HardLink

Now No!! Meiryo UI creates software settings file in application folder. If users want to install in program files folder, it's unsuitable. I'm planning to move software settings file in application folder. I'm planning to close this issue when todo are done. Todo:

  • Move software settings file in application folder.
  • Make installer by major installer maker.
  • Adjust installer for package manager.

Difference of Portable version and Program files folder installable version is application settings file location only.
I include two location direction code for portable version and Program files folder installable version and make configuration and switch in build settings.

@scillidan
Copy link
Contributor Author

scillidan commented Dec 21, 2025

@SorYoshino Sorry, I tried powershell/pwsh checkver.ps1 nomeiryoui, and them had the same error on my PC.

I wasn't sure if it was my network problem. I used a VPN during testing.

I think it's better to have a third person to test it.

@z-Fng
Copy link
Member

z-Fng commented Dec 21, 2025

I wasn't sure if it was my network problem. I used a VPN during testing.

Guess you didn't configure a GitHub token? ScoopInstaller/Scoop#6559 (comment)

The behavior when no GitHub token is configured is inconsistent with when a token is set, and there's not even any related logs. This is very counterintuitive for contributors. Should we consider changing this behavior?

Try this:

scoop config --help
scoop config gh_token <your_gh_token>

BTW: Please address all the issues raised in your PRs rather than leaving many of them unresolved. For unresolved PRs, please mark them as drafts.

@scillidan
Copy link
Contributor Author

scillidan commented Dec 21, 2025

Thanks! It's ready to work.

Extras λ checkver -App nomeiryoui -Dir C:\Users\User\Usr\GitFork\Extras\bucket
nomeiryoui: 3.4.0

@scillidan
Copy link
Contributor Author

Its original checker is correct. My fault. I also found out that I accidentally deleted persist.

I will close this PR.

Its architecture can be write to this if it is only 32-bit, https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests#optional-properties:

"url": "https://github.com/Tatsu-syo/noMeiryoUI/releases/download/TAG-3.4.0/noMeiryoUI3.4.0.zip",
"hash": "97B7D4EB6B04C9A4A617267823FA98C75AE5559765ECB5C1192EE473D4E78EC8",
"autoupdate": {
	"url": "https://github.com/Tatsu-syo/noMeiryoUI/releases/download/TAG-$version/noMeiryoUI$version.zip"
}

@SorYoshino
Copy link
Contributor

Hello, @scillidan .

Your PR fixes several issues in the nomeiryoui manifest, and those fixes are valuable. Please address them instead of closing the PR outright.

@SorYoshino
Copy link
Contributor

The system fonts settings save data and -set (set with save data and exit) and -delay (minutes) to prevent some programs restores the system font settings.

Tatsu-syo/noMeiryoUI#124 (comment)

@scillidan
Copy link
Contributor Author

It's ok! I wil re-create a new PR later.

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.

3 participants