Skip to content

Conversation

@SorYoshino
Copy link
Contributor

@SorYoshino SorYoshino commented Oct 23, 2025

Summary

Updates tcno-acc-switcher to version 2024-08-30_01 and fixes checkver and autoupdate URLs.

Related Issue

Changes

  • Updated version to 2024-08-30_01
  • Added structured architecture block with explicit 64-bit support
  • Added safer and clearer runtime initialization notes
  • Introduced shortcut for First Run Installer
  • Updated checkver to use GitHub API for more reliable version detection
  • Improved autoupdate logic with regex-based asset matching

Notes

  • The software no longer uses the traditional v[\d.]+ versioning format.

  • Instead, it now adopts a date-based versioning scheme, and the $.name field no longer contains the conventional numeric version pattern.

2025-10-23 230756

Testing

┏[ D:\Software\Scoop\Local\apps\scoop\current\bin][ master ≡]
└─> .\checkver.ps1 -App tcno-acc-switcher -Dir "D:\Temporary\Software\Microsoft\Windows Sandbox\Repositories\Scoop\Buckets\Extras\bucket" -f
tcno-acc-switcher: 2024-08-30_01 (scoop version is 2024-08-30_01)
Forcing autoupdate!
Autoupdating tcno-acc-switcher
DEBUG[1761231233] [$updatedProperties] = [url hash] -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:491:5
DEBUG[1761231233] $substitutions (hashtable) -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:221:5
DEBUG[1761231233] $substitutions.$dashVersion                   2024-08-30-01
DEBUG[1761231233] $substitutions.$basenameNoExt                 TcNo-Acc-Switcher_2024-08-30_01
DEBUG[1761231233] $substitutions.$version                       2024-08-30_01
DEBUG[1761231233] $substitutions.$majorVersion                  2024
DEBUG[1761231233] $substitutions.$url                           https://github.com/TCNOco/TcNo-Acc-Switcher/releases/download/2024-08-30_01/TcNo-Acc-Switcher_2024-08-30_01.7z       
DEBUG[1761231233] $substitutions.$preReleaseVersion             30_01
DEBUG[1761231233] $substitutions.$matchName                     TcNo-Acc-Switcher_2024-08-30_01.7z
DEBUG[1761231233] $substitutions.$urlNoExt                      https://github.com/TCNOco/TcNo-Acc-Switcher/releases/download/2024-08-30_01/TcNo-Acc-Switcher_2024-08-30_01
DEBUG[1761231233] $substitutions.$buildVersion
DEBUG[1761231233] $substitutions.$underscoreVersion             2024_08_30_01
DEBUG[1761231233] $substitutions.$match1                        2024-08-30_01
DEBUG[1761231233] $substitutions.$patchVersion
DEBUG[1761231233] $substitutions.$minorVersion
DEBUG[1761231233] $substitutions.$dotVersion                    2024.08.30.01
DEBUG[1761231233] $substitutions.$baseurl                       https://github.com/TCNOco/TcNo-Acc-Switcher/releases/download/2024-08-30_01
DEBUG[1761231233] $substitutions.$cleanVersion                  2024083001
DEBUG[1761231233] $substitutions.$basename                      TcNo-Acc-Switcher_2024-08-30_01.7z
DEBUG[1761231233] $hashfile_url = $null -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:224:5
DEBUG[1761231234] $jsonpath = $..assets[?(@.browser_download_url == 'https://github.com/TCNOco/TcNo-Acc-Switcher/releases/download/2024-08-30_01/TcNo-Acc-Switcher_2024-08-30_01.7z')].digest -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:132:5
Could not find hash in https://api.github.com/repos/TCNOco/TcNo-Acc-Switcher/releases
Downloading TcNo-Acc-Switcher_2024-08-30_01.7z to compute hashes!
Loading TcNo-Acc-Switcher_2024-08-30_01.7z from cache
Computed hash: d0faa9bcfdbb67be1e3bddfc3a882bc7b15098057ac90023eb0001c97cfc77d8
Writing updated tcno-acc-switcher manifest

┏[ D:\Temporary\Software\Microsoft\Windows Sandbox\Repositories\Scoop\Buckets\Extras\bucket][ tcno-acc-switcher ≢  ~1]
└─>  scoop install .\tcno-acc-switcher.json
Installing 'tcno-acc-switcher' (2024-08-30_01) [64bit] from 'D:\Temporary\Software\Microsoft\Windows Sandbox\Repositories\Scoop\Buckets\Extras\bucket\tcno-acc-switcher.json'
Loading TcNo-Acc-Switcher_2024-08-30_01.7z from cache.
Checking hash of TcNo-Acc-Switcher_2024-08-30_01.7z ... ok.
Extracting TcNo-Acc-Switcher_2024-08-30_01.7z ... done.
Linking D:\Software\Scoop\Local\apps\tcno-acc-switcher\current => D:\Software\Scoop\Local\apps\tcno-acc-switcher\2024-08-30_01
Creating shortcut for TcNo Account Switcher\First Run Installer (_First_Run_Installer.exe)
Creating shortcut for TcNo Account Switcher\TcNo Account Switcher (TcNo-Acc-Switcher.exe)
'tcno-acc-switcher' (2024-08-30_01) was installed successfully!
Notes
-----
Run `First Run Installer` to ensure that all required runtimes are properly installed.
This step only needs to be performed once per computer — running it again will have no effect.

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

Summary by CodeRabbit

  • New Features

    • Added First Run Installer shortcut for simplified setup access.
    • Introduced architecture-specific build support for improved compatibility.
  • Updates

    • Version bumped with expanded multi-platform support scope.
    • Enhanced version detection and auto-update delivery mechanism for greater reliability.

@coderabbitai
Copy link

coderabbitai bot commented Oct 23, 2025

Walkthrough

The manifest for TcNo Account Switcher is updated to adopt architecture-aware deployment, GitHub API-based version checking with JSONPath queries, and expanded metadata including notes and installer shortcuts. The checkver and autoupdate mechanisms transition from simple GitHub patterns to structured API calls with regex extraction.

Changes

Cohort / File(s) Summary
Scoop manifest modernization
bucket/tcno-acc-switcher.json
Updated version (5.0-2024-08-25_00 → 2024-08-30_01) and description; replaced single URL/hash with architecture.64bit block; added notes array; expanded shortcuts to include First Run Installer entry; refactored checkver from github-based regex/replace to GitHub API with jsonpath + regex; converted autoupdate to architecture-aware URL template.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Single file with clear structural updates following standard manifest patterns. Requires verification of JSONPath expression accuracy and URL template correctness, but changes are homogeneous and self-contained.

Possibly related PRs

Suggested labels

review-needed

Suggested reviewers

  • z-Fng

Poem

🐰 A manifest reborn, now API-wise,
With architecture-aware eyes—
Checksums dance on the GitHub stage,
While shortcuts multiply page by page.
Modern, structured, ready to fly! 🚀

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title "tcno-acc-switcher: Update to version 2024-08-30_01, fix checkver & autoupdate" directly and accurately summarizes the main changes in the changeset. The title references the specific package name, the new version number (which matches the version bump confirmed in the raw summary), and explicitly mentions the two primary technical fixes (checkver and autoupdate modifications). The title is concise, clear, and specific enough that a reviewer scanning the repository history would immediately understand that this PR updates the application manifest to a newer version while fixing its version-checking and auto-updating logic.
Description Check ✅ Passed The pull request description comprehensively addresses all requirements from the template and provides substantial additional context. It includes a clear summary, properly references the related issue (#16379), provides a detailed changelog of modifications, explains the versioning scheme change, and most importantly, includes extensive testing logs demonstrating that checkver and autoupdate work correctly with the new manifest structure. Both required checkboxes are completed (conventional PR title format and confirmation of reading the Contributing Guide), and the description goes beyond the minimum by including a screenshot and detailed validation of the changes through actual Scoop operations including installation, hash computation, and shortcut creation.
✨ 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 fbf97a3 and 3b18679.

📒 Files selected for processing (1)
  • bucket/tcno-acc-switcher.json (1 hunks)
⏰ 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 (6)
bucket/tcno-acc-switcher.json (6)

2-3: Version and description updated correctly.

The manifest successfully adopts the date-based versioning scheme (2024-08-30_01) and broadens the description to reflect multi-platform support.


6-9: Runtime notes are clear and well-placed.

The notes properly document the First Run Installer initialization step and clarify the one-time-per-machine requirement, aligning well with the new shortcut entry.


16-25: Shortcuts properly structured for nested organization.

The new First Run Installer shortcut and updated path nesting create a clear organizational hierarchy in the Start Menu. Both entries follow the correct Scoop format.


31-37: Autoupdate URL template depends on checkver variable extraction.

The autoupdate URL template https://github.com/TCNOco/TcNo-Acc-Switcher/releases/download/$version/$matchName is structurally correct but relies on correct variable substitution from checkver:

  • $version must be extracted from the first regex capture group ([\\d._-]+)
  • $matchName must be extracted from the named group (?<name>...) in checkver

If checkver verification fails (see previous comment), autoupdate will also fail. Ensure both mechanisms work together during testing.

Validate that after running checkver, the autoupdate URL resolves to the correct asset by confirming both $version and $matchName substitutions are correct.


10-15: Architecture block is correctly formatted with valid hash.

The SHA256 hash d0faa9bcfdbb67be1e3bddfc3a882bc7b15098057ac90023eb0001c97cfc77d8 has been verified against the actual release asset. The file downloads correctly and matches the specified hash. The architecture block structure follows correct Scoop manifest format, and the URL is valid and accessible.


26-30: Verify JSONPath regex operator =~ support with actual Scoop environment.

The checkver implementation extracts the main .7z asset and correctly excludes CEF builds via the negative lookahead pattern. However, one concern requires verification:

The JSONPath query uses the regex operator =~, which is not explicitly documented in Scoop's autoupdate wiki. While this operator is defined in the IETF JSONPath spec, whether it works depends on the JSONPath evaluator in your environment. Scoop's documented approach supports running jsonpath and then applying regex, which is an alternative if the =~ operator proves unsupported. Before merging, confirm that $.assets[?(@.name =~ /.+\\.7z/i)].browser_download_url works against the actual GitHub API response in your Scoop installation, or refactor to use separate jsonpath and regex steps.

The named capture group syntax (?<name>...) and template variable $matchName are correct and supported by Scoop.


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.

tcno-acc-switcher

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

Check the full log for details.

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.

1 participant