Skip to content

diagram-designer@1.30.0: Update checkver, fix extraction#16659

Merged
z-Fng merged 3 commits into
ScoopInstaller:masterfrom
SorYoshino:diagram-designer
Nov 27, 2025
Merged

diagram-designer@1.30.0: Update checkver, fix extraction#16659
z-Fng merged 3 commits into
ScoopInstaller:masterfrom
SorYoshino:diagram-designer

Conversation

@SorYoshino

@SorYoshino SorYoshino commented Nov 26, 2025

Copy link
Copy Markdown
Contributor

Summary

Improves the diagram-designer manifest by correcting its license information, adding missing metadata, and updating the version detection logic to rely on FossHub’s structured metadata.

Related issues or pull requests

Changes

  • Replace generic Freeware license declaration:
    • Update to MIT
    • Add explicit license.url field
  • Add missing extract_dir (APPDIR) to ensure proper MSI extraction results
  • Update checkver to use FossHub’s softwareVersion metadata

Notes

  • The newly added HTML metadata field (softwareVersion) has been tested and proven to remain stable across multiple software pages, as it does not rely on filenames.
  • Add the extract_dir field to resolve the following issue:
Creating shortcut for Diagram Designer (DiagramDesigner.exe) failed: Couldn't find D:\Software\Scoop\Local\apps\diagram-designer\current\DiagramDesigner.exe

Testing

┏[ D:\Software\Scoop\Local\apps\scoop\current\bin][ master ≡]
└─> .\checkver.ps1 -App diagram-designer -Dir 'D:\Temporary\Software\Microsoft\Windows Sandbox\Repositories\Scoop\Buckets\Extras\bucket' -f
diagram-designer: 1.30.0 (scoop version is 1.30.0)
Forcing autoupdate!
Autoupdating diagram-designer
DEBUG[1764180551] [$updatedProperties] = [url hash] -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:491:5
DEBUG[1764180551] $substitutions (hashtable) -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:221:5
DEBUG[1764180551] $substitutions.$baseurl                       https://www.fosshub.com/Diagram-Designer.html
DEBUG[1764180551] $substitutions.$urlNoExt                      https://www.fosshub.com/Diagram-Designer.html/DiagramDesignerSetup.1.30.0
DEBUG[1764180551] $substitutions.$url                           https://www.fosshub.com/Diagram-Designer.html/DiagramDesignerSetup.1.30.0.msi
DEBUG[1764180551] $substitutions.$basename                      DiagramDesignerSetup.1.30.0.msi
DEBUG[1764180551] $substitutions.$patchVersion                  0
DEBUG[1764180551] $substitutions.$cleanVersion                  1300
DEBUG[1764180551] $substitutions.$matchTail
DEBUG[1764180551] $substitutions.$underscoreVersion             1_30_0
DEBUG[1764180551] $substitutions.$matchHead                     1.30.0
DEBUG[1764180551] $substitutions.$preReleaseVersion             1.30.0
DEBUG[1764180551] $substitutions.$minorVersion                  30
DEBUG[1764180551] $substitutions.$match1                        1.30.0
DEBUG[1764180551] $substitutions.$majorVersion                  1
DEBUG[1764180551] $substitutions.$dashVersion                   1-30-0
DEBUG[1764180551] $substitutions.$buildVersion
DEBUG[1764180551] $substitutions.$dotVersion                    1.30.0
DEBUG[1764180551] $substitutions.$basenameNoExt                 DiagramDesignerSetup.1.30.0
DEBUG[1764180551] $substitutions.$version                       1.30.0
DEBUG[1764180551] $hashfile_url = $null -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:224:5
DEBUG[1764180551] $regex = DiagramDesignerSetup.1.30.0.msi.*?"sha256":"([a-fA-F0-9]{64})" -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:78:9
Found: 0df1070ecc634204d93f4a85394f1f9680d9cd1a6d184e123dc980e59ede3d6f using Fosshub Mode
Writing updated diagram-designer manifest

┏[ D:\Software\Scoop\Local\apps\scoop\current\bin][ master ≡]
└─> scoop install Unofficial/diagram-designer
Installing 'diagram-designer' (1.30.0) [64bit] from 'Unofficial' bucket
Loading DiagramDesignerSetup.1.30.0.msi from cache.
Checking hash of DiagramDesignerSetup.1.30.0.msi ... ok.
Extracting DiagramDesignerSetup.1.30.0.msi ... done.
Linking D:\Software\Scoop\Local\apps\diagram-designer\current => D:\Software\Scoop\Local\apps\diagram-designer\1.30.0
Creating shortcut for Diagram Designer (DiagramDesigner.exe)
'diagram-designer' (1.30.0) was installed successfully!
Notes
-----
Template palettes can be downloaded from 'https://github.com/meesoft/DiagramDesigner/tree/master/TemplatePalettes'
  • Use conventional PR title: <manifest-name[@version]|chore>: <general summary of the pull request>
  • I have read the Contributing Guide

Summary by CodeRabbit

  • Updates
    • Product description punctuation clarified for consistency.
    • License information now documented as MIT with an official source link.
    • Installation flow enhanced with a conditional step to better handle packaged files during install.
    • Version-check updated to use a specific upstream page and improved pattern matching for more reliable update detection.

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

@github-actions

Copy link
Copy Markdown
Contributor

All changes look good.

Wait for review from human collaborators.

diagram-designer

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

Check the full log for details.

@z-Fng

z-Fng commented Nov 27, 2025

Copy link
Copy Markdown
Member

Add missing extract_dir (APPDIR) to ensure proper MSI extraction results

For some reason, the folder structure extracted using msiexec is different from the one extracted using lessmsi.

Extracting DiagramDesignerSetup.1.30.0.msi ... Could not find 'APPDIR'! (error 16)
At D:\Scoop\apps\scoop\current\lib\core.ps1:824 char:9
+         throw "Could not find '$(fname $from)'! (error $($proc.ExitCo ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Could not find 'APPDIR'! (error 16):String) [], RuntimeException
    + FullyQualifiedErrorId : Could not find 'APPDIR'! (error 16)

@z-Fng

z-Fng commented Nov 27, 2025

Copy link
Copy Markdown
Member

"if (get_config USE_LESSMSI $false) {",
" Move-Item \"$dir\\APPDIR\\*\" \"$dir\\\"",
" Remove-Item \"$dir\\APPDIR\"",
"}",

@SorYoshino

Copy link
Copy Markdown
Contributor Author

Thank you for reviewing it. I will try to resolve the issue when I have time.

@coderabbitai

coderabbitai Bot commented Nov 27, 2025

Copy link
Copy Markdown

Walkthrough

Updated Scoop manifest for Diagram Designer: description punctuation fixed, license changed from a string to an object (identifier + URL), checkver changed from a regex string to an object (url + regex), and a PowerShell pre_install block was added to conditionally move and remove an APPDIR folder.

Changes

Cohort / File(s) Change Summary
Manifest schema & script
bucket/diagram-designer.json
description punctuation corrected. license converted from "Freeware" to an object (identifier: "MIT", url). checkver converted from a regex string to an object with url and regex. Added pre_install block with PowerShell commands to conditionally move APPDIR contents and remove the directory.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify PowerShell pre_install condition and path handling (escaping, Windows semantics).
  • Confirm the checkver.url and checkver.regex correctly extract the upstream version.
  • Ensure license object format matches manifest schema expectations.

Possibly related PRs

Poem

🐰
A little manifest hop, tidy and bright,
License now boxed, version in sight.
Pre-install paws tidy the lair,
Diagram Designer dressed with care. 🥕✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main changes: updating checkver logic and fixing extraction issues in the diagram-designer manifest.
Description check ✅ Passed The description includes a clear summary, related issues, detailed changes, testing results, and confirms adherence to PR conventions as required by the template.
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

📜 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 5ce0eca and 49ea9e6.

📒 Files selected for processing (1)
  • bucket/diagram-designer.json (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
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: 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: 16328
File: bucket/winutil.json:0-0
Timestamp: 2025-10-13T09:37:06.093Z
Learning: When reviewing code in Scoop manifests, always verify the actual file content if the diff appears incomplete or unusual, as diff context can be truncated or displayed incorrectly. The pattern `[string[]](...).ForEach{...}` is commonly used in post_uninstall scripts across the Extras repository.
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.
📚 Learning: 2025-10-16T13:42:43.224Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/debugviewpp.json:14-21
Timestamp: 2025-10-16T13:42:43.224Z
Learning: In the DebugViewPP project (CobaltFusion/DebugViewPP), the executable name changed from "DebugView++.exe" (in v1.8.0.103 and earlier) to "Debugviewpp.exe" (in v1.9.0.28 and later). The manifest bucket/debugviewpp.json correctly uses "Debugviewpp.exe" for current versions.

Applied to files:

  • bucket/diagram-designer.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 (4)
bucket/diagram-designer.json (4)

3-3: ✓ Description formatting improved.

Added trailing period for consistency with standard documentation conventions.


5-8: ✓ License object correctly updated to MIT with proper repository reference.

The license has been properly converted from a generic "Freeware" string to a structured object with:

  • identifier: "MIT" (accurate license type)
  • url: pointing to the correct meesoft/DiagramDesigner repository

This resolves the past review concern and follows Scoop manifest best practices for structured license metadata.


12-17: pre_install script correctly handles lessmsi extraction differences.

The PowerShell script properly addresses the MSI extraction issue mentioned in the PR objectives:

  • Conditional logic: Only executes when USE_LESSMSI is explicitly configured ($false by default)
  • Flattening logic: Moves all contents from APPDIR directory to parent, then removes the now-empty directory
  • Rationale: Different MSI extraction tools (lessmsi vs msiexec) produce different folder hierarchies; this normalizes the structure

The script correctly handles the extraction error that prevented shortcut creation. The conditional ensures zero impact on default installations using msiexec.


24-27: checkver modernized from filename parsing to structured HTML field.

The update improves version detection robustness by:

  • Replacing filename-based regex parsing with FossHub's structured "softwareVersion" metadata field
  • PR testing confirms successful discovery of v1.30.0 and proper hash detection via FossHub mode

This is a stability improvement, as the softwareVersion field is documented as stable across multiple pages, making the manifest less fragile to layout changes.


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.

@z-Fng

z-Fng commented Nov 27, 2025

Copy link
Copy Markdown
Member

"if (get_config USE_LESSMSI $false) {",
" Move-Item \"$dir\\APPDIR\\*\" \"$dir\\\"",
" Remove-Item \"$dir\\APPDIR\"",
"}",

Simply adding this script fixes the issue.

@z-Fng z-Fng changed the title diagram-designer@1.30.0: Update checkver, add extract_dir diagram-designer@1.30.0: Update checkver, fix extraction Nov 27, 2025

@z-Fng z-Fng left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks!

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9fc700d and 5ce0eca.

📒 Files selected for processing (1)
  • bucket/diagram-designer.json (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 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: 16328
File: bucket/winutil.json:0-0
Timestamp: 2025-10-13T09:37:06.093Z
Learning: When reviewing code in Scoop manifests, always verify the actual file content if the diff appears incomplete or unusual, as diff context can be truncated or displayed incorrectly. The pattern `[string[]](...).ForEach{...}` is commonly used in post_uninstall scripts across the Extras repository.
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/debugtron.json:18-25
Timestamp: 2025-10-16T13:55:04.356Z
Learning: In Scoop manifests, the `checkver.github` field must be a full URI (e.g., `https://github.com/owner/repo`), not just `owner/repo`. The schema defines it with `"format": "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.
📚 Learning: 2025-10-16T13:42:43.224Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/debugviewpp.json:14-21
Timestamp: 2025-10-16T13:42:43.224Z
Learning: In the DebugViewPP project (CobaltFusion/DebugViewPP), the executable name changed from "DebugView++.exe" (in v1.8.0.103 and earlier) to "Debugviewpp.exe" (in v1.9.0.28 and later). The manifest bucket/debugviewpp.json correctly uses "Debugviewpp.exe" for current versions.

Applied to files:

  • bucket/diagram-designer.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/diagram-designer.json (3)

3-3: Description formatting improved.


12-17: Verify pre_install approach vs. extract_dir pattern mentioned in PR.

The PR description mentions "Adds missing extract_dir" and references protonmail-bridge.json as an example, but this implementation uses a pre_install script instead. While the conditional approach handles both msiexec and lessmsi extraction variants (which is pragmatic), please confirm this method aligns with the intended solution and is the recommended pattern for this use case.

Additionally, verify that the PowerShell string escaping in line 14 is syntactically correct. The trailing backslash and quote (\") in the path argument appears unusual and may need validation.


24-27: checkver restructuring looks good.

The shift from filename-based version detection to FossHub's structured HTML metadata field is more robust. Testing confirmed successful version detection and the regex pattern for extracting the softwareVersion field appears sound.

Please confirm the regex "softwareVersion\">([\\d.]+)< successfully matches the FossHub HTML and consistently extracts version numbers across updates (as noted in the PR, the field should be stable).

Comment thread bucket/diagram-designer.json
@z-Fng z-Fng merged commit fd97ebc into ScoopInstaller:master Nov 27, 2025
3 checks passed
@SorYoshino SorYoshino deleted the diagram-designer branch November 29, 2025 15:20
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