Faraday: 0.16.2 中 fastlane 的重大更改

创建于 2019-09-29  ·  15评论  ·  资料来源: lostisland/faraday

基础信息

  • 法拉第版本:0.16.2
  • 红宝石版本:

    • Windows:ruby 2.4.6p354(2019-04-01 修订版 67394)[x64-mingw32]

    • Mac:红宝石 2.5

问题描述

即使有法拉第0.16.2@BobbyMcWho的修复,fastlane 也有测试失败:

Failures:
  1) Spaceship::Portal::Persons should change role
     Failure/Error: expect { person.change_role("member") }.to_not(raise_error)
       expected no Exception, got #<RuntimeError: can't modify frozen String> with backtrace:
         # ./spaceship/lib/spaceship/client.rb:811:in `force_encoding'
         # ./spaceship/lib/spaceship/client.rb:811:in `log_response'
         # ./spaceship/lib/spaceship/client.rb:846:in `block in send_request'
         # ./spaceship/lib/spaceship/client.rb:620:in `with_retry'
         # ./spaceship/lib/spaceship/client.rb:844:in `send_request'
         # ./spaceship/lib/spaceship/client.rb:688:in `request'
         # ./spaceship/lib/spaceship/portal/portal_client.rb:449:in `team_set_role'
         # ./spaceship/lib/spaceship/portal/person.rb:45:in `change_role'
         # ./spaceship/spec/portal/person_spec.rb:58:in `block (3 levels) in <top (required)>'
         # ./spaceship/spec/portal/person_spec.rb:58:in `block (2 levels) in <top (required)>'
     # ./spaceship/spec/portal/person_spec.rb:58:in `block (2 levels) in <top (required)>'
  2) Spaceship::Tunes::IAPList IAPList can delete
     Failure/Error: deleted = app.in_app_purchases.find("go.find.me").delete!
     RuntimeError:
       can't modify frozen String
     # ./spaceship/lib/spaceship/client.rb:811:in `force_encoding'
     # ./spaceship/lib/spaceship/client.rb:811:in `log_response'
     # ./spaceship/lib/spaceship/client.rb:846:in `block in send_request'
     # ./spaceship/lib/spaceship/client.rb:620:in `with_retry'
     # ./spaceship/lib/spaceship/client.rb:844:in `send_request'
     # ./spaceship/lib/spaceship/client.rb:688:in `request'
     # ./spaceship/lib/spaceship/tunes/tunes_client.rb:1235:in `delete_iap!'
     # ./spaceship/lib/spaceship/tunes/iap_list.rb:72:in `delete!'
     # ./spaceship/spec/tunes/iap_list_spec.rb:28:in `block (3 levels) in <top (required)>'
  3) Spaceship::Tunes::Members members creates a new member role: admin, apps: all
     Failure/Error: Spaceship::Members.create!(firstname: "Helmut", lastname: "Januschka", email_address: "[email protected]")
     RuntimeError:
       can't modify frozen String
     # ./spaceship/lib/spaceship/client.rb:811:in `force_encoding'
     # ./spaceship/lib/spaceship/client.rb:811:in `log_response'
     # ./spaceship/lib/spaceship/client.rb:846:in `block in send_request'
     # ./spaceship/lib/spaceship/client.rb:620:in `with_retry'
     # ./spaceship/lib/spaceship/client.rb:844:in `send_request'
     # ./spaceship/lib/spaceship/client.rb:688:in `request'
     # ./spaceship/lib/spaceship/tunes/tunes_client.rb:502:in `create_member!'
     # ./spaceship/lib/spaceship/tunes/members.rb:26:in `create!'
     # ./spaceship/spec/tunes/members_spec.rb:19:in `block (4 levels) in <top (required)>'

...

PR 供参考: https ://github.com/fastlane/fastlane/pull/15407

请注意,我们的测试在 macOS 和 Ubuntu 上的 ruby​​ 2.3 上没有失败。

最有用的评论

@janpio我怀疑#1039 应该解决正文中冻结字符串文字的问题。

所有15条评论

这应该由 fastlane/fastlane#15403 中的这一行修复,我认为这是某处冻结字符串文字魔术注释的副作用

编辑:~直到 lostisland/faraday_middleware#196 被批准和发布后才能发布~ Edit2:它是向后兼容的

是的,前进的道路在这里非常明确 - 我们将尽快推出一个新版本。

但是现在有成千上万的 Fastlane 安装(和其他软件)被破坏,这就是为什么我认为再次明确报告这一点很重要。

有没有办法在 0.16.3 中再次进行这项工作?

我不在一个可以使用计算机的地方,但是粗略地浏览一下手机上的文件,在我看来,在法拉第的某个地方,我们正在将请求正文设置为冻结的字符串。 如果我们可以找到将请求正文设置为冻结字符串的位置,那么这应该可以解决快速通道中的问题

@janpio我怀疑#1039 应该解决正文中冻结字符串文字的问题。

感谢您在修复出现时挂在那里。 感谢 BobbyMcWho 实施!

我很好奇其他适配器中是否需要任何_更多_可变的主体字符串?

我浏览了该项目,没有其他任何东西立即引起我的注意,大多数冻结的文字都是错误消息,或者以不希望它们可变的方式使用

我在使用法拉第 0.16.2 和 elasticsearch-transport(searchkick 的依赖项)时也遇到过这种情况。 感谢您在@BobbyMcWho 中添加补丁!

@zspencer如果您现在需要它,您可能必须指向 gemfile 中的 0.16.x 分支,直到维护者有机会发布 0.16.3

谢谢! 我已经这样做了。 我想确保遇到这个问题并在他们的谷歌查询中添加诸如 searchkick 和 elasticsearch 之类的词的人会发现这个问题。 (和修复!)

大家好,对于 v0.16.x 版本造成的所有干扰,我们深表歉意。
我们刚刚执行了一个 ROLLBACK RELEASE v0.17.0,它直接跟随最新的工作版本 v0.15.4。
请更新到该版本以解决向后兼容性问题。
更多信息在这里: https ://github.com/lostisland/faraday/releases/tag/v0.17.0

感谢@iMacTia ,这是否也适用于faraday_middleware ,到目前为止我们一直保持与faraday相同的版本?

@janpio对不起,我不确定我是否理解。 这个问题不应该以任何方式影响faraday_middleware ,因为我们自 2 月以来没有发布任何新版本。
我知道这个 PR旨在增加与 0.16 的兼容性,但不会再发布了。

一旦我们发布 Faraday v1.0,我们还将更新 Faraday Middleware 并发布兼容的 v1.0。

如果您要问其他问题,请告诉我😄

或多或少 - 在我们的 gemspec 中faraday_middleware被注释为in sync with faraday所以我想知道是否真的需要一个更新的版本。 如果不是这种情况,我们将继续使用旧的。

Faraday Middleware v0.13.1 在 Faraday v0.15.4 上运行良好,所以我希望它在 v0.17.0 上也能正常运行。 我会触发一个主构建虽然只是为了确定👍

@janpio触发了https://travis-ci.org/lostisland/faraday_middleware/builds/595051325 ,您可以在日志中看到使用了 Faraday v0.17.0 并且所有测试都通过了🎉

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

相关问题

amrrbakry picture amrrbakry  ·  4评论

t3hk0d3 picture t3hk0d3  ·  3评论

aleksb86 picture aleksb86  ·  3评论

JasonBarnabe picture JasonBarnabe  ·  4评论

jedeleh picture jedeleh  ·  3评论