运行时整合概览¶
本文汇总当前代码库与文档已落地的四次主要更新。
历史总结页: 这页用于解释发生了哪些变化,不属于新应用的默认入门路径。
1. IoC/DI 整合¶
当前容器模型以 ApplicationContext 为中心,并通过 cullinan.core 作为公开入口。
变更内容¶
cullinan.core成为容器、生命周期与上下文 API 的公开门面ApplicationContext.refresh()/shutdown()成为主要生命周期转换点cullinan.core.container.*下的兼容模块现在转发到同一套核心实现- 旧构造器注入辅助 API 仅保留兼容意义,不再是推荐模型
当前应使用¶
@service、@controllerInject()与InjectByName()- 需要显式注册或做集成时直接使用
ApplicationContext
2. Application-first 运行时¶
Cullinan 现在把显式运行时编排放在 cullinan.application 中,
并把最短公开启动路径通过顶层 cullinan 重新导出。
变更内容¶
Application.run(...)会构建、校验、预热并激活声明的根模块@module用于声明模块导入、包归属、warmup hooks 与 health checks- 组件发现会从装饰器元数据重建待注册项,而不再依赖一次性的导入时机
- 当旧 runtime 进入 draining 时,
Application.current()会优先返回请求绑定的应用快照
迁移含义¶
新的启动代码应优先使用 from cullinan import application, configure, run。
底层容器编排仍可直接使用 ApplicationContext;当你明确需要显式运行时编排时,
再进入 cullinan.application,而不是把它当成默认开发者路径。
3. Web Runtime 整合¶
Web 栈已围绕 cullinan.web.gateway 中的传输无关运行时完成重组。
变更内容¶
WebRequest、WebResponse、WebAdapter定义了当前公开 HTTP 抽象Router、Dispatcher、MiddlewarePipeline、ExceptionHandler统一经由 gateway 门面暴露cullinan.web.gateway.web_core承载共享请求/响应模型- 适配器独立在
cullinan.transport.adapter中(TornadoAdapter、ASGIAdapter) - 运行后端选择现在采用引擎中立的
auto/asgi/tornado,而不再把 Tornado 作为默认的应用叙事
迁移含义¶
新代码应直接使用统一后的 Web Runtime 名称;旧的 request / response / adapter 名称不再是主要公开接口。
4. 测试体系对齐¶
仓库测试工作流仍在向 pytest 收敛,而新的 application-model 与 adapter 覆盖 已经进入常规可收集测试。
变更内容¶
- 唯一正式入口:
.venv\Scripts\python -m pytest - 测试发现规则由
pytest.ini统一定义 tests/下按主题组织测试- 新增和刷新后的覆盖统一使用
tests/core、tests/integration下的 pytest 测试 - 示例回归与公开边界覆盖现在也都进入常规 pytest 套件
当前目录¶
tests/coretests/ditests/webtests/integrationtests/regressiontests/compat