查看原文
其他

快来查收 KCL 社区开源快讯 | 云原生模型、语言和工具链更新速递!

KCL 团队 规模化云原生运维 2023-12-28

双周同步开源进展

欢迎加入 KCL 社区进行互动~


KCL 是一个 CNCF 基金会托管的基于约束的记录及函数语言,期望通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。

本栏目将会双周更新 KCL 语言社区最新动态,包括功能、官网更新和最新的社区动态等,帮助大家更好地了解 KCL 社区!

KCL 官网:https://kcl-lang.io

|内容概述|

感谢所有贡献者过去两周 (2023 11.09 - 11.23) 的杰出工作,以下是重点内容概述

📦 模型更新

  • KCL 模型数量新增至 200 个,主要新增与 PodRBAC 相关的校验模型及 Kubernetes 1.14-1.28 版本的模型参考文档
  • 可以在 Artifact Hub 中搜索浏览到所有模型的文档及使用方式: https://artifacthub.io/packages/search?org=kcl&sort=relevance&page=1

💬 语言更新

  • 体验改进
    • 优化配置代码块的语法缩进检查,不再强制报错
    • 支持通过文件路径通配符作为编译入口
    • 支持使用 Bazel 一键下载并在沙盒中安全运行 KCL 代码
  • 错误修复
    • 修复部分场景字典类型的类型推导错误
    • 修复 Schema 参数数量的检查

🔧 工具链更新

  • 测试工具更新
    • 支持使用 KCL 函数编写单元测试并使用工具执行测试
    • 支持使用正则表达式过滤待测试用例
    • 支持单元测试快速失败功能
  • 导入工具更新
    • 修复 OpenAPI patterns 到正则匹配表达式的生成: https://github.com/kcl-lang/kcl-openapi/pull/70
    • 修复 OpenAPI minItems/maxItems 到 KCL 字段长度校验规则的生成: https://github.com/kcl-lang/kcl-openapi/pull/69
    • 修复 0 或空字符串为默认值的生成: https://github.com/kcl-lang/kcl-openapi/pull/69
    • 修复 Kubernetes CRD 到 KCL Package 转换中包名的生成为:${apiVersion}_${kind}https://github.com/kcl-lang/kcl-openapi/pull/68
  • 包管理工具更新
    • 新增 update 命令用于自动更新本地依赖: https://github.com/kcl-lang/kpm/pull/212

💻 IDE 更新

  • 体验改进
    • 支持包管理工具引入的外部包依赖 import 语句补全
  • 错误修复
    • 修复函数参数未定义类型错误显示位置

🏄 API 更新

  • 新增 KCL 单元测试 API: https://github.com/kcl-lang/kcl/pull/904
  • 新增 KCL 符号重命名 API: https://github.com/kcl-lang/kcl/pull/890

🔥 架构升级

  • KCL 设计并重构了新的语义模型以及支持最近符号查找和符号语义信息查询 API
  • IDE 补全,跳转和悬停等功能实现迁移至新语义模型,显著降低 IDE 功能开发难度和代码量

🚀 性能提升

  • KCL 编译器支持语法增量解析以及语义增量检查,大部分场景提升 KCL 编译构建和 IDE 插件使用性能 5-10 倍

|特别鸣谢|

以下排名不分先后

  • 感谢 @cr7258 对 KCL 模型库以及 KCL 文档的贡献 🙌
    • https://github.com/kcl-lang/kcl-lang.io/pull/203
    • https://github.com/kcl-lang/kcl-lang.io/pull/209
    • https://github.com/kcl-lang/kcl-lang.io/pull/210
    • https://github.com/kcl-lang/kcl-lang.io/pull/211
    • https://github.com/kcl-lang/modules/pull/67
  • 感谢 @XiaoK29 为 KCL IDE 的悬停和引用查找功能代码架构重构以及 KCL 文档的贡献 🙌
    • https://github.com/kcl-lang/kcl/pull/887
    • https://github.com/kcl-lang/kcl/pull/899
    • https://github.com/kcl-lang/kcl-lang.io/pull/205
  • 感谢 @MeenuyD, @negz 对 Crossplane KCL Composition Functions 集成的讨论与支持 🙌
    • https://github.com/kcl-lang/kcl/issues/885
  • 感谢 @kolloch 对 Bazel KCL 构建规则脚本的宝贵反馈 🙌
    • https://github.com/kcl-lang/rules_kcl/pull/2
  • 感谢 @陆云, @Even Solberg, @Prahalad Ramji @Matt Gowie, @ddh 和 @mouuii 在使用推广 KCL 过程中的交流与宝贵反馈 🙌


|精选更新|

在 Artifact Hub 上检索 KCL 代码包及云原生模型

  • 通过 k8s 模型编写或者校验 Kubernetes 配置


  • 通过 Open Application Model (OAM) 开放应用模型配合 KubeVela 控制器进行应用发布与运维

  • 查找 KCL 代码库如 jsonpatch 进行配置操作


  • 通过引入 KusionStack Modules 模型生态并配合 KusionStack 增强客户端的应用交付体验:https://github.com/KusionStack/catalog

想了解更多?🤔️ 后续我们会通过一系列文章讲解各个模型更具体使用场景以及工作流程,敬请期待! 此外,200+ 模型的源代码位于 https://github.com/kcl-lang/modules,欢迎社区的小伙伴进行共建。❤️


|近期活动|

双周社区会议预告

主题:KCL + KusionStack 社区双周会

时间:2023/11/23 20:00-20:45 (GMT+08:00) 中国标准时间 - 北京(重复周期:每双周周四 20:00-20:45

点击链接入会: https://meeting.tencent.com/dm/Hc6sNpqTWnPb,或添加至腾讯会议列表:778-2381-6338

KCD 深圳站开启报名

@你有一封邀请函请查收丨KCD 深圳站报名正式开启!


|其他资源|

❤️ 感谢所有 KCL 用户和社区小伙伴在社区中提出的宝贵反馈与建议。预计 11 月底我们会正式发布 KCL v0.7 新版本,敬请期待!

更多其他资源请参考:

  • KCL 网站: https://kcl-lang.io/
  • KusionStack 网站: https://kusionstack.io/

  • KCL 2023 路线规划: https://kcl-lang.io/docs/community/release-policy/roadmap
  • KCL v0.7.0 Milestone: https://github.com/kcl-lang/kcl/milestone/7
  • KCL v0.8.0 Milestone: https://github.com/kcl-lang/kcl/milestone/8
  • KCL Github Issues: https://github.com/kcl-lang/kcl/issues
  • KCL Github Discussion: https://github.com/orgs/kcl-lang/discussions
  • 👉 戳链接加入 KCL 社区: https://github.com/kcl-lang/community


|往期双周报|


KCL 社区最新动态速递 | IDE 插件支持引用查找、包管理集成 ArtifactHub

KCL 社区最新动态速递 | 大量体验提升!IDE 插件新增所处补全、更流畅的包管理和开箱即用模型

KCL 社区开源双周报 | 更多模型、 IDE 插件、包管理支持!

KCL 社区开源双周报 | 版本更新及平台工程社区会议预告

KCL 社区开源双周报 | KCL v0.5.6 版本正式发布

KCL 社区开源双周报 | KCL 0.5.1 和 0.5.2 版本正式发布

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存