Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

fix(extensions): a failed upgrade deletes the working extension; local and marketplace installs differ

Offen
#1,562 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
dart, flutter
Bereich
desktop, devtools

Rechercherichtung

Start with lib/core/extensions/local_extension_installer.dart around lines 125–172 and compare its archive extraction and rollback with HttpMarketplaceRepository.install. Trace validateDriverPackage, ensureDriverExecutables, and common-root stripping to identify how both install paths handle files. Done means both use one path that stages and validates the new extension, swaps it in safely, restores the old version on failure, and removes files absent from the new version.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug marketplace P2 stability

Problem

LocalExtensionInstaller.installFromArchive deletes the existing extensions/<id>/ before extracting (lib/core/extensions/local_extension_installer.dart:125-128). If validateDriverPackage / ensureDriverExecutables / extraction then fails, the rollback deletes the new folder too (:163-172), so a failed upgrade destroys the working extension.

The marketplace path (HttpMarketplaceRepository.install) goes the other way: it never cleans the old folder, so files removed in the new version stay on disk and versions get mixed. The two paths also differ in common-root stripping.

Expected

  • Extract into a temp sibling directory, validate there, then swap (rename old to backup, rename new, delete backup; restore backup on failure).
  • Use the same code path for local and marketplace installs.
Vorherrschende Sprache
Dart
Sterne
23
Forks
1
Ø Merge
31 Min.
Gemergte PRs (30 T.)
570

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus QueryaHub/Querya-Desktop

Alle Issues in QueryaHub/Querya-Desktop

Ähnliche Issues

Weitere Issues zu Dart

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.