Skip to content

Feature version tag - #4079

Merged
benderl merged 14 commits into
masterfrom
feature-version-tag
Oct 19, 2026
Merged

benderl merged 14 commits into
masterfrom
feature-version-tag

Conversation

@benderl

@benderl benderl commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Seit Version 2.1.9 werden Commits für Patch-Releases per Cherry-Pick in den jeweils aktuellen Release-Branch geholt und dort mit einem Tag versehen. Mit einem nachfolgenden normalen Release (zuerst mit 2.2.0) wird ein neuer Release-Branch erstellt, da es ansonsten zu Konflikten mit den bereits vorhandenen Commits kommt. Als Ergebnis sind vorherige Patch-Releases (2.1.9-Patch.x ab 2.2.0) nicht mehr in dem Release-Branch enthalten.

Das führ dazu, dass:

  • die vorherigen Patch-Releases nicht mehr in der verfügbaren Versionsliste angezeigt werden
  • im Backup Infos zum Branch fehlen
  • ein Restore einer solchen Patch-Version nicht mehr funktioniert, nachdem ein neues Release veröffentlicht wurde

Dieser PR behebt diese Probleme, indem:

  • für Release und Beta ein "virtueller" Branch anhand aller vorhandener Tags zusammen- und dem UI zur Verfügung gestellt wird
  • für Release und Beta eine Zusatzinfo in der lokalen git Konfiguration abgelegt wird, um den "virtuellen" Branch zuordnen zu können
  • im Backup diese Zusatzinfo mit aufgenommen wird
  • beim Restore die Zusatzinfo beachtet wird und der "virtuelle" Branch wieder in der git Konfiguration hinterlegt wird

Zusätzlich wurden

  • identische oder ähnliche Codebestandteile von Update, Backup und Restore zentralisiert, um das Verhalten zu vereinheitlichen
  • die Archivprüfung direkt beim Hochladen einer Sicherungsdatei korrigiert

ToDo:

  • temporär gebaute Einstellungen nach Prüfung entfernen

Settings-UI: openWB/openwb-ui-settings#1124

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Production updates are disabled by default, and detached tag checkouts break branch tracking and subsequent updates.

4 open findings
What changed in this PR

Adds tag-based virtual Release/Beta update channels and restructures update handling.

Changes:

  • Builds Release/Beta version options from repository tags.
  • Supports tag checkout and fallback selection.
  • Adds dry-run wrappers and validation helpers.
File Description
runs/​update_self.sh Implements tag-based checkout and update flow.
runs/​update_available_versions.sh Publishes tag-derived virtual version channels.

🧠 Review effort: Balanced


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

Comment thread runs/update_available_versions.sh
Comment thread runs/update_self.sh Outdated
Comment thread runs/update_self.sh Outdated
Comment thread runs/update_self.sh Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Dry-run mode currently disables production updates, and tag fetching/filtering has correctness gaps.

1 open finding
3 resolved since last review
Previously missed (2)

In code that hasn't changed since last review

Medium severity Version filter rejects valid multi-digit major versions

runs/​update_available_versions.sh:102

[2-9]+ is not a numeric “major version >= 2” check: it rejects valid future majors containing 0 or 1, such as 10.0.0 and 20.0.0. The helper still selects those tags, so the advertised train commit can come from a tag that is missing from the corresponding tag list. Match one digit from 2–9 or any multi-digit positive major in both train filters.

Medium severity Fetch all tags to support standalone release and beta tags

runs/​update_self.sh:77

This fetch does not request all tags, yet the new Release/Beta paths select tags and explicitly support tag commits that may not be reachable from a fetched branch. Git's default auto-follow only obtains tags pointing into fetched histories, so a newly published standalone train tag can remain absent locally; fallback selection then chooses an old tag and an explicitly selected new tag fails validation. Fetch/prune tags here just as the versions script does.

🧠 Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Production updates are disabled by default, and virtual trains accept incompatible tags.

2 open findings

🧠 Review effort: Balanced

Comment thread runs/update_self.sh Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Production updates are disabled by dry-run mode, and failure paths can leave system control paused indefinitely.

2 open findings
1 resolved since last review

🧠 Review effort: Balanced

Comment thread runs/update_self.sh

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Dry-run mode disables real updates, and detached tag checkouts produce unrestorable backups.

2 open findings
1 resolved since last review

🧠 Review effort: Balanced

Comment thread runs/update_self.sh Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The production update script is permanently configured for dry-run operation.

1 open finding
1 resolved since last review

🧠 Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The production update script has dry-run enabled, making updates no-ops and leaving the update flag set.

1 open finding

🧠 Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The extensive generated frontend rebuild and backup/restore state changes require final integration validation.

0 open findings

1 resolved since last review

🧠 Review effort: Balanced

@benderl benderl added bug Something isn't working ui depends on changes in ui repository labels Oct 13, 2026
@benderl benderl added this to the 2.3.0 milestone Oct 13, 2026
@benderl benderl self-assigned this Oct 13, 2026
@benderl
benderl marked this pull request as ready for review October 13, 2026 07:29
@benderl
benderl force-pushed the feature-version-tag branch 3 times, most recently from 4500301 to 43b00f1 Compare October 19, 2026 09:27
@benderl
benderl requested a balanced review from Copilot October 19, 2026 09:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Update compatibility and restoration of backups with deleted upstream branches remain broken.

3 open issues

Review effort: Balanced

Comment thread runs/update_self.sh
Comment thread runs/prepare_restore.sh
Comment thread runs/update_self.sh
@benderl
benderl force-pushed the feature-version-tag branch from 43b00f1 to 2fe07bc Compare October 19, 2026 14:00
@benderl
benderl merged commit 544b6ab into master Oct 19, 2026
1 check passed
@benderl
benderl deleted the feature-version-tag branch October 19, 2026 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working ui depends on changes in ui repository

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants