Skip to content

Norm 0.19 ​

Norm 0.19 将单文件应用与 GitHub 包管理合并为同一条用户路径:一个 .norm 文件声明模块、依赖、业务类型和应用入口,norm web.norm 自动解析、编译并运行。

单文件应用 ​

  • Module module() 与 Application application() 由声明内容识别,不依赖 module.norm 或 application.norm 文件名;
  • CLI 与 Language Server 通过同一个 ProjectLoader 构建模块图,因此运行、诊断、补全和导航使用一致依赖语义;
  • 服务生命周期仍由 std.application.Application 管理,CLI 不包含框架特例。

GitHub 包仓库 ​

  • repository: "github" 通过 normlanguage/registry 定位一个 Module 的所有者仓库;
  • 每个 Module 在独立仓库以 v<version> 不可变 Release 发布 NAR 与 SHA-256,下载后使用内容摘要验证并原子写入缓存;
  • Java Binding 的根制品和传递依赖继续由内置 Maven Resolver 获取,用户不需要 Maven、Gradle、POM 或锁文件;
  • Norm 主仓库只保留语言、工具链和消费示例,不再保存 Java Binding 包源码或集中 NAR 仓库。

自包含运行时 ​

  • Windows CLI 发布为单个 norm.exe,可以直接运行;norm.exe setup 会按用户安装并自动配置 PATH;
  • Windows、Linux 和 macOS CLI 内部统一使用 norm/bin、norm/lib、norm/runtime,不要求用户安装 Java;
  • CLI、Language Server、VSCode 和 Java Binding 使用同一 JVM 执行模型,独立包可以动态引入发布时尚不存在的 JAR 与 Annotation Processor;
  • 发布验收会通过最终目录运行完整语言程序集,并从 GitHub Registry 与 Maven 仓库真实加载 Commons Lang binding。

Windows 从旧版压缩包升级时,下载新的 norm.exe 并运行一次 norm.exe setup,不再手动维护 PATH。

可直接运行的契约见 Micronaut 单文件应用,包发布与所有权模型见包管理器。

Norm 0.25