C-010-030
支持一行 print 是可直接复现的当下场景;Guido 约 1999 年的回顾支撑 1989 年底起点及可读性设计观点。不能据此把 Python 排名为最容易的语言,也不能把后见回顾当作 1989 年同期日志。
一行 print 是可直接复现的当下场景;Guido 约 1999 年的回顾支撑 1989 年底起点及可读性设计观点。不能据此把 Python 排名为最容易的语言,也不能把后见回顾当作 1989 年同期日志。
这是从设计反差提出问题,不把提问写成已经证明的因果结论。
创建者后见前言支撑 hobby project、ABC 后代、扩展限制、Unix/C 受众与 Modula-3 影响;不能精确还原 1989 年逐步动机,也不能把回顾写成同期记录。
同期发布邮件与 NEWS 支撑公开分发、文档和跨平台入口;只能说明采用入口已经存在,不能证明用户数量、市场份额或单一爆红时刻。
这是从公开分发过渡到下游兼容问题的叙事连接,不声称有早期用户规模数据。
PEP 238 支撑除法变化的渐进迁移机制;它只是一项变化的路径,不能代表全部 Python 3 不兼容变化都采用相同策略。
同期 PEP 支撑大范围清理与主动接受不兼容;关于长期收益和近期成本的分配是有边界的编辑判断,不能证明每项变化都必要或断裂是唯一方案。
PEP 3000 支撑最初过渡方案;它是过程设计,不证明工具能自动完成迁移,也不证明下游会按原先预期的速度采用。
版本文档固定文本 / 字节模型变化,Brett Cannon 以后见观点解释动机并承认采用预期偏差;不能把他的解释代表全体核心开发者,也不能把 Unicode 写成全部断裂的唯一原因。
版本文档支撑 print、迭代器 / 视图、整数和文本 / 字节等用户可见变化;不能推断每项变化具有同样必要性、成本或动机。
三份发布 / 路线文档固定 Python 3.0、Python 2.7 和不发布 Python 2.8 的顺序;它们不能把发布写成生态采用,也不能证明下游已有完整迁移路径。
这是把官方迁移步骤还原为可听的工作台;来源支撑工具和语义边界,不支撑某个未登记的真实开发者个案。
过渡规范和版本文档支撑机械转换与文本 / 字节人工审计的边界;不能据此说工具毫无价值,也不能假定所有项目具有相同数据流。
两阶段的协作和发布含义由过渡计划与 Python-Future 资料共同支撑;不能声称所有项目都按同一路线迁移。
版本固定源码、文档和元数据支撑两阶段流程随 0.8.0 形成;不能把它回填到 2008 年,也不能证明实际采用范围。
把工具能力与项目责任分开;来源不证明 future 自动解决数据库、第三方 API 或公共接口的语义。
版本固定文档与元数据支撑命令、双版本承诺和 pasteurize 分离;不能把当前 Quick-start 全部内容归入 0.11,也不能把工具写成自动解决文本 / 字节语义。
这是从应用迁移过渡到包维护者责任的叙事连接,不把下游数量写成可核验规模。
同期邮件支撑三层迁移对象及维护者对分支策略的观点;讨论不等于迁移完成,也不能代表全体成员形成完全一致意见。
Django 材料支撑维护边界和测试不足;这里不虚构具体下游应用或迁移结果。
同期项目公告支撑 six、共同源码、API 重命名与真实使用测试不足;不能写成所有 Django 应用已兼容,也不能外推所有框架。
Jinja2 的版本交集和维护体验来自维护者复盘,只代表该项目,不外推整个包生态。
Jinja2 维护者复盘支撑安装时转换的迭代成本与统一源码路径;只代表 Jinja2,具体耗时、心理感受和工具选择不能外推整个生态。
NumPy 材料支撑版本边界和旧版可安装状态;不推出整个科学计算生态同步退出。
NumPy 政策支撑 feature release 退出、旧版仍可安装及维护资源观点;不能写成科学计算生态同日完成迁移,也不能说旧 Python 2 版本消失。
这是从包维护转入产品与多项目系统的叙事连接;两个案例保持各自边界。
Dropbox 复盘支撑工程任务的拆解;不能把这些工具说成自动完成语义迁移。
参与者后见复盘支撑失败试验和正式资源的时间关系;不能把 2015 写成完整多年计划,也不能声称已经伤害真实用户。
两份 Dropbox 复盘支撑回退契约和产品完成边界;不能外推为所有企业的通用迁移方法。
工程复盘支撑依赖、测试、类型检查和逐文件例外;不能把 Mypy 或测试写成自动完成迁移。
具体错误来自 Dropbox 的桌面客户端复盘;不能外推成所有项目最常见的错误。
两份 Dropbox 复盘支撑产品级双解释器和灰度回退;不能把 Hydra 写成通用迁移工具,也不能外推到 Dropbox 全部系统。
完成时间和范围均归属于 Dropbox 桌面客户端参与者复盘;不能外推为所有企业或 Dropbox 全部系统的完成日期。
OpenStack Wiki,`Python3/SprintPycon2014` 固定修订;2014-04-14 至 17
OpenStack Technical Committee,`2018-05-29 Python2 Deprecation Timeline`
OpenStack Technical Committee,Stein goal `Run under Python 3 by default`;2018
OpenStack Technical Committee,Ussuri goal `Drop Python 2.7 Support`;2019–2020
Ghanshyam Mann,`OpenStack Ussuri is Python3-Only: Upgrade Impact`;2020-05-27
OpenStack 材料支撑依赖顺序与治理动作;不能写成所有项目或分支同日完成。
OpenStack Wiki,`Python3/SprintPycon2014` 固定修订;2014-04-14 至 17
OpenStack Technical Committee,`2018-05-29 Python2 Deprecation Timeline`
OpenStack Technical Committee,Stein goal `Run under Python 3 by default`;2018
OpenStack Technical Committee,Ussuri goal `Drop Python 2.7 Support`;2019–2020
Ghanshyam Mann,`OpenStack Ussuri is Python3-Only: Upgrade Impact`;2020-05-27
五份材料支撑多项目依赖、共同退出协议、完成口径和例外;不能写成每个仓库同日完成,也不能外推所有开源项目群。
延期的多方时间边界是编辑性解释;资料不证明具体项目因此拖延。
资料支撑延期的政策边界和不确定因果;不能把相关性写成具体项目的已证实拖延。
PEP 固定政策日期与目的;不能推出延期导致任何具体项目拖延。
一封同期邮件与一篇后见新闻稿分别支撑当时责任边界的不确定性和后见政策解释;不能证明延期没有降低压力,也不能证明必然有益或有害。
分别支撑共同源码与安全回移的具体目的;不扩大为所有功能都应 backport。
分别解释语法、网络安全和库层妥协;不能把任何一个 backport 扩大为全部 Python 3 能力的回移。
PEP 414 支撑共同源码交集扩大;不能写成恢复 Python 2 的文本模型。
PEP 466 支撑安全能力回移与替代方案被否决;不能把它扩大为所有 Python 3 功能都应回移。
供应商材料支撑产品边界差异;不支撑用户规模、供应商动机或后续终止日期。
两个供应商材料只支撑限定产品的延后支持和双运行时边界;不能推出 2020 后 Python 2 仍是通用主流,也不能推断供应商动机或规模。
这里区分指标与用户处境;不能从下载量或 classifier 推出态度或统一采用率。
三种指标支撑供给与消费不能合并;不能推出统一采用率或单一拐点。
两份分析支撑消费端与活跃库供给的不同信号;不能合并为统一采用率,也不能把 Python 3.5 写成唯一拐点。
这是趋势分析和预测,不是全生态已经完成的事实。
四份材料支撑不同生态层级的退出动作;不能说所有用户或发行版在同一天完成迁移。
三个项目材料支撑不同下游的公开退出动作;不能推出所有用户随项目日期同步迁移。
发行版和工具链的退出时间各自独立;不能写成所有发行版同步,也不能说 Python 2 从此无法运行或安装任何包。
固定上游 EOL 与最后版本两个时间点;不能把 2020 某一天写成所有生产系统完成迁移。
Ruby 发布资料支撑 warning 到执行的窗口;不能推断全体用户迁移完成或与 Python 3 规模相同。
Ruby 官方发布文档支撑预警与执行顺序;不能写成 Ruby 3 与 Python 3 同等规模,也不能写成 Ruby 直接借鉴 Python。
Go 文档支撑源代码合同及例外;不能说 Go 没有 breaking change。
Go 文档支撑源代码兼容承诺和例外;不能推出 Go 没有任何 breaking change,也不能说该策略由 Python 3 直接导致。
Python 资料支撑发布节奏策略;不能写成 Python 3 迁移的直接修复或从此没有不兼容变化。
PEP 602 与当前版本指南支撑流程策略和版本阶段;不能把它写成 Python 3 迁移的直接修复,也不能因此断言 Python 不再产生不兼容变化。
结尾区分公共默认路径与遗留系统;不能把 Python 2 sunset 写成所有生产系统同日迁移。
当前结尾以 2026-05-27 快照为口径;页面会更新,不能写成 Python 不再有不兼容变化。
结尾是基于已登记事实的综合判断;不把 Python 2 sunset 写成所有生产系统同日迁移,也不承诺未来没有 breaking change。
本段只负责节目识别,不把片尾文案当作 Python 2 历史事实主张。
本段是固定官网入口与告别,不承诺当前尚未通过公开门禁的材料已经发布。
没有符合条件的证据关系。
固定 Python 起源于 1989 年底的业余项目、受 ABC 与 Modula-3 影响、强调可读性与可扩展性;是 1999 年回顾,不把它当作 1989 年逐字记录
明写会破坏向后兼容,记录 Py3k warnings、backport、`2to3` 与两套发布产物的推荐迁移模型;其对 2.x 后续寿命的预期不是实际结果
固定 1.0.0 已通过多个 FTP 镜像发布,并提供 Unix、Mac、DOS 等获取路径;证明公开分发与早期跨平台采用入口,不证明用户规模
固定 1.0.0 的源码组织、文档、可移植性与 Mac port 说明;可用于从“个人脚本”转向可分发语言的早期阶段,不证明当时普及程度
用 `/` 的语义变化展示 Python 2.2 起如何以 `//`、`__future__` 和警告铺设长迁移路径;不能代表全部 Python 3 变化都采取同样策略
固定 Python 3 计划中大量删除、重命名与模型变更;是清单,不单独证明每项改动的必要性
清楚解释 `str` 同时表示文本与字节的问题,并承认团队原以为社区会更快跟上、不会再如此突然地做同规模不兼容变化;不能代表每位核心开发者
固定 print、迭代器、整数与文本 / 字节等用户可见变化;当前文档快照含后续勘误,引用历史措辞需与版本固定源码再交叉
固定 Python 2.6 于 2008-10-01 发布、Python 3.0 于 2008-12-03 发布;不证明采用情况
固定 2.7 于 2010-07-03 发布、2014 年将 EOL 从 2015 延至 2020;页面给出的动机是缓解不能迁移用户与供应商的担忧,不证明延期造成拖延
固定“不发布 Python 2.8”和官方升级路径只能到 Python 3;对迁移容易程度的判断需与实际案例交叉
固定 `--stage1` / `--stage2` 于 2013-10-23 进入代码、10-25 文档化并随 0.8.0 于 10-28 上传 PyPI;证明项目建议把安全现代化与引入 Py3 语义分开,不证明实际采用范围
固定 0.11.0 上传时间、`pip install future`、继续运行于 Python 2 的承诺,以及 `pasteurize` 从 `futurize --from3` 分离;不能把 0.11 页面等同于当前全部工作流
记录 Django 将迁移拆成框架、第三方依赖和用户应用三层,并拒绝 Python 3-only 分支与独立双版本分支;Google Groups 页面含站点包装,引用以邮件正文为准
固定核心团队选择 `six`、采用 Python 3 代码兼容 Python 2、重命名 string / unicode API,并承认真实使用测试仍不足;只代表 Django,不等于所有包维护者都采用相同策略
记录 Jinja2 安装时 `2to3` 对迭代速度和维护意愿的影响,以及 `python-modernize` / 统一源码路径;只代表 Jinja2,且具体耗时为作者自述
固定 2019 起新 feature release 只支持 Python 3、旧 Python 2 版本仍可从 PyPI 安装,并把双版本支持称为有限资源负担;不等于科学计算生态同时完成迁移
记录 2015 首次尝试大量功能损坏、2017 正式配置资源、依赖 fork、测试 / Mypy、文本字节错误与混合源码;只证明桌面客户端路径
同时列出组件、依赖、MySQL-python、boto 与 Eventlet 等阻塞,证明迁移从一开始就是依赖图问题;wiki 是 sprint 工作记录,不是完成报告
记录 2015 起迁移、过时工具链压力、百万行 / 数亿安装规模、双解释器、七个月灰度和版本 52 移除 Python 2;规模为 Dropbox 自报,不能外推所有应用
明确要求协调退出,避免发行版和独立部署者同时打包两套依赖,并把 Python 3 测试完成放在移除 Python 2 之前;只适用于 TC 治理项目
用文档、release notes、lint、构建发布、功能测试和 Python 3.6 单测定义 `python3-first` 完成口径;默认运行不等于当时已经停止支持 Python 2
固定服务、公共库 / 测试工具、requirements 三阶段退出顺序与 completion criteria,并登记 Swift / Storlets 例外;计划页不能单独证明实际完成
记录 Ussuri 完成、Tempest branchless 模型破坏稳定分支、修复方式及 Swift / Storlets 继续支持边界;发布在 OpenInfra 社区媒体,不能替代逐仓库完成审计
固定核心讨论中对 2.7 “alive”、可选维护和供应商接手含义仍不清晰;是单封回帖,不能代表最终政策或全体核心开发者
将五年延期解释为给迁移、供应商方案和 Unicode 问题留时间;证明 PSF 的后见解释,不证明延期本身造成或没有造成拖延
证明 Python 3.3 恢复 `u""`,目标是减少 Unicode-aware Python 2 应用迁移改动并扩大双版本源码交集;不等于恢复 Python 2 文本模型
将 Python 3.4 的网络安全能力回移到 2.7.9,并明确否决“只建议迁移”的替代方案;证明当时迁移障碍影响公共安全,不证明所有功能都应 backport
宣布 Python 2.7 runtime 与 Boto3 / Botocore 的关键安全更新延至至少 2021-06-01;支持范围不含第三方包,也不证明该日后实际处置
固定 Maya 默认 Python 3,但 Windows / Linux 仍可用 Python 2 模式,macOS 只保留 Python 3;只证明该商业工具和版本
记录 Python 3 下载请求一年内从约 2% 增至约 5%–6%;数据依赖 installer user-agent,镜像、CI 和请求量不等于独立用户
按 trove classifier、发布活跃度与下载门槛显示活跃 / 热门项目的 Python 3 供给明显领先总下载采用;classifier 缺失和下载偏差使百分比只能按作者口径引用
以包版本上传和 classifier 作为供给领先指标,并外推 2016-05 附近超过 Python 2;预测不是实际完成点,单包高频发布与未分类包会偏置曲线
固定 Django 2.0 只支持 Python 3.4-3.7,1.11 是最后支持 2.7 的系列;不能单独证明所有 Django 用户随即迁移
证明 Fedora 移除 `python2` 及依赖包、例外需覆盖整条依赖链并提交迁移计划;只代表 Fedora 仓库,不代表所有 Linux 发行版
固定 pip 21.0 停止支持 Python 2,展示工具退出晚于解释器 EOL;旧 pip 仍可运行,不能写成 Python 2 从此无法安装任何包
记录项目公开承诺最迟 2020 年停止 Python 2 支持,并解释共同期限如何给其他项目规划信心;当前页含后见总结,签署形成过程仍需补同期 commit / issue
固定 PSF 支持口径与迁移指引;当前快照是 EOL 后页面,不能作为早期用户态度证据
固定最后一个 Python 2 版本发布日期,并回顾 2.7 分支的安全例外;诙谐的 technical debt 表述是发布经理观点
固定 Ruby 2.7 先对 keyword argument 等行为发出弃用警告,并明确 Ruby 3 将移除自动转换;可作为“先警告再断裂”的策略例子
固定 Ruby 3 的目标、实验性 Ractor、keyword 参数分离与 `$SAFE` 移除;不能把 Ruby 3 写成 Python 3 的直接借鉴或同等规模断裂
固定 Go 1 对语言规范和标准库 API 作源代码兼容承诺,同时列出极少数必要例外;用于对照“从起点建立兼容预算”,不证明 Go 没有任何 breaking change
记录 Python 采用年度 feature release 的动机,包括更小的单次变化与更可预测的升级节奏;不能把它写成 Python 3 断裂的直接修复
固定当前版本分支、feature / bugfix / security 阶段的官方说明,用于结尾交代 Python 现在如何管理版本;页面会更新,不能当作历史 2008 政策证据