Skip to content

Conversation

wentywenty
Copy link

@wentywenty wentywenty commented Oct 21, 2025

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

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features
    • Train Director 3 is now available as a packaged manifest, providing simplified installation and update support with version detection, automatic update handling, release metadata, verified downloads, and a launcher/shortcut entry for easy access. This enables reliable distribution and streamlined user updates.

@coderabbitai
Copy link

coderabbitai bot commented Oct 21, 2025

Walkthrough

Adds a new JSON package manifest for Train Director 3 at bucket/traindir3.json, specifying metadata (version, description, homepage, license), download URL and SHA256, executable and shortcuts, a checkver entry (URL + regex) for version detection, and an autoupdate URL pattern.

Changes

Cohort / File(s) Change Summary
Train Director 3 Manifest
bucket/traindir3.json
Added new manifest defining package version, description, homepage, license, download URL and SHA256, executable binary name and shortcut, checkver schema (URL and regex) for version detection, and an autoupdate download URL pattern.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I found a manifest tucked in a bin,
With versions neat and a download grin,
Shortcuts set and hashes bright,
Ready to fetch by day or night,
Hopping onward — updates begin! 🚂✨

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues Check ✅ Passed The code changes fulfill the primary objectives from linked issue #16422, which requests the addition of traindir3 package version 3.9. The new manifest file at bucket/traindir3.json includes the required elements specified in the package request: the package name (traindir3), description of Train Director, homepage URL, download link for version 3.9, and supporting manifest sections for version checking and auto-updates. All core requirements from the package request are addressed by the JSON manifest addition.
Out of Scope Changes Check ✅ Passed All changes in this pull request are directly in scope with the linked issue #16422. The only modification is the addition of the bucket/traindir3.json manifest file, which directly fulfills the package request objective. No extraneous files, configurations, or unrelated changes have been introduced; the changeset is tightly focused on adding the traindir3 package manifest as requested in the linked issue.
Description Check ✅ Passed The pull request description meets the template requirements by including a reference to the linked issue ("Closes #16422"), two completed checkboxes confirming use of conventional PR title format and that the Contributing Guide has been read. While the description is concise and doesn't include verbose explanatory text, it covers all mandatory elements specified in the template, including confirmation of prerequisites and criteria being met as documented in the linked issue.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
Title Check ✅ Passed The pull request title "traindir3:Add version 39" is related to the main change in the changeset, which is adding a new JSON manifest file for traindir3. The title correctly identifies the package (traindir3) and the primary action (adding a version), allowing a teammate reviewing the history to quickly understand this PR is about adding a new version of the traindir3 package. However, there is a potential version number discrepancy: the title references "version 39" while the PR objectives and issue indicate the actual version being added is "3.9". This appears to be a formatting or typographical inconsistency rather than a fundamental misrepresentation of the changeset's purpose.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 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.

@wentywenty
Copy link
Author

#16422

@wentywenty
Copy link
Author

/verify

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

traindir3

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

Check the full log for details.

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

traindir3

  • 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: 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 f4cf573 and 3cd905d.

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

6-7: Verify download URL and hash validity.

Ensure the download URL is still active and the SHA256 hash matches the actual downloaded file. This should ideally be tested before merging.


15-21: $cleanVersion is valid; regex matching requires manual verification.

Based on Scoop documentation, $cleanVersion is a documented version variable available for autoupdate URL patterns. Your autoupdate URL structure is correct.

However, the regex pattern "Train Director Version ([\\d.]+)" cannot be verified without accessing the actual webpage at https://www.backerstreet.com/traindir/en/download.php. You should manually check that this regex correctly captures version strings from that page before merging.

@wentywenty
Copy link
Author

/verify

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

traindir3

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

Check the full log for details.

@wentywenty
Copy link
Author

/verify

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

traindir3

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

Check the full log for details.

@wentywenty
Copy link
Author

/verify

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

traindir3

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

Check the full log for details.

@wentywenty
Copy link
Author

/verify

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

traindir3

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

Check the full log for details.

@wentywenty
Copy link
Author

ToT

@wentywenty
Copy link
Author

ToT

@wentywenty
Copy link
Author

/verify

@github-actions
Copy link
Contributor

All changes look good.

Wait for review from human collaborators.

traindir3

  • Lint
  • Description
  • License
  • Hashes

Check the full log for details.

@wentywenty
Copy link
Author

ToT

@wentywenty
Copy link
Author

/verify

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

traindir3

  • 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/traindir3.json (1)

15-21: Consider a more conventional checkver/autoupdate pattern.

The checkver regex (tdir[0-9]+win\.zip) captures the full filename pattern rather than extracting a semantic version number. While this works for the autoupdate URL pattern (since $version resolves to tdir39win.zip), it's unconventional for Scoop and less maintainable. A more robust approach would extract just the version number (e.g., 393.9) and construct the filename in autoupdate.

Consider refactoring to extract semantic version:

     "checkver": {
         "url": "https://www.backerstreet.com/traindir/en/trdireng.php",
-        "regex": "(tdir[0-9]+win\\.zip)"
+        "regex": "tdir([0-9])([0-9])win\\.zip",
+        "replace": "$1.$2"
     },
     "autoupdate": {
-        "url": "https://www.backerstreet.com/traindir/$version"
+        "url": "https://www.backerstreet.com/traindir/tdir${version/\./}win.zip"
     }

This extracts the core version numbers and reconstructs the filename explicitly, making the version detection more maintainable and aligned with typical Scoop patterns.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cfb0258 and 91ab85b.

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

7-7: Verify the SHA256 hash matches the actual download.

Confirm that the hash 87384ce99ed3bf5b34dc9d3fcdbbcb2cc2bcec73298bd61ac087ecce22d1f365 is valid and corresponds to the file at https://www.backerstreet.com/traindir/tdir39win.zip.


5-5: License field is correct for Train Director 3.

Train Director 3 is GPL/freeware distributed by BackerStreet, confirming that "GPL-2.0-only" is the appropriate license value. The previous concern about the license value changing is resolved—this is the correct license for this project. The leading whitespace issue previously flagged is also already fixed.

However, two secondary concerns from the original review remain:

  1. The checkver regex (tdir[0-9]+win\.zip) captures the full filename pattern instead of extracting a semantic version number (e.g., "3.9"). This is non-standard for Scoop manifests but functionally works.

  2. The SHA256 hash should be verified against the actual download from BackerStreet to ensure integrity.

@wentywenty wentywenty changed the title traindir3:Add version 3.9 traindir3:Add version 39 Oct 22, 2025
@wentywenty
Copy link
Author

/verify

@github-actions
Copy link
Contributor

All changes look good.

Wait for review from human collaborators.

traindir3

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

Check the full log for details.

@wentywenty
Copy link
Author

ok i fix it

@wentywenty
Copy link
Author

i`m ready

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.

[Request]: Train Director

2 participants