Skip to content

build: update bundled Syncthing to v2.1.3 - #273

Open
livvaa wants to merge 1 commit into
GermanCoding:mainfrom
livvaa:contrib/syncthing-2.1.3
Open

build: update bundled Syncthing to v2.1.3#273
livvaa wants to merge 1 commit into
GermanCoding:mainfrom
livvaa:contrib/syncthing-2.1.3

Conversation

@livvaa

@livvaa livvaa commented Aug 24, 2026

Copy link
Copy Markdown

Summary

  • Updates the bundled Syncthing download version from v2.0.3 to v2.1.3.
  • Replaces an already-downloaded build when its version does not match the requested version.
  • Preserves nested files while moving extracted Syncthing contents into the download directory.

Testing

  • dotnet test src -c Release --no-restore
  • 58 tests passed.

Copilot AI lite review requested due to automatic review settings August 24, 2026 04:28

Copilot AI 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.

🟡 Changes recommended

The new version-detection logic relies on brittle token-splitting and should be made robust to avoid incorrect version parsing and unnecessary re-downloads.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR updates the build tooling to bundle Syncthing v2.1.3 and improves the Windows download/extract script to better handle existing downloads and extraction layout.

Changes:

  • Bumps the configured Syncthing download version from v2.0.3 to v2.1.3.
  • Updates the download script to detect an already-downloaded Syncthing binary and replace it when the version differs.
  • Changes extraction handling to copy/merge extracted contents into the target directory (instead of moving), preserving existing nested files.
File summaries
File Description
Taskfile.yml Updates the pinned bundled Syncthing version to v2.1.3 for build tasks.
scripts/download-syncthing.ps1 Adds version-aware “already downloaded” handling and switches extracted-content promotion from move to copy/merge.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +9 to +10
$versionOutput = & "$outdir/syncthing.exe" version 2>$null | Select-Object -First 1
$currentVersion = ($versionOutput -split '\s+')[1]
Comment on lines 45 to +48
# Optionally move binaries up from the nested folder
$extractedRoot = Join-Path $outdir "syncthing-windows-$arch-$Version"
if (Test-Path $extractedRoot) {
Move-Item -Path (Join-Path $extractedRoot '*') -Destination $outdir -Force
Copy-Item -Path (Join-Path $extractedRoot '*') -Destination $outdir -Recurse -Force
@GermanCoding

Copy link
Copy Markdown
Owner

I'm not sure what the point of this change is. The CI already updates the download binary so this isn't needed for anything. Sure we can refresh this from time to time but this doesn't affect anything in practice. I'm also against introducing additional moving parts for the downloader (with the version parsing and everything). This is just meant as a quick script to grab any bootstrap syncthing version for CI, which will always start from a clean state. The skip-if-exists logic exists so you're not trashing the server when testing locally - we don't need version-parsing there either.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants