Celery: Release-Version 4.3 von Sellerie

Erstellt am 16. Nov. 2018  ·  102Kommentare  ·  Quelle: celery/celery

@thedrow @georgepsarakis Es wäre toll, wenn wir die Beta-Version von 4.3 bis zum 1. Dezember veröffentlichen könnten. vorher müssen wir py-amqp freigeben. kombu und andere Abhängigkeiten zuerst. Es ist eine sanfte Erinnerung

Wenn Sie dazu beitragen möchten, finden Sie hier eine Liste mit Blockern .

Wenn Sie Celery verwenden, um ein kommerzielles Produkt zu erstellen, ziehen Sie bitte in Betracht, unser Unterstützer oder unser Sponsor zu werden, um die Zukunft von Celery zu sichern.

Project Governance

Hilfreichster Kommentar

Freigegeben! :tada:

Vielen Dank an alle für Ihre Bemühungen, Zeit und Fähigkeiten.

Die nächste Version, Celery 5, ist etwas, auf das man sich freuen kann.

Alle 102 Kommentare

@auvipy @thedrow @georgepsarakis Können wir 4.2.2 nur für die Redis-Beschränkung schnell veröffentlichen? da es derzeit mit der neuesten Redis kollidiert, die inkompatible Änderungen enthält

Ich bin mir nicht sicher, ob ich die Zeit habe. Ich werde es versuchen.

Ich kann diesmal freigeben, brauche aber klare Anweisungen

Es wäre in der Tat gr8, eine 4.2.2 einschließlich der Redis-Abhängigkeitskorrektur zu erhalten, da ich bereits zu viel Zeit damit verbracht habe, die Ursache des Problems zu finden, und wäre gut für jede Person, die sich darauf einlässt!

Wird diese neue Version Python 3.7 unterstützen?

Jawohl

Wird diese neue Version Redis 3.0.1 unterstützen?

Jawohl

@auvipy , Kann ich bei dieser Version helfen?

Ausgabe Nr. 5212 ist für die Veröffentlichung von entscheidender Bedeutung.
Wir müssen Celery noch mit Python 3.7 testen.

@thedrow Sieht so aus, als wäre #5212 behoben, wenn wir eine Kombu-Version machen, oder?
Wenn das richtig ist, müssen wir 3.7 Tests zu unserem CI hinzufügen. Daran kann ich arbeiten.

py-amqp- und kombu-Release ist die Vorabanforderung, danach kann ich meine pr für 3.7-Unterstützung aufpolieren, um sie zusammenzuführen

@auvipy Du meinst diese PR: https://github.com/celery/celery/pull/4859 ?

Ich habe Kombu 4.2.2 nur mit diesem Fix veröffentlicht.
Der Build sollte jetzt bestehen.

Irgendeine Idee einer ETA für diese Version zu veröffentlichen?

Es gibt noch einiges zu tun. Wir müssen auch den Build für Kombu reparieren.
Ich gehe auf die verbleibenden Probleme ein.

@thedrow Irgendein Problem, das ich übernehmen kann?
Oder werden Sie die verbleibenden Probleme hier auflisten?

@xirdneh Sie können den Meilenstein https://github.com/celery/celery/milestone/20 überprüfen.

Ich denke, wir können Nichtblocker aus diesem Meilenstein entfernen. und lehne die verbleibenden Probleme ab. py-amqp und verwandte Pakete veröffentlichen, um zu überprüfen, wie sie mit Sellerie 4.3 rc1 funktionieren

Im Moment schlägt der Build für Master unter Python 3.7 fehl.
Siehe https://travis-ci.org/celery/celery/jobs/473236382.

@thedrow Ich denke, dies liegt daran, dass Python 3.7 StopIteration Ausnahmen, die in Generatoren ausgelöst wurden , in RuntimeError Ausnahmen konvertiert, siehe hier .

Mein Vorschlag wäre, einen Ausnahmebehandlungszweig hinzuzufügen, der den spezifischen Typ von RuntimeError erkennt:
https://github.com/celery/kombu/blob/e4dc1688a2bfe422813ffc79d9db50c06f38fbaf/kombu/asynchronous/hub.py#L348 -L359

except RuntimeError as e:
  if e.args != ('generator raised StopIteration',):
      raise e

Zugegeben, das Obige könnte als etwas schwach angesehen werden, aber ich denke, es ist in diesem speziellen Fall die einzige Methode, um die Ausnahmekonvertierung zu identifizieren.

Diese Korrektur ist falsch.
Siehe https://github.com/celery/celery/blob/master/t/unit/worker/test_loops.py#L386
Laut PEP 479 sollten Generatoren StopIterator mehr aufbringen.

Dies sollte in #5263 behoben werden.

Es scheint, dass wir ein ernsteres Problem aufgedeckt haben, das meiner Meinung nach ein Blocker ist.
Siehe https://travis-ci.org/celery/celery/jobs/473900629#L3204

Hoffentlich wird https://github.com/celery/kombu/pull/972 dieses Problem beheben.

Der Build für Kombu ist kaputt, so dass die gesamte Testsuite nicht ausgeführt wird.
Siehe https://travis-ci.org/celery/kombu/jobs/472712374#L1215.

Ich kann den Testfehler für Kombu lokal nicht reproduzieren :(

@thedrow Ich habe fehlgeschlagene Kombu-Tests behoben - siehe PR https://github.com/celery/kombu/pull/978. Die Tests verwendeten die pyamqp-Bibliothek vom Master. Die Tests brachen PR https://github.com/celery/py-amqp/pull/221.

Vielleicht wäre eine tief hängende Frucht, um das Paar zu reparieren DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working

py-amqp 2.4.0 ist jetzt veröffentlicht.
Als nächstes kommt Kombu.

@thedrow Was fehlt in der Version 4.3? Die Kombu PR scheint bereits zusammengeführt zu sein - warten wir auf eine neue Version von Kombu? Warten wir auf Korrekturen für alles in https://github.com/celery/celery/milestone/20?

Ich versuche zu sehen, wo ich helfen kann.

Ich muss die für Kombu 4.3 kritischen Probleme untersuchen.
Alles in https://github.com/celery/celery/issues?q=is%3Aopen+label%3A%22Status%3A+Needs+Test+Coverage+%E2%9C%98%22+milestone%3Av4.3 oder https://github.com/celery/kombu/pull/911 hilft.
Ich denke, wir sind ziemlich bereit für eine Veröffentlichung von Kombu, aber ich muss es überprüfen.
In der Zwischenzeit arbeite ich an Release Notes.

Können wir bitte auch den Streit in #5259 beilegen?

Da ich celery/kombu#911 nicht bearbeiten konnte, habe ich eine neue PR geöffnet: https://github.com/celery/kombu/pull/991

Das gleiche gilt für #5206. Ich habe #5289 geöffnet

Über dieses StopIteration Zeug: In Kombu wurde es geändert, um das ValueError in StopIteration zu "konvertieren" https://github.com/celery/kombu/pull/972/ Dateien

Bei Sellerie worker.loops.asynloop ein StopIteration Fehler abgefangen und in diesem Fall eine neue Schleife erstellt. Wird die Kombu-Änderung ohne Sellerie-Änderung nicht zu Problemen führen? Weil nun statt einer neuen Schleife die bestehende (aber kaputte?) Schleife weiter verwendet wird?

https://github.com/celery/celery/blob/c1d0bfea9ad98477cbc1def99157fe5109555500/celery/worker/loops.py#L92

@larsrinn bitte befassen .

Beim Schreiben des Tickets habe ich festgestellt, dass keine Aktion erforderlich ist, da die Rückgabe von einem Generator StopIteration erhöht. Das äußere Verhalten von Kombu, auf das hier Sellerie setzt, sollte nicht geändert werden. Siehe zum Beispiel:

def len_generator(max_):
    a = 0

    while True:
        yield a
        a += 1
        if a == max_:
            return


g = len_generator(2)
print(next(g))  # 0
print(next(g))  # 1
print(next(g))  # raises StopIteration

Der fehlgeschlagene Test auf CI für Python 3.7 ist auch bestanden, wenn er gegen den Kombu-Master-Zweig ausgeführt wird. Zumindest für mich vor Ort. Wenn also die neue Version von kombu veröffentlicht wird, sollte der fehlgeschlagene Test in diesem Job bestehen: https://travis-ci.org/celery/celery/jobs/482062153

Wird dies eine Lösung für das asynchrone Problem enthalten?
ich hoffe das wird so schnell wie möglich veröffentlicht.

Ja, darauf warte ich auch.

Aber ich muss sagen, ich habe ein bisschen Angst vor der Zukunft des Selleries. Python 3.7 ist bereits seit 7 Monaten draußen und wird immer noch nicht unterstützt. Ich weiß, dass dieses Projekt von Freiwilligen geleitet wird, die wahrscheinlich eine Menge anderer Dinge zu tun haben. Aber ich habe in den letzten Wochen ein paar PRs beigesteuert, meistens habe ich die Testabdeckung hinzugefügt und das CI zum Bestehen gebracht. Es scheint, als ob keiner von ihnen angeschaut, geschweige denn zusammengeführt wurde, obwohl sie alle so klein sind, sollten Rezensionen in wenigen Minuten, wenn nicht sogar Sekunden, machbar sein. Dies ist eine ziemlich enttäuschende Erfahrung mit Beiträgen.

Es wäre eine große Verbesserung für das Projekt, viel kleinere Releases zu machen. 4.3 ist eine große Version, an der noch gearbeitet werden muss, und in der Zwischenzeit haben viele Benutzer kritische Probleme wie das schwerwiegende Speicherleck , das in einer 4.2.X-Version schnell behoben werden könnte. Selbst einen bestimmten Fix beizutragen ist nicht sehr nützlich, da er erst nach Monaten veröffentlicht wird.

@larsrinn Ich werde Ihre PR überprüfen, wenn ich Zeit habe.

Es wäre eine große Verbesserung für das Projekt, viel kleinere Releases zu machen. 4.3 ist eine große Version, an der noch gearbeitet werden muss, und in der Zwischenzeit haben viele Benutzer kritische Probleme wie das schwerwiegende Speicherleck, das in einer 4.2.X-Version schnell behoben werden könnte. Selbst einen bestimmten Fix beizutragen ist nicht sehr nützlich, da er erst nach Monaten veröffentlicht wird.

Ja, das kann ich auf jeden Fall unterstützen. Wenn man bedenkt, dass Sellerie ein ziemlich ausgereiftes Projekt mit einem riesigen Funktionsumfang ist, ist es für die meisten Benutzer wahrscheinlich viel wichtiger, dass kritische Probleme schnell behoben werden und die Kompatibilität zu den neuesten Versionen gewährleistet ist, als neue Funktionen hinzuzufügen/alte Dinge zu verwerfen.

Ich stimme den obigen Aussagen auf jeden Fall zu. Die Unterstützung von Python 3.7 ist im Moment das Wichtigste für mich.

Gibt es eine Option, zusätzliche Betreuer hinzuzufügen?

Die meisten Unternehmen, in denen ich in den letzten 9 Jahren gearbeitet habe, haben Celery auf die eine oder andere Weise verwendet. Im letzten hatten wir sogar unseren eigenen Fork, um die benötigten Fixes anzuwenden, da unsere Probleme im Mainstream-Zweig nicht behoben wurden.

Meiner Meinung nach muss dieses Projekt ein Sponsoring-Programm starten, genau wie Django und DRF. Lassen Sie die Unternehmen für den gesamten Gewinn bezahlen, den sie dank dieses erstaunlichen Projekts erzielen, und geben Sie dieses Geld den Entwicklern, damit sie Vollzeit daran arbeiten.

Sellerie ist gegen aktuelles pytest (ein weiteres beliebtes Modul) leicht gebrochen; #5271 beschreibt das Problem und #5097 behebt es. Wenn die 4.3-Version zu entmutigend wird, könnte eine kleinere Versionserweiterung auf 4.2.2 vielleicht mehrere kleinere Fixes (#5271 und andere Bugfixes) aufrollen? Mir ist klar, dass dies wahrscheinlich leichter gesagt als getan ist, aber es könnte einigen von uns ermöglichen, wieder in den Release-Zyklus einzusteigen, anstatt unsere eigenen Forks zu warten, während wir auf 4.3 warten. Vielen Dank für dieses tolle Modul.

Also, welche Unternehmen werden unsere Arbeit sponsern? Hat jemand Interesse? Ich bin sehr daran interessiert, dass einige Unternehmen meine Zeit für die Arbeit mit Sellerie in Teilzeit / Vollzeit unterstützen!

Ich bin mir sicher, wenn es ein angemessenes Setup für regelmäßige Spenden gäbe, wäre es für Unternehmen einfacher, einfach eine monatliche Unterstützung zu abonnieren und es zu vergessen. Dies könnte die Quelle für ein stabileres Einkommen sein als ein einfacher PayPal-Einmal-Spenden-Button. Ich könnte mein Unternehmen zum Beispiel leicht davon überzeugen, es zu tun, anstatt es zu bitten, viel auf einmal zu geben oder sich daran zu erinnern, eine manuelle regelmäßige Spende zu tätigen.

Ich würde auch hinzufügen, dass Sellerie für unser Projekt der einzige Blocker ist, der uns daran hindert, auf Python 3.7 zu aktualisieren

ein zugehöriger Link: https://tidelift.com/

Ich denke, Sponsoring ist sehr gut möglich, aber man muss die Idee in die Köpfe der Leute einpflanzen. ZB außerhalb dieses Threads denkt niemand, dass dieses Projekt möglicherweise Unterstützung braucht, sie laden einfach Sellerie herunter und installieren sie und denken, dass es einfach "existiert". Ich denke, wenn ihr eine Spendenaktion gestartet hättet, würden viele Unternehmen spenden.
Ich habe den Spendenlink in der README gesehen und ein bisschen von einem persönlichen Konto aus beigetragen, aber es ist immer noch zu dunkel, als dass Unternehmen es bemerken könnten. Es sollte direkt vor ihnen sein (zumindest in allen sozialen Netzwerken) und es sollte einen richtigen Aufruf zum Handeln haben. Wenn Sie beispielsweise Entwickler sind und wissen, dass Ihr Unternehmen auf Sellerie angewiesen ist, bitten Sie Ihren Vorgesetzten, zu spenden.
Ich kann sagen, dass ich immer, wenn ich organisierte Spendenaktionen von Open-Source-Projekten sehe, die ich mag, immer versuche zu spenden oder zumindest ihre Social-Media-Kampagne zu verbreiten. Ich bin sicher, viele Leute machen das gleiche.

Ich habe eine Spendenaktion durchgeführt und es wurde ein massiver Misserfolg!! wir haben opencollective und tide lift option in der readme geöffnet. Interessierte können dort spenden/sponsern oder mich direkt in meiner E-Mail anpingen.

@auvipy Ich habe gesehen, dass die meisten Probleme im 4.3-Meilenstein jetzt verschoben oder geschlossen wurden.
Planen wir in Kürze eine 4.3-Version?

Jawohl!!! denn längst überfällig!!

Ich bin dabei. Erwarten Sie sehr bald einen RC.

Ich habe eine Spendenaktion durchgeführt und es wurde ein massiver Misserfolg!! wir haben opencollective und tide lift option in der readme geöffnet. Interessierte können dort spenden/sponsern oder mich direkt in meiner E-Mail anpingen.

Sellerie autoren. Ich bin ein Unterstützer von https://opencollective.com/celery geworden. Danke für dein tolles Werkzeug. Deine Tools helfen mir sehr :)

Jemand Einwände gegen Codename 4.3 als Rhabarber ?
Es ist einer meiner Lieblingstracks von Selected Ambient Works II.

Wenn Sie weitere Vorschläge haben, notieren Sie diese bitte hier.

Ich mag das :)

Kombu 4.3 ist jetzt veröffentlicht!

Kann sich bitte jemand unseren Windows-Build anschauen?
Einige der Tests schlagen fehl.
Außerdem fehlen uns dort einige Python-Versionen, wir sollten sie hinzufügen (obwohl das kein Blocker ist).

@thedrow Wo wird der Windows-Build ausgeführt? Anerkenner?

Kann sich bitte jemand unseren Windows-Build anschauen?
Einige der Tests schlagen fehl.
Außerdem fehlen uns dort einige Python-Versionen, wir sollten sie hinzufügen (obwohl das kein Blocker ist).

PR hier https://github.com/celery/celery/pull/5329

Also ist 4.3 jetzt gut?

Hi! Sie haben dieses Problem geschlossen, aber die Version auf pypi ist immer noch 4.2.1. Gibt es irgendwo, wo wir die Veröffentlichung auf pypi verfolgen können? Vielen Dank.

Hallo Leute,

@seirl Ich glaube, dass dieses Problem versehentlich geschlossen wurde, da die Beschreibung von #5329 Fixes #5180 Text enthält.

@auvipy Könnten Sie dieses Problem bitte erneut öffnen, bis 4.3 nicht tatsächlich veröffentlicht wird?
Vielen Dank!

Mein Fehler, ich dachte, automatisches Schließen wäre nur eine Option für Pullee

dies wurde automatisch von GitHub geschlossen!!!

@xirdneh ja .

Ich bin fast fertig mit dem Changelog. Ich muss noch einige der Elemente ausführen und die restlichen Elemente hinzufügen, zu denen ich noch nicht gekommen bin.

Der Abschnitt "Was ist neu" ist noch weitgehend unvollständig.

Fühlen Sie sich frei, auf jede erdenkliche Weise zu helfen.

Wir haben einen potenziellen Blocker für GA: https://github.com/celery/kombu/issues/1006
RCs werden wie geplant vorgehen.
Kann jemand mit Zugriff auf eine FreeBSD-Installation dies debuggen?

Hallo alle zusammen. Irgendeine ETA?

Ich habe gerade die Release Notes für den ersten RC fertig gestellt.
Es wird heute veröffentlicht.

Haben Sie eine ETA für eine stabile Veröffentlichung?

Sobald dies einige Wochen in der Produktion getestet wurde, erklären wir GA.
In naher Zukunft werden wir unseren Freigabeprozess verbessern und dokumentieren, damit alles übersichtlicher wird.

RC1 wird freigegeben. :tada:
Bitte versuchen Sie es in Ihren Staging-Umgebungen.

Wenn jemand in der Zwischenzeit einen genaueren Blick auf https://github.com/celery/kombu/issues/1006 , https://github.com/celery/kombu/issues/1007 und https://github werfen kann. com/celery/kombu/issues/1004, die alle Regressionen von Kombu 4.3 sind, die uns helfen werden, GA zu erreichen.

Da https://github.com/celery/kombu/issues/1004 im selben Bereich zu liegen schien, habe ich auch hier eine Lösung versucht: https://github.com/celery/kombu/pull/1010

Beide sind jetzt zusammengelegt.

@lithammer Danke!

Da das so viel Spaß gemacht hat, komme ich gleich mit zwei Lösungsvorschlägen für die letzte Ausgabe (https://github.com/celery/kombu/issues/1006):

Ich habe eine kurze Pause von den Versionshinweisen gemacht, um https://github.com/celery/py-amqp/pull/258 zu schreiben
Ich werde mit unserem Dokument "Was ist neu" fortfahren.

Ich habe Kombu 4.4 und Celery 4.3.0RC2 veröffentlicht.
Sofern es keinen Einwand oder eine kritische Korrektur gibt, wird dies die letzte RC sein.

Ich habe gerade auch py-amqp 2.4.3 veröffentlicht.
Es behebt zwei schwerwiegende Deserialisierungsfehler. In der Produktion habe ich noch nichts davon gehört.
Wahrscheinlich, weil es im AMQP-Protokoll keine Nachrichten mit zwei aufeinanderfolgenden Bitmaps gibt.
Die Fixes sind der Vollständigkeit halber da, da ich denke, dass sie Celery zum Absturz bringen könnten.

Danke für die tolle Arbeit @thedrow.

Potenzieller Blocker für GA: https://github.com/celery/celery/issues/5371

@thedrow Vielleicht habe ich diese Woche etwas Zeit, um dies zu überprüfen. Ich werde das Problem aktualisieren, wenn ich in der Lage bin.

@xirdneh Bitte aktualisieren Sie, wenn Sie dies nicht tun, und ich kümmere mich darum.

@lithammer Wenn du Lust hast mehr beizutragen, gewähre ich dir sogar Commit-Rechte :)

Eindeutiger Blocker für GA: #5377

Ich habe unser Dokument "Was ist neu" für diese Version fertiggestellt.

Bitte überprüfen Sie es und lassen Sie mich wissen, wenn ich etwas verpasst habe.

@thedrow scheint ziemlich gründlich und informativ zu sein! Eine Anmerkung jedoch, ich bin mir nicht sicher, ob es irgendwie automatisch aufgenommen wird, aber es scheint mir, als ob die Mitwirkendenliste noch nicht hinzugefügt wurde?

Ich habe die Beitragsliste noch nicht erstellt.
Ich werde dies kurz vor GA tun.

Hier ist eine Liste unserer aktuellen Release-Blocker:

Potenzielle Blocker:

@thedrow Ich denke, https://github.com/celery/celery/issues/5383 ist auch gültig.

Ich habe gerade Celery 4.3.0rc3 veröffentlicht.
Dazu gehören neue Funktionen und Fehlerbehebungen sowie einige behobene Blocker.

Wissen Sie vielleicht, wann die Vollversion verfügbar sein wird?

Wenn wir alle Blocker aufgelöst haben.

Nur noch ein Blocker übrig und dann noch einige abschließende Dokumentationsaufgaben.

@thedrow sieht aus, als ob Sellerie/Kombu#1014 von einem Revert-basierten PR geschlossen wurde. Es wird jedoch in der Checkliste nicht als vollständig angezeigt. Ist es unvollständig, weil das Schlüsselwort unique noch unterstützt werden muss?

Jawohl. Das und die letzten Dokumentationsaufgaben mache ich morgen.

Freigegeben! :tada:

Vielen Dank an alle für Ihre Bemühungen, Zeit und Fähigkeiten.

Die nächste Version, Celery 5, ist etwas, auf das man sich freuen kann.

Ich möchte Python2 vom Master entfernen

Kann ich wissen, wann Celery 5 veröffentlicht wird? Ich freue mich sehr, das zu nutzen.

vielleicht ein paar mal vor weihnachten :)

@auvipy Kannst du einen Blogbeitrag zu 4.3 veröffentlichen?

ja natürlich, kast ng=ight gestartet, aber beschäftigt. wird bis heute fertig.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen