Celery: Celery 4.3 版发布

创建于 2018-11-16  ·  102评论  ·  资料来源: celery/celery

@thedrow @georgepsarakis如果我们能在 12 月 1 日之前发布 4.3 的测试版,那就太好了。 在此之前,我们需要发布 py-amqp。 不过首先是kombu和其他依赖项。 这是一个温柔的提醒

如果你想贡献,这里是一个阻止者列表

如果您正在使用 Celery 来创建商业产品,请考虑成为我们的支持者赞助商,以确保 Celery 的未来。

Project Governance

最有用的评论

发布了! :tada:

感谢大家的努力、时间和技能。

下一个版本 Celery 5 令人兴奋。

所有102条评论

@auvipy @thedrow @georgepsarakis我们可以快速发布 4.2.2 来满足 redis 的限制吗? 因为它目前与具有不兼容更改的最新 redis 发生冲突

我不确定我是否有时间。 我会尽量这样做。

这次我可以释放,但需要一些明确的指示

获得包括 redis 依赖项修复的 4.2.2 确实是 gr8,因为我已经花了太多时间来找到问题的根源,这对任何跳入它的人都有好处!

这个新版本会支持 python 3.7 吗?

是的

这个新版本会支持 redis 3.0.1 吗?

是的

@auvipy@thedrow ,我可以为这个版本提供什么帮助吗?

问题 #5212 对发布至关重要。
我们仍然需要使用 Python 3.7 测试 Celery。

@thedrow看起来如果我们发布 Kombu 版本,#5212 是固定的,对吗?
如果这是正确的,那么我们需要向我们的 CI 添加 3.7 测试。 我可以解决这个问题。

py-amqp 和 kombu 版本是先决条件,之后,我可以完善我的 pr 以获得 3.7 支持以使其合并

@auvipy你的意思是这个公关: https :

我只发布了带有该修复程序的 Kombu 4.2.2。
构建现在应该通过。

有没有关于这个版本的 ETA 发布的想法?

还有一些工作要做。 我们还需要修复 Kombu 的构建。
我将讨论剩余的问题。

@thedrow我可以接手的任何问题吗?
或者你打算在这里列出剩余的问题?

@xirdneh您可以查看里程碑https://github.com/celery/celery/milestone/20

我认为我们可以从这个里程碑中删除非拦截器。 并解决剩下的问题。 发布 py-amqp 和相关包以检查它们如何在 celery 4.3 rc1 上工作

现在 master 的构建在 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可以解决这个问题。

kombu 的构建已损坏,因此整个测试套件无法运行。
https://travis-ci.org/celery/kombu/jobs/472712374#L1215。

我无法在本地重现 kombu 的测试失败:(

@thedrow我已经修复了失败的https://github.com/celery/kombu/pull/978。 测试使用来自 master 的 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 现已发布。
接下来依次是 Kombu。

@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.3https://github.com/celery/kombu/pull/911会有所帮助。
我认为我们已经准备好发布 Kombu,但我需要验证一下。
与此同时,我正在编写发行说明。

我们能否也请解决 #5259 中的争议?

由于我无法编辑 celery/kombu#911 我打开了一个新的 PR: https :

#5206 也是如此。 我打开了#5289

关于StopIteration东西:在 Kombu 中,它被更改为不将ValueError “转换”为StopIteration https://github.com/celery/kombu/pull/972/档案

但是,在 celery 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

如果针对 kombu 主分支运行,Python 3.7 的 CI 失败测试也会通过。 至少对我本地而言。 所以当新版本的kombu发布时,这个job中的失败测试应该会通过: https :

这将包括对异步问题的修复吗?
我希望这能尽快发布。

是的,我也在等。

但我必须说,我有点担心芹菜的未来。 Python 3.7 已经发布 7 个月了,但仍然不受支持。 我知道这个项目是由志愿者运营的,他们可能有很多其他事情要做。 但我在过去几周贡献了几个 PR,主要是增加测试覆盖率并使 CI 通过。 似乎它们都没有被看过,更不用说合并了,即使它们都很小,评论应该可以在几分钟内完成,甚至几秒钟。 这是一次非常令人失望的贡献体验。

对项目进行更小的发布将是一个很大的改进。 4.3 是一个仍然需要工作的大版本,同时许多用户有严重的内存泄漏

@larsrinn如果我有时间,我会审查您的 PR。

对项目进行更小的发布将是一个很大的改进。 4.3 是一个仍然需要改进的大版本,同时许多用户有严重的内存泄漏等严重问题,这些问题可以在 4.2.X 版本中快速修复。 即使贡献一个特定的修复程序也不是很有用,因为它会在几个月内不会发布。

是的,我绝对可以支持这一点。 考虑到 celery 是具有大量功能集的非常成熟的项目,我想对于大多数用户来说,快速修复关键问题并确保与最新版本的兼容性比添加新功能/弃用旧东西要重要得多。

我绝对同意上述说法。 Python 3.7 支持对我来说是目前最重要的事情。

是否可以选择添加其他维护者?

我过去 9 年工作的大多数公司都以一种或另一种方式使用 Celery。 在最后一个中,我们甚至有自己的分支来应用我们需要的修复,因为我们的问题没有在主流分支中修复。

在我看来,这个项目需要启动一个赞助计划,就像 Django 和 DRF 一样。 由于这个惊人的项目,让公司为他们获得的所有利润买单,并将这笔钱交给开发人员,以便他们全职工作。

Celery 对当前的 pytest(另一个流行的模块)有轻微的破坏; #5271 描述了问题,#5097 修复了它。 也许如果 4.3 版本变得太令人生畏,那么小版本升级到 4.2.2 可能会汇总几个较小的修复(#5271 和其他错误修复)? 我意识到这说起来容易做起来难,但它可能会让我们一群人重新加入发布周期,而不是在等待 4.3 时维护自己的分叉。 感谢您提供这个出色的模块。

那么哪些公司会赞助我们的工作呢? 有人感兴趣吗? 我非常有兴趣让一些公司支持我与芹菜兼职/全职工作的时间!

我敢肯定,如果定期捐赠有适当的设置,公司会更容易订阅每月支持并忘记它。 这可能是比简单的贝宝一次性捐赠按钮更稳定的收入来源。 例如,我可以很容易地说服我的公司这样做,而不是要求他们一次性捐赠很多,或者记住他们进行手动定期捐赠。

我还要补充一点,对于我们的项目,celery 是唯一阻止我们升级到 python 3.7 的拦截器

一个相关链接: https :

我认为赞助是很有可能的,但你需要把这个想法植入人们的脑海中。 例如,在这个线程之外,甚至没有人认为这个项目可能需要支持,他们只是下载并安装 celery 并认为它只是“存在”。 我想,如果你们发起筹款活动,很多公司都会捐款。
我在 README 中看到了捐赠链接,并从个人帐户中贡献了一点,但对于公司来说,它仍然太晦涩难懂。 它应该就在他们面前(至少在所有社交网络中),并且应该有适当的号召性用语。 例如,如果您是一名开发人员并且您知道您的公司依赖 celery,请让您的经理捐赠。
我可以说,每当我看到我喜欢的开源项目有组织的筹款活动时,我总是尝试捐赠或至少传播他们的社交媒体活动。 我相信很多人都在做同样的事情。

我举办了一场筹款活动,结果却以一场巨大的失败告终!! 我们在自述文件中打开了 opencollective 和潮汐提升选项。 有兴趣的人可以在那里捐赠/赞助或直接在我的电子邮件中ping我。

@auvipy我看到 4.3 里程碑中的大部分问题现在都已移动或关闭。
我们是否计划很快发布 4.3 版本?

是的!!! 因为迟到了!!

我在做。 期待 RC 很快。

我举办了一场筹款活动,结果却以一场巨大的失败告终!! 我们在自述文件中打开了 opencollective 和潮汐提升选项。 有兴趣的人可以在那里捐赠/赞助或直接在我的电子邮件中ping我。

芹菜作者。 我已成为 https://opencollective.com/celery 的支持者。 感谢您提供的出色工具。 你的工具对我帮助很大:)

有人反对代号 4.3 为大黄吗?
这是 Selected Ambient Works II 中我最喜欢的曲目之一。

如果您有任何其他建议,请在此处注明。

我喜欢 :)

Kombu 4.3 现已发布!

有人可以看看我们的 Windows 版本吗?
一些测试失败了。
此外,我们在那里缺少一些 Python 版本,我们应该添加它们(尽管这不是阻止程序)。

@thedrow Windows 构建在哪里运行? 应用程序?

有人可以看看我们的 Windows 版本吗?
一些测试失败了。
此外,我们在那里缺少一些 Python 版本,我们应该添加它们(尽管这不是阻止程序)。

公关在这里https://github.com/celery/celery/pull/5329

那么现在 4.3 好用吗?

你好! 你关闭了这个issue,但是pypi上的版本还是4.2.1。 有什么地方可以跟踪 pypi 上的发布吗? 谢谢。

嗨伙计,

@seirl我相信由于#5329 的描述包含Fixes #5180文本,这个问题被意外关闭。

@auvipy您能否在4.3未实际发布之前重新打开此问题?
谢谢!

我的不好,我认为自动关闭只是滑轮的一种选择

这是由 GitHub 自动关闭的!!!

@xirdneh 是的

我几乎完成了更改日志。 我仍然需要详细说明一些项目,我需要完成添加我还没有得到的剩余项目。

什么是新的部分仍然很不完整。

请随时以任何可能的方式提供帮助。

我们有一个潜在的 GA 拦截器: https :
RC 将按计划进行。
可以访问 FreeBSD 安装的人可以调试这个吗?

大家好。 任何预计到达时间?

我刚刚完成了第一个 RC 的发行说明。
它将于今天发布。

你有稳定版本的 ETA 吗?

一旦在生产中尝试了几周,我们将宣布 GA。
在不久的将来,我们将改进我们的发布流程并记录下来,以便一切都更加清晰。

RC1 被释放。 :tada:
请在您的登台环境中尝试。

同时,如果有人可以仔细看看https://github.com/celery/kombu/issues/1006https://github.com/celery/kombu/issues/1007https://github 。 com/celery/kombu/issues/1004都是 Kombu 4.3 的回归,这将帮助我们实现 GA。

由于https://github.com/celery/kombu/issues/1004似乎在同一区域,我也尝试修复: https :

两者现已合并。

@lithammer谢谢!

由于这太有趣了,我来的不是一个,而是最后一个问题的两个解决方案建议 (https://github.com/celery/kombu/issues/1006):

我从发行说明中稍作休息,开始写
我将继续我们的新文档。

我发布了 Kombu 4.4 和 Celery 4.3.0RC2。
除非有任何异议或关键修复,否则这将是最后一个 RC。

我也刚刚发布了 py-amqp 2.4.3。
它修复了两个严重的反序列化错误。 我在生产中没有听说过关于它们的任何消息。
可能是因为 AMQP 协议中没有带有两个后续位图的消息。
修复是为了完整性,因为我猜它们可能会使 Celery 崩溃。

感谢@thedrow 所做的出色工作。

GA 的潜在拦截器: https :

@thedrow我这周可能有时间来验证一下。 如果可以,我会更新问题。

@xirdneh如果不更新,请更新,我会处理的。

@lithammer如果您想贡献更多,我什至会授予您提交权限:)

GA 的明确阻止程序:#5377

我已经完成了此版本的新增功能文档

请查看它,如果我遗漏了什么,请告诉我。

@thedrow似乎非常全面和翔实! 不过有一个说明,我不确定它是否以某种方式自动包含在内,但在我看来,贡献者列表尚未添加?

我还没有生成贡献列表。
我将在 GA 之前这样做。

以下是我们当前发布的阻止程序列表:

潜在的阻滞剂:

@thedrow我认为https://github.com/celery/celery/issues/5383也是有效的。

我刚刚发布了 Celery 4.3.0rc3。
这包括新功能和错误修复以及一些已解决的阻止程序。

你可能知道什么时候可以提供完整版?

当我们完成解决所有阻止程序时。

只剩下一个拦截器,而不是一些最终的文档任务。

@thedrow看起来像 celery/ unique关键字还需要支持,所以不完整?

是的。 我将在明天完成该任务以及最终的文档任务。

发布了! :tada:

感谢大家的努力、时间和技能。

下一个版本 Celery 5 令人兴奋。

我想开始从 master 中删除 python2

我能知道 Celery 5 什么时候发布吗? 我真的很高兴使用它。

也许在圣诞节前的一些时候:)

@auvipy你能发表一篇关于 4.3 的博文吗?

是的,当然,开始 kast ng=ight 但很忙。 将在今天完成。

此页面是否有帮助?
0 / 5 - 0 等级