1. YoureCom
    1. Über mich
  2. Lösungen
    1. Tipprunde
    2. Aufgaben & Support
    3. Mitglieder-Netzwerk
    4. Online-Shop
    5. Alle Lösungen & Preise
  3. Für Admins
    1. Plugins
    2. ByteMon
    3. ByteMon: Community verwalten
    4. ByteMon: Portalidentität
    5. Individuelle Entwicklung
    6. WSC 6.3 Alpha
    7. GitHub
  4. Neuigkeiten
    1. Kurzmeldungen
  5. Support
  6. Mein Konto
  7. Lösungen testen
  • Anmelden
  • Registrieren
  • Warenkorb 0
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Aufgaben
  • Produkte
  • Pulse-Beiträge
  • Erweiterte Suche
  1. YoureCom – Software für Vereine, Teams & Communities
  2. Repository-Liste
  3. de.yourecom.wcf.api.mpdf

YoureCom Standard automatisch aktualisiert (verwaltete Dateien aus _dev/standard)

  • Marcel Beckers
  • +41 Hinzufügungen
  • 41 Gesamt
  • 1 Dateien
  • 21. Oktober 2026 um 00:38
  • tests/lint/check-package.php
    <pre>@@ -106,6 +106,13 @@
    }
    }
    +// Beta rule (../CLAUDE.md, Versionen): every change of the installable package raises <version> in the same commit. Installable
    +// files that differ from the commit which set the current version mean a change without its own version.
    +$versionError = unbumpedChange();
    +if ($versionError !== null) {
    + $errors[] = $versionError;
    +}
    +
    $constants = constantsSource(ROOT);
    $current = \is_file(ROOT . '/constants.php') ? (string)\file_get_contents(ROOT . '/constants.php') : null;
    if ($current === null || constantDefinitions($current) !== constantDefinitions($constants)) {
    @@ -118,3 +125,37 @@
    }
    finish($errors, \count($required) . ' required packages');
    +
    +/**
    + * Names the installable files changed since the commit that set the current <version>, or null. Outside a git repository, in
    + * a shallow clone and while the version differs from HEAD (raised in the pending change) there is nothing to say.
    + */
    +function unbumpedChange(): ?string
    +{
    + $git = static function (string ...$arguments): ?string {
    + $command = 'git -C ' . \escapeshellarg(ROOT) . ' ' . \implode(' ', \array_map('escapeshellarg', $arguments)) . ' 2>' . (\PHP_OS_FAMILY === 'Windows' ? 'NUL' : '/dev/null');
    + \exec($command, $output, $code);
    +
    + return $code === 0 ? \implode("\n", $output) : null;
    + };
    + $versionOf = static fn (?string $xml): ?string => $xml !== null && \preg_match('~<version>([^<]+)</version>~', $xml, $m) ? \trim($m[1]) : null;
    +
    + $current = $versionOf((string)@\file_get_contents(ROOT . '/package.xml'));
    + if ($current === null || $git('rev-parse', '--is-shallow-repository') !== 'false' || $current !== $versionOf($git('show', 'HEAD:package.xml'))) {
    + return null;
    + }
    + $base = $git('log', '-1', '--format=%H', '-G<version>', '--', 'package.xml');
    + if ($base === null || $base === '') {
    + return null;
    + }
    + // compared with the working tree: committed and pending changes alike; tests, docs and dev files are not installed
    + $changed = \array_filter(\explode("\n", (string)$git('diff', '--name-only', $base, '--', 'files', 'files_wcf', 'templates', 'acptemplates', 'language', ':(glob)*.xml', ':(exclude)package.xml', ':(exclude)phpunit*.xml')));
    + $untracked = \array_filter(\explode("\n", (string)$git('ls-files', '--others', '--exclude-standard', '--', 'files', 'files_wcf', 'templates', 'acptemplates', 'language')));
    + $changed = \array_values(\array_unique([...$changed, ...$untracked]));
    + if ($changed === []) {
    + return null;
    + }
    +
    + return "package.xml: version {$current} was set in " . \substr($base, 0, 7) . ', since then ' . \count($changed) . ' installable file(s) changed ('
    + . \implode(', ', \array_slice($changed, 0, 3)) . (\count($changed) > 3 ? ', ...' : '') . '): raise <version> (next Beta) and <date> with the change';
    +}

Bereit, deine Community smarter zu machen?

Ob fertiges Produkt oder individuelle Softwarelösung – überzeuge dich selbst.

Jetzt kaufen Demo testen

Direkter Support vom Entwickler

Zuletzt erledigte Aufgaben

  1. Overlay beim Verschieben eines Themas Clan Verwaltung Clan Verwaltung: Foren

    Marcel Beckers Erledigt am 23. Oktober 2026 um 22:10
  2. Feature-Wunsch: Einführung von Tippgemeinschaften / Team-Wertung (Team-Tippen) Wettbewerbe Basissystem Wettbewerbe: Tippspiel

    villain Erledigt am 22. Oktober 2026 um 08:15
  3. Verschiebung zwischen Clanforen/WSB Clan Verwaltung Clan Verwaltung: Foren

    Marcel Beckers Erledigt am 22. Oktober 2026 um 00:12
  4. Massenbearbeitung von Clans Clan Verwaltung

    Marcel Beckers Erledigt am 22. Oktober 2026 um 00:10
  5. Synchronisation zwischen Clan und Benutzergruppe erweitern Clan Verwaltung

    Marcel Beckers Erledigt am 21. Oktober 2026 um 23:59
  6. Überarbeitung der eigenen Events Clan Verwaltung

    Marcel Beckers Erledigt am 21. Oktober 2026 um 23:40
Arbeitsplatz
YoureCom – Software für Vereine, Teams & Communities

YoureCom – Software für Vereine, Teams & Communities. Seit 2004.

Fertig eingerichtete Lösungen für Verein, Team und Community, dazu Erweiterungen für die WoltLab Suite. Aus Wuppertal, für Kunden weltweit.

Lösungen

  • Tipprunde
  • Aufgaben & Support
  • Mitglieder-Netzwerk
  • Online-Shop
  • Alle Lösungen & Preise

Für Administratoren

  • Plugins
  • Clan Verwaltung
  • Wettbewerbe
  • MultiHunter
  • ByteMon
  • Individuelle Entwicklung

YoureCom

  • Über mich
  • Shop
  • Kontakt
  • Neuigkeiten
  • GitHub

Cloud-Verträge

  • AGB Cloud
  • AVV Cloud
  • Rechtswidrige Inhalte melden
  • Datenwechsel

Rechtliches

  • Datenschutzerklärung
  • Impressum
  • AGB
  • Vertrag widerrufen
  • Abonnements kündigen
  • Widerrufsbelehrung
© 2026 YoureCom · Marcel Beckers