Celery: Выпуск версии 4.3 Celery

Созданный на 16 нояб. 2018  ·  102Комментарии  ·  Источник: celery/celery

@thedrow @georgepsarakis Было бы здорово выпустить бета-версию 4.3 к 1 декабря. перед этим нам нужно выпустить py-amqp. сначала комбу и другие зависимости. это мягкое напоминание

Если вы хотите внести свой вклад, вот список блокировщиков .

Если вы используете Celery для создания коммерческого продукта, подумайте о том, чтобы стать нашим спонсором или нашим спонсором, чтобы обеспечить будущее Celery.

Project Governance

Самый полезный комментарий

Выпущенный! : тада:

Спасибо всем за ваши усилия, время и навыки.

Следующая версия, Celery 5, вызывает восторг.

Все 102 Комментарий

@auvipy @thedrow @georgepsarakis можем ли мы быстро выпустить 4.2.2 только для ограничения Redis? поскольку в настоящее время он конфликтует с последней версией Redis, в которой есть несовместимые изменения

Не уверен, что у меня будет время. Я постараюсь так сделать.

Я могу выпустить на этот раз, но мне нужны четкие инструкции

Было бы действительно gr8 получить 4.2.2, включая исправление зависимостей redis, потому что я уже потратил слишком много времени, чтобы найти источник проблемы, и было бы хорошо для любого, кто в нее запрыгнет!

Будет ли эта новая версия поддерживать Python 3.7?

да

Будет ли этот новый выпуск поддерживать Redis 3.0.1?

да

@auvipy , Чем могу помочь для этого релиза?

Проблема № 5212 имеет решающее значение для выпуска.
Нам все еще нужно протестировать Celery с Python 3.7.

@thedrow Похоже, что # 5212 будет исправлен, если мы сделаем релиз Комбу, верно?
ЕСЛИ это верно, то нам нужно добавить тестирование 3.7 к нашему CI. Я могу поработать над этим.

Выпуск py-amqp и kombu является предварительным требованием, после этого я могу отполировать свой PR для поддержки 3.7, чтобы объединить его

Я выпустил Kombu 4.2.2 только с этим исправлением.
Теперь сборка должна пройти.

Есть идеи, когда будет выпущена эта версия?

Еще есть над чем поработать. Нам также нужно исправить сборку для Комбу.
Я рассмотрю оставшиеся вопросы.

@thedrow Есть вопросы, которые я могу взять на себя?
Или вы собираетесь перечислить здесь нерешенные вопросы?

@xirdneh вы можете проверить веху https://github.com/celery/celery/milestone/20 .

Я думаю, что мы можем убрать неблокирующие программы с этого рубежа. и отложите оставшиеся вопросы. выпуск py-amqp и связанных пакетов, чтобы проверить, как они работают на celery 4.3 rc1

Прямо сейчас сборка для мастера не работает на Python 3.7.
См. Https://travis-ci.org/celery/celery/jobs/473236382.

@thedrow Я думаю, это связано с тем, что Python 3.7 преобразовал исключения StopIteration поднятые в генераторах, в исключения RuntimeError , см. здесь .

Я предлагаю добавить ветвь обработки исключений, определяющую конкретный тип RuntimeError :
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

По общему признанию, вышесказанное можно было бы считать каким-то слабым, но я думаю, что это единственный метод определения преобразования исключения в данном конкретном случае.

Это исправление неверно.
См. Https://github.com/celery/celery/blob/master/t/unit/worker/test_loops.py#L386.
Согласно PEP 479, генераторы должны больше собирать StopIterator .

Это должно быть исправлено в # 5263.

Похоже, мы обнаружили более серьезную проблему, которая, на мой взгляд, является блокировщиком.
См. Https://travis-ci.org/celery/celery/jobs/473900629#L3204.

Надеюсь, https://github.com/celery/kombu/pull/972 решит эту проблему.

Сборка для комбу не работает, поэтому весь набор тестов не запускается.
См. Https://travis-ci.org/celery/kombu/jobs/472712374#L1215.

Я не могу воспроизвести провал теста для комбу локально :(

@thedrow Я исправил неудачные тесты комбу - см. PR https://github.com/celery/kombu/pull/978. Тесты проводились с использованием библиотеки pyamqp от мастера. Тесты сломали PR https://github.com/celery/py-amqp/pull/221.

Может, низко висящий фрукт исправит пару 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.
На очереди Комбу.

@thedrow Чего не хватает в версии 4.3? Kombu PR, кажется, уже объединен - ​​мы ждем нового релиза Kombu? Ждем ли мы исправлений всего на https://github.com/celery/celery/milestone/20?

Пытаюсь понять, чем могу помочь.

Мне нужно отсортировать проблемы, которые являются критическими для Kombu 4.3.
Все в https://github.com/celery/celery/issues?q=is%3Aopen+label%3A%22Status%3A+Needs+Test+Coverage+%E2%9C%98%22+milestone%3Av4.3 или https://github.com/celery/kombu/pull/911 поможет.
Я думаю, что мы почти готовы к выпуску Комбу, но мне нужно это проверить.
А пока я работаю над примечаниями к выпуску.

Можем ли мы также разрешить спор в # 5259?

Поскольку я не мог редактировать celery / kombu # 911, я открыл новый PR: https://github.com/celery/kombu/pull/991

То же и для №5206. Открыл # 5289

О том, что StopIteration : в Kombu это было изменено, чтобы не "конвертировать" ValueError в StopIteration https://github.com/celery/kombu/pull/972/ файлы

Однако в сельдерее worker.loops.asynloop обнаруживается ошибка StopIteration и в этом случае создается новый цикл. Разве изменение комбу без изменения сельдерея не вызовет каких-либо проблем? Потому что теперь вместо создания нового цикла продолжает использоваться существующий (но сломанный?) Цикл?

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

@larsrinn, пожалуйста, откройте вопрос об этом, чтобы мы не забыли его изучить.

При написании тикета я понял, что никаких действий не требуется, так как при возврате из генератора возникает StopIteration . Не следует изменять внешнее поведение комбу, от которого зависит сельдерей. См. Например:

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

Неудачный тест на CI для Python 3.7 также проходит, если запускается с главной веткой kombu. По крайней мере, для меня локально. Поэтому, когда будет выпущена новая версия комбу, неудачный тест в этой работе должен пройти: https://travis-ci.org/celery/celery/jobs/482062153

Будет ли это включать исправление проблемы с асинхронностью?
Я надеюсь, что это будет выпущено как можно скорее.

Да, я тоже этого жду.

Но должен сказать, что я немного опасаюсь за будущее сельдерея. Python 3.7 отсутствует уже 7 месяцев и до сих пор не поддерживается. Я знаю, что этим проектом занимаются волонтеры, у которых, вероятно, есть масса других дел. Но за последние недели я внес пару PR, в основном добавив тестового покрытия и заставив CI пройти. Похоже, что ни один из них не был рассмотрен, не говоря уже о том, чтобы объединить, хотя все они такие второстепенные, обзоры должны быть выполнены за несколько минут, если не даже секунд. Это довольно разочаровывающий опыт.

Было бы большим улучшением проекта выпускать гораздо меньшие релизы. 4.3 - это большой выпуск, который все еще требует доработки, а тем временем у многих пользователей есть критические проблемы, такие как серьезная утечка памяти , которую можно быстро исправить в выпуске 4.2.X. Даже вносить конкретное исправление не очень полезно, потому что оно не будет выпущено в течение нескольких месяцев.

@larsrinn Я пересмотрю ваш PR, если будет время.

Было бы большим улучшением проекта выпускать гораздо меньшие релизы. 4.3 - это большой выпуск, который все еще требует доработки, а тем временем у многих пользователей есть критические проблемы, такие как серьезная утечка памяти, которую можно быстро исправить в выпуске 4.2.X. Даже вносить конкретное исправление не очень полезно, потому что оно не будет выпущено в течение нескольких месяцев.

Да, я определенно могу это подтвердить. Учитывая, что celery - довольно зрелый проект с огромным набором функций, я думаю, для большинства пользователей гораздо важнее, чтобы критические проблемы были быстро исправлены и была обеспечена совместимость с последними версиями, чем добавление новых функций / отказ от старых вещей.

Я полностью согласен с приведенными выше утверждениями. Поддержка Python 3.7 сейчас для меня важнее всего.

Есть ли возможность добавить дополнительных сопровождающих?

Большинство компаний, с которыми я работал последние 9 лет, так или иначе использовали сельдерей. В последнем случае у нас даже была собственная вилка для применения необходимых нам исправлений, учитывая, что наши проблемы не были исправлены в основной ветке.

На мой взгляд, этому проекту нужно запустить спонсорскую программу, как это сделали Django и DRF. Заставьте компании платить за всю прибыль, которую они получают благодаря этому удивительному проекту, и отдать эти деньги разработчикам, чтобы они работали над ним полный рабочий день.

Celery немного уступает текущему pytest (еще один популярный модуль); # 5271 описывает проблему, а # 5097 устраняет ее. Возможно, если выпуск 4.3 станет слишком сложным, то при переходе к более мелкой версии до 4.2.2 может появиться несколько более мелких исправлений (# 5271 и другие исправления ошибок)? Я понимаю, что, вероятно, легче сказать, чем сделать, но это может позволить группе из нас снова присоединиться к циклу выпуска вместо того, чтобы поддерживать собственные форки в ожидании 4.3. Спасибо за этот отличный модуль.

Итак, какие компании собираются спонсировать нашу работу? Кому-нибудь интересно? Мне будет очень интересно, чтобы некоторые компании выделяли мое время на работу с сельдереем неполный / полный рабочий день!

Я уверен, что если бы существовала правильная настройка для регулярных пожертвований, компаниям было бы проще просто подписаться на ежемесячную поддержку и забыть об этом. Это может быть источником более стабильного дохода, чем простая кнопка одноразового пожертвования PayPal. Я мог бы легко убедить свою компанию сделать это, например, чем попросить их дать много сразу или напомнить им, чтобы они делали регулярные пожертвования вручную.

Я бы также добавил, что для нашего проекта сельдерей - единственный блокировщик, который мешает нам перейти на Python 3.7.

одна связанная ссылка: https://tidelift.com/

Я считаю, что спонсорство вполне возможно, но нужно вселять эту идею в головы людей. Например, за пределами этой ветки никто даже не думает, что этому проекту может потребоваться поддержка, они просто скачивают и устанавливают сельдерей и думают, что он просто «существует». Я думаю, если бы вы, ребята, начали сбор средств, многие компании сделали бы пожертвования.
Я видел ссылку для пожертвований в README и немного пожертвовал из личного кабинета, но это все еще слишком непонятно, чтобы компании могли заметить. Он должен быть прямо перед ними (по крайней мере, во всех социальных сетях) и иметь надлежащий призыв к действию. Например, если вы разработчик и знаете, что ваша компания использует сельдерей, попросите своего менеджера сделать пожертвование.
Я могу сказать, что всякий раз, когда я вижу организованных сборщиков средств из проектов с открытым исходным кодом, которые мне нравятся, я всегда стараюсь пожертвовать или, по крайней мере, распространить их кампанию в социальных сетях. Я уверен, что многие люди поступают так же.

Я провел сбор средств, и это обернулось огромным провалом !! у нас есть опция opencollective и tide lift, открытая в readme. заинтересованные люди могут делать пожертвования / спонсировать там или пинговать меня прямо в мою электронную почту.

@auvipy Я видел, что большинство проблем на этапе 4.3 были перемещены или закрыты.
Планируем ли мы в ближайшее время выпустить релиз 4.3?

да!!! так как это давно пора !!

Я в этом. Ожидайте RC очень скоро.

Я провел сбор средств, и это обернулось огромным провалом !! у нас есть опция opencollective и tide lift, открытая в readme. заинтересованные люди могут делать пожертвования / спонсировать там или пинговать меня прямо в мою электронную почту.

Авторы сельдерея. Я стал спонсором https://opencollective.com/celery. Спасибо за отличный инструмент. Ваши инструменты мне очень помогают :)

Кто-нибудь возражает против кодового имени 4.3 как Ревень ?
Это один из моих любимых треков из Selected Ambient Works II.

Если у вас есть другие предложения, запишите их здесь.

Мне это нравится :)

Комбу 4.3 уже выпущен!

Кто-нибудь может взглянуть на нашу сборку Windows?
Некоторые тесты терпят неудачу.
Кроме того, нам там не хватает некоторых версий Python, мы должны добавить их (хотя это не блокировщик).

@thedrow Где запущена сборка Windows? Appveyor?

Кто-нибудь может взглянуть на нашу сборку Windows?
Некоторые тесты терпят неудачу.
Кроме того, нам там не хватает некоторых версий Python, мы должны добавить их (хотя это не блокировщик).

PR здесь https://github.com/celery/celery/pull/5329

Так что теперь можно переходить к 4.3?

Привет! Вы закрыли эту проблему, но версия на pypi все еще 4.2.1. Есть ли где-нибудь возможность отслеживать выпуск на pypi? Спасибо.

Привет народ,

@seirl Я считаю, что проблема была закрыта случайно, так как описание # 5329 содержит текст Fixes #5180 .

@auvipy Не могли бы вы повторно открыть этот выпуск, пока 4.3 не будет выпущен?
Спасибо!

Мой плохой, я думал, что автоматическое закрывание будет просто вариантом для шкива

это было автоматически закрыто GitHub !!!

@xirdneh ага .

Я почти закончил с журналом изменений. Мне все еще нужно уточнить некоторые элементы, и мне нужно завершить добавление оставшихся элементов, которые я не успел.

Раздел "Что нового" по-прежнему в значительной степени не завершен.

Не стесняйтесь помогать любым возможным способом.

У нас есть потенциальный блокировщик GA: https://github.com/celery/kombu/issues/1006
РК будут работать в соответствии с планом.
Может ли кто-нибудь, имеющий доступ к установке FreeBSD, отладить это?

Всем привет. Любое расчетное время прибытия?

Я только что закончил писать примечания к выпуску первого RC.
Он будет выпущен сегодня.

Есть ли у вас ETA для стабильного выпуска?

После того, как это будет сделано в течение пары недель, мы объявим GA.
В ближайшее время мы усовершенствуем наш процесс выпуска и задокументируем его, чтобы все было понятнее.

RC1 выпущен. : тада:
Пожалуйста, попробуйте его в своей постановочной среде.

А пока, если кто-то может поближе познакомиться с https://github.com/celery/kombu/issues/1006 , https://github.com/celery/kombu/issues/1007 и https: // github. com / celery / kombu / issues / 1004, которые все являются регрессами из Kombu 4.3, которые помогут нам достичь GA.

Я сделал возможное исправление для https://github.com/celery/kombu/issues/1007 в https://github.com/celery/kombu/pull/1009

Поскольку https://github.com/celery/kombu/issues/1004, похоже, находится в той же области, я попытался исправить и это: https://github.com/celery/kombu/pull/1010

Оба теперь объединены.

@lithammer Спасибо!

Поскольку это было так весело, я пришел с не одним, а двумя предложениями по решению последней проблемы (https://github.com/celery/kombu/issues/1006):

Я сделал небольшой перерыв в примечаниях к выпуску, чтобы написать https://github.com/celery/py-amqp/pull/258.
Я собираюсь продолжить работу над нашим новым документом.

Я выпустил Kombu 4.4 и Celery 4.3.0RC2.
Если нет возражений или критических исправлений, это будет последний RC.

Я только что выпустил py-amqp 2.4.3.
В нем исправлены две серьезные ошибки десериализации. Я ничего не слышал о них в производстве.
Вероятно, потому что в протоколе AMQP нет сообщений с двумя последовательными битовыми картами.
Исправления даны для полноты, так как я предполагаю, что они могут привести к сбою Celery.

Спасибо за отличную работу @thedrow.

Потенциальный блокировщик для GA: https://github.com/celery/celery/issues/5371

@thedrow На этой неделе у меня будет время проверить это. Я обновлю выпуск, если смогу.

@xirdneh Пожалуйста, обновите, если вы этого не сделаете, и я позабочусь об этом.

@lithammer Если вы хотите внести больший вклад, я даже дам вам права на коммит :)

Определенный блокировщик для GA: # 5377

Я завершил работу над нашим новым документом для этого выпуска.

Пожалуйста, просмотрите его и дайте мне знать, если я что-то пропустил.

@thedrow кажется довольно подробным и информативным! Одно замечание: я не уверен, что он автоматически включен каким-то образом, но мне кажется, что список участников еще не добавлен?

Я еще не составил список пожертвований.
Я сделаю это прямо перед GA.

Вот список наших текущих блокировщиков:

Возможные блокаторы:

@thedrow Я думаю, что https://github.com/celery/celery/issues/5383 тоже действителен.

Я только что выпустил Celery 4.3.0rc3.
Это включает в себя новые функции и исправления ошибок, а также некоторые устраненные блокираторы.

Вы, может быть, знаете, когда будет доступна полная версия?

Когда мы закончим устранение всех блокировщиков.

Остался только один блокировщик и несколько финальных заданий по документации.

@thedrow выглядит так, как будто unique все еще требует поддержки?

да. Я сделаю это и заключительные задачи по документации завтра.

Выпущенный! : тада:

Спасибо всем за ваши усилия, время и навыки.

Следующая версия, Celery 5, вызывает восторг.

Я хочу начать удаление python2 из мастера

Могу ли я узнать, когда выйдет Celery 5? Я очень рад использовать это.

может быть, несколько раз до Рождества :)

@auvipy Можете ли вы опубликовать в блоге сообщение о 4.3?

да конечно запустил kast ng = ight но занялся. будет завершено к сегодняшнему дню.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги