Repository navigation
OpenGewerk 0.4.0
Die vierte Fassung bringt die harmonisierte Mitteilung zur gesetzlichen Gewährleistung, die seit dem 27.09.2026 zu jedem Angebot an einen Verbraucher über eine Lieferung von Waren gehört. Dazu rechnet der Verzugszins taggenau nach der Länge des Kalenderjahres, die Regelpakete nennen ihre Fundstellen genauer, und die Abbilder erscheinen zusätzlich auf Docker Hub.
Wer 0.3.0 betreibt, aktualisiert mit dem Paket dieser Fassung; Migration 0048 läuft dabei von selbst. Wie bei den Fassungen davor fehlen vor dem produktiven Einsatz die fachliche Abnahme der Regelpakete und der Grenzwerte des Prüfprotokolls (#31) und der Praxistest der E-Rechnung (#133).
Hinzugefügt
- Die Abbilder jeder Fassung erscheinen zusätzlich auf Docker Hub, als
opengewerk/opengewerkundopengewerk/backup(#281), damit OpenGewerk dort gefunden wird, wo viele zuerst nach Software suchen. Docker Hub ist ein Spiegel von ghcr.io und kein zweiter Bau: Der neue Workflow "Docker Hub" kopiert Abbilder und Signaturen mitcrane, prüft danach mitcosign verifygegen dieselbe Identität des Release-Workflows und pflegt die Seiten dort aus.github/dockerhub/. Der Workflow "Release" ruft ihn nach jeder Fassung auf, von Hand holt er eine ältere nach; ohne die SecretsDOCKERHUB_USERNAMEundDOCKERHUB_TOKENtut er nichts.cosign copytaugt dafür nicht, es schreibt in cosign 3.1.3 das Abbild unter den Signatur-Tag statt des Signatur-Index. Nur auf Docker Hub zeigtlatestauf die neueste Fassung; das Paket holt weiter aus ghcr.io, weil Docker Hub anonyme Pulls begrenzt. - Die harmonisierte Mitteilung zur gesetzlichen Gewährleistung nach Anhang I der Durchführungsverordnung (EU) 2025/1960 geht mit jedem Angebot an einen Verbraucher über eine Lieferung von Waren hinaus (#431), Pflicht seit dem 27.09.2026 nach Art. 246 Abs. 1 Nr. 5 und Art. 246a § 1 Abs. 1 Satz 1 Nr. 11 EGBGB. Sie ist eine mitgelieferte Belehrung, aber keine Worte, sondern die Seite der Kommission: unverändert und als letzte Seite im PDF, ohne Briefkopf und Fußzeile, weil die Verordnung keine Änderung und keinen Zusatz erlaubt und mindestens A4 verlangt. Die Vorlage lässt dafür eine leere letzte Seite, die nach dem Rendern mit pdf-lib gegen die amtliche getauscht wird; so zählt die Fußzeile der übrigen Seiten sie mit. Die Datei liegt mit Quelle, Nutzungsbedingungen und Prüfsumme unter
packages/server/assets/legal, und der Server druckt sie nur, wenn die Prüfsumme stimmt. Pflicht ist sie, wenn am Beleg "Lieferung von Waren mit Montage" gewählt ist und das Angebot ab dem 27.09.2026 datiert; einem Kostenvoranschlag wird sie nicht vorgeschlagen. Ihren Wortlaut ändert niemand, auch nicht über die API, und unter "Einstellungen", "Belehrungen" zeigt die Karte die Seite als Bild. Eingefroren wird sie mit ihrem Namen in Fassung 12 vonDocumentContent, Migration 0048 ergänzt den Schlüsselguarantee_notice.
Geändert
- Der Verzugszins zählt jeden Tag gegen die Länge seines Kalenderjahres, 366 Tage im Schaltjahr und sonst 365 (act/act), statt jedes Jahr mit 365 Tagen (#31). Entschieden von Moritz am 26.09.2026 nach einer Gegenprüfung der Rechtsquellen: so rechnen die üblichen Verfahren für Zinsen nach § 288 BGB, und ein volles Kalenderjahr trägt damit genau den Jahreszins. Mit 365 Tagen kam ein Schaltjahr auf einen Tageszins mehr, beim heutigen Satz 2,88 Euro auf 10.000 Euro. Ein Zeitraum über den Jahreswechsel wird dort geteilt, jeder Teil gegen sein Jahr.
daysInYearist dafür eine Funktion des Jahres geworden. Gebraucht wird der Zins erst mit dem Mahnwesen in Phase 3 (#328), bis dahin rechnet damit nur die Prüfung der Regeln. - Fundstellen nach derselben Gegenprüfung, ohne einen Wert zu ändern (#31). Die Notiz am Grenzwert der Schleifenimpedanz nennt den informativen Anhang D der DIN VDE 0100-600:2017-06 mit seinen zwei Dritteln, als Beleg aus zweiter Hand, und dass offen ist, nach welchem Wert das Prüfprotokoll urteilt. Das Paket
invoiceund der Satz für § 19 UStG nennen Abschnitt 14.7a UStAE aus dem BMF-Schreiben vom 18.03.2025, das auch eine umgangssprachliche Angabe genügen lässt. Das Paketworking-timenennt den Referentenentwurf zum Arbeitszeitgesetz, der die Aufzeichnung am Tag der Arbeit verlangen würde; beschlossen ist er nicht. Kein eingetragener Wert weicht von seiner Fundstelle ab. - Die Feature-Gliederung (v2.22) nimmt die vorvertraglichen Informationen an Verbraucher nach Art. 246 Abs. 1 und Art. 246a § 1 Abs. 1 EGBGB in Phase 1 auf (#431). Seit dem 27.09.2026 verlangen sie für Waren die harmonisierte Mitteilung zur Gewährleistung nach der Durchführungsverordnung (EU) 2025/1960; gebaut mit #431, siehe unter "Hinzugefügt".
- Die Feature-Gliederung (v2.23) legt fest, wie die Mitteilung zur Gewährleistung gedruckt wird, als letzte Seite im PDF und nur bei "Lieferung von Waren mit Montage", und ordnet die Kennzeichnung einer Haltbarkeitsgarantie des Herstellers nach Anhang II der Phase 2 zu (#433), weil sie je Ware gilt und an den Artikelstamm gehört. Die übrigen neuen Angaben legt der Betrieb als eigene Belehrung an, wenn der Hersteller sie liefert; so entschieden von Moritz am 26.09.2026.
- Die README zur Mitteilung zur Gewährleistung unter
packages/server/assets/legalnennt die Grundlage für das Schild mit den Sternen der EU: nach der Vereinbarung zwischen EU und Europarat über die Verwendung des Emblems durch Dritte braucht es keine Erlaubnis, solange keine Verbindung zur EU vorgetäuscht wird. Eine Anfrage an die Kommission ist deshalb nicht gestellt worden, entschieden von Moritz am 27.09.2026.
Installieren und aktualisieren
Das Paket opengewerk-0.4.0.tar.gz enthält den Ordner opengewerk/docker. Zum Installieren entpacken, mit tar --no-same-owner -xzf opengewerk-0.4.0.tar.gz, und im Ordner opengewerk sh docker/start.sh aufrufen. Für ein Update das neue Paket genauso an dieselbe Stelle entpacken, die .env bleibt, und derselbe Befehl. Gebaut wird dabei nichts, geholt werden die Abbilder dieser Fassung, für x86_64 und ARM64:
ghcr.io/opengewerk/opengewerk:0.4.0(sha256:cb3db27abea0d858da05cb4bf4d06e76561776abcd227477f45f61242d50a856)ghcr.io/opengewerk/backup:0.4.0(sha256:1d4e9702acfa9156be9b27497c37297f159b771b8d731a99f33cf863936e81b5)
Dieselben Abbilder liegen mit denselben Digests und Signaturen auch auf Docker Hub, als opengewerk/opengewerk:0.4.0 und opengewerk/backup:0.4.0. Das Paket holt sie trotzdem aus ghcr.io, denn Docker Hub begrenzt anonyme Pulls.
Gebraucht werden Docker und Docker Compose ab 2.22. Beide Abbilder sind ohne Schlüssel über Sigstore signiert. Prüfen:
cosign verify ghcr.io/opengewerk/opengewerk:0.4.0 \
--certificate-identity https://github.com/opengewerk/opengewerk/.github/workflows/release.yml@refs/tags/v0.4.0 \
--certificate-oidc-issuer https://token.actions.githubusercontent.com