Skip to content

hiddify: Simplify checkver & autoupdate, refactor persistence logic#17362

Merged
z-Fng merged 2 commits intoScoopInstaller:masterfrom
SorYoshino:hiddify
Mar 7, 2026
Merged

hiddify: Simplify checkver & autoupdate, refactor persistence logic#17362
z-Fng merged 2 commits intoScoopInstaller:masterfrom
SorYoshino:hiddify

Conversation

@SorYoshino
Copy link
Contributor

@SorYoshino SorYoshino commented Mar 6, 2026

Summary

Refines the hiddify manifest by simplifying the update logic, improving metadata accuracy, and removing redundant installation scripts.

Related issues or pull requests

Changes

  • Refine Metadata:
    • Expand description to better reflect the app's capabilities and underlying toolchain (Sing-box).
    • Update license identifier to the more specific GPL-3.0-only.
  • Simplify Installation:
    • Remove manual installer and uninstaller scripts that managed a junction in %APPDATA%.
  • Optimize Update Logic:
    • Simplify checkver to use the standard github helper instead of a manual API call with complex JSONPath.
    • Streamline autoupdate URL by using a static filename pattern instead of relying on regex capture groups.

Notes

  • The original (un)installer scripts is unnecessary and should not access anything outside $dir.
  • The original checkver logic could cause the manifest to be automatically updated to pre-release versions. For GitHub sources, the default version checking method is already sufficient.

Testing

The test results are as follows:
┏[ D:\Software\Scoop\Local\apps\scoop\current\bin][ develop ≡]
└─> .\checkver.ps1 -App 'D:\Temporary\Software\Microsoft\Windows Sandbox\Repositories\Scoop\Buckets\Extras\bucket\hiddify.json' -f
hiddify: 4.1.1 (scoop version is 4.1.1)
Forcing autoupdate!
Autoupdating hiddify
DEBUG[1772808339] [$updatedProperties] = [url hash] -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:500:5
DEBUG[1772808339] $substitutions (hashtable) -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:230:5
DEBUG[1772808339] $substitutions.$basenameNoExt                 Hiddify-Windows-Portable-x64
DEBUG[1772808339] $substitutions.$cleanVersion                  411
DEBUG[1772808339] $substitutions.$dotVersion                    4.1.1
DEBUG[1772808339] $substitutions.$buildVersion
DEBUG[1772808339] $substitutions.$basename                      Hiddify-Windows-Portable-x64.zip
DEBUG[1772808339] $substitutions.$version                       4.1.1
DEBUG[1772808339] $substitutions.$matchHead                     4.1.1
DEBUG[1772808339] $substitutions.$baseurl                       https://github.com/hiddify/hiddify-app/releases/download/v4.1.1
DEBUG[1772808339] $substitutions.$preReleaseVersion             4.1.1
DEBUG[1772808339] $substitutions.$patchVersion                  1
DEBUG[1772808339] $substitutions.$minorVersion                  1
DEBUG[1772808339] $substitutions.$urlNoExt                      https://github.com/hiddify/hiddify-app/releases/download/v4.1.1/Hiddify-Windows-Portable-x64
DEBUG[1772808339] $substitutions.$dashVersion                   4-1-1
DEBUG[1772808339] $substitutions.$underscoreVersion             4_1_1
DEBUG[1772808339] $substitutions.$majorVersion                  4
DEBUG[1772808339] $substitutions.$matchTail
DEBUG[1772808339] $substitutions.$match1                        4.1.1
DEBUG[1772808339] $substitutions.$url                           https://github.com/hiddify/hiddify-app/releases/download/v4.1.1/Hiddify-Windows-Portable-x64.zip
DEBUG[1772808339] $hashfile_url = $null -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:233:5
DEBUG[1772808341] $jsonpath = $..assets[?(@.browser_download_url == 'https://github.com/hiddify/hiddify-app/releases/download/v4.1.1/Hiddify-Windows-Portable-x64.zip')].digest -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:140:5
Found: 5099b3df2d21f1bb0c1cbf28dfa9fc6fa817e7eea77a0efe4daf93f571aae418 using Github Mode
Writing updated hiddify manifest
  • Use conventional PR title: <manifest-name[@version]|chore>: <general summary of the pull request>
  • I have read the Contributing Guide

Summary by CodeRabbit

  • Updates
    • Longer, clearer product description with protocol examples
    • Homepage URL standardized (trailing slash removed)
    • License identifier clarified to a more specific GPL variant
    • Installation/uninstallation streamlined (portable usage emphasized)
    • Version checks switched to GitHub releases; autoupdate now targets explicit Windows x64 portable ZIP
    • Added persistent portable data setting for user data retention

@coderabbitai
Copy link

coderabbitai bot commented Mar 6, 2026

Walkthrough

This PR updates the Hiddify Scoop manifest: expands the description, normalizes the homepage URL, tightens the license identifier, removes installer/uninstaller scripts, switches checkver to a GitHub reference, sets an explicit autoupdate URL, and adds a persist entry.

Changes

Cohort / File(s) Summary
Hiddify Package Manifest
bucket/hiddify.json
Description expanded with protocol examples; homepage trailing slash removed; license.identifier changed to GPL-3.0-only; installer and uninstaller blocks removed; checkver replaced by a github reference; autoupdate 64-bit URL set to explicit Windows x64 portable ZIP filename; new persist: hiddify_portable_data field added.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Poem

🐰 Hops in the manifest night,
I trimmed scripts and set URLs right,
GitHub checks now lead the way,
Data persists where it may stay,
Portable Hiddify — joy in sight!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title directly summarizes the main changes: simplifying checkver and autoupdate logic in the hiddify manifest.
Description check ✅ Passed The description is comprehensive with clear sections covering summary, related issues, detailed changes, notes, and test results, following the template's intent.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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

github-actions bot commented Mar 6, 2026

All changes look good.

Wait for review from human collaborators.

hiddify

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

Check the full log for details.

@z-Fng
Copy link
Member

z-Fng commented Mar 7, 2026

/verify

@github-actions
Copy link
Contributor

github-actions bot commented Mar 7, 2026

All changes look good.

Wait for review from human collaborators.

hiddify

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

Check the full log for details.

@z-Fng z-Fng changed the title hiddify: Simplify checkver & autoupdate hiddify: Simplify checkver & autoupdate. refactor persistence logic Mar 7, 2026
@z-Fng z-Fng changed the title hiddify: Simplify checkver & autoupdate. refactor persistence logic hiddify: Simplify checkver & autoupdate, refactor persistence logic Mar 7, 2026
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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@bucket/hiddify.json`:
- Line 23: Add a migration step to pre_install or post_install that detects
existing data in the old junction path "$env:APPDATA\\Hiddify" and moves or
copies it into the new persist directory identified by the manifest key
"persist": "hiddify_portable_data"; implement checks to skip if destination
already contains newer data and ensure file permissions/ownership are preserved,
and log actions and failures via the installer script so upgrades retain user
profiles and settings instead of losing them.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b456bf5f-9f4d-4d7d-bcce-3ec8b0bcf290

📥 Commits

Reviewing files that changed from the base of the PR and between 12ce2a6 and 3f2cdde.

📒 Files selected for processing (1)
  • bucket/hiddify.json

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 for your contribution!

@z-Fng z-Fng merged commit 3287556 into ScoopInstaller:master Mar 7, 2026
3 checks passed
@SorYoshino SorYoshino deleted the hiddify branch March 8, 2026 01:44
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