How does Dropbox rollout Python 3 for desktop applications

查看原文

本文描述了 Dropbox 如何将 macOS,Windows,和 Linux 客户端应用程序迁移到 Python 3.

  • Python 带来的好处:类型注解,Coroutine。
  • 挑战:发布客户端的 Freezers 脚本要应对 TypeScript/HTML, Rust, and Python, as well as Objective-C and C++ 的混合代码库。
    • 特别是近些年操作系统开始要求代码部署需要做签名,或者更新的 API(macOS FinderSync)
  • 解决方案:在各种打包工具不太好使的情况下,转投嵌入式 Python (Embedding Python)。这样可以基于特定操作系统的接口搭底层,然后往上套一层 Python,再往上运行业务逻辑。
  • 发布分成3步
    • 客户端停用现有的 freezer scripts
    • 客户端同时运行 Python 2/3 兼容的代码
    • 大约花了七个月,慢慢替换掉老代码。