Skip to main content

· 阅读需要 1 分钟

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

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

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

特别鸣谢

感谢过去两周所有的社区参与者,以下排名不分先后

  • 感谢 @briheet 对 kcl.mod 文件格式化输出的贡献。🙌
  • 感谢 @Vishalk91-4 对 KCL tree-sitter 的持续贡献。🙌
  • 感谢 @liangyuanpeng 对 KCL cli, kpm 和 modules 等仓库 CI 的持续贡献。🙌
  • 感谢 @kukacz 对 KCL 模型库的持续贡献。🙌
  • 感谢 @Moulick 对 Crossplane KCL Function 的贡献。🙌
  • 感谢 @stmcginnis 对 KCL 文档的贡献。🙌
  • 感谢 @YvanDaSilva 对 KCL Nix Package 的贡献。🙌
  • 感谢 @DavidChevallier 对 KCL 模型库的持续贡献。🙌
  • 感谢 @Manoramsharma 对 KCL 包管理工具依赖别名特性和外部 Git 依赖功能的贡献。🙌
  • 感谢 @NishantBansal2003, @varshith257 对 KCL 包管理工具三方依赖 checksum 检查的调研和贡献。🙌
  • 感谢 Harsh4902, @Gmin2, @shishir-11, @RehanChalana 对 Intellij IDE KCL LSP 插件的调研和贡献。🙌
  • 感谢 @Shruti78 对 KCL 文档的贡献。🙌
  • 感谢 @jianzs 对 KCL Playground 的贡献。🙌
  • 感谢 @vinayakjaas 对 KPM 错误信息的贡献。🙌
  • 感谢 @wmcnamee-coreweave, @dennybaa, @bozaro, @eshepelyuk, @liangyuanpeng, @vietanhtwdk, @hoangndst, @sschne, @patpicos, @metacoma, @YvanDaSilva, @ovk, @karlderkaefer, @kukacz, @Matthew Hodgkins, @Christopher Haar, @Gao Jun 和 @Zack Zhang 等在近段时间使用 KCL 过程中提供的宝贵建议与反馈 🙌

内容概述

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

📦️ 模型更新

  • cluster-api-provider-azure 更新至 v1.16.0
  • cluster-api 更新至 v1.7.4
  • konfig 更新至 v0.6.0
  • karmada 更新至 v0.1.1
  • 新增模型列表
    • fluxcd-kcl-controller
    • fluxcd-kustomize-controller
    • fluxcd-helm-controller
    • fluxcd-source-controller
    • fluxcd-image-reflector-controller
    • fluxcd-image-automation-controller
    • fluxcd-notification-controller
    • kwok

🏄 语言更新

  • 修复 as 关键字在外部包存在时类型转换的错误
  • 修复在 lambda 函数中 config 到 schema 的类型检查错误
  • 新增 file.current() 函数用以获取当前运行 KCL 文件的全路径
  • 赋值语句支持形如 _config["key"] = "value"_config.key = "value"的语法对配置进行原地修改

💻 IDE 更新

  • 修复 Schema 使用 : 合并运算符定义属性实例化时的补全
  • 修复在 Schema Doc 中非预期的补全
  • 修复 kcl-language-server 命令行版本显示问题
  • 支持 NeoVim, VS Code 等插件禁用保存时格式化配置
  • 支持 Schema 实例化时区分属性和值语义的细粒度补全
  • KCL NeoVim 插件移除默认的 key bindings, 支持用户自定以

📬️ 工具更新

  • kcl test 测试工具支持测试用例中的 print 函数输出
  • 修复 kcl import 在 Kubernetes CRD 和 OpenAPI 导入 Schema 的编译错误
  • 优化 kcl mod init 的输出格式

⛵️ API 更新

  • 修复 KCL C API 非预期的数据格式化错误
  • OverrideFile API 支持使用 : 合并运算符在编译时对配置进行自动合并修改

🔥 SDK 更新

  • KCL Go SDK 支持通过 build tags 区分以 RPC 模式还是 CGO 模式与 KCL 核心 Rust API 进行交互,默认为 CGO 模式,可以通过 -tags rpc 开启 RPC 模式
  • KCL 多语言 SDK 发布 v0.10.0 预览版本
  • 新增 KCL Kotlin 和 Swift 语言初版 SDK,尚未正式发布依赖包,欢迎参与贡献

其他资源

❤️ 查看 KCL 社区 加入我们。

更多其他资源请参考:

· 阅读需要 1 分钟

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

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

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

特别鸣谢

感谢过去两周所有的社区参与者,以下排名不分先后

  • 感谢 @Vishalk91-4 对 KCL tree-sitter 的贡献。🙌
  • 感谢 @liangyuanpeng 对 kind, kubeadm 等 KCL 三方库的持续贡献。🙌
  • 感谢 @DavidChevallier 对 cilium 等 KCL 三方库的持续贡献。🙌
  • 感谢 @liangyuanpeng 对 KCL CLI 项目的持续贡献。🙌
  • 感谢 @eshepelyuk, @haarchri, @liangyuanpeng, @logo749, @bilalba, @borgius, @patrick-hermann-sva, @ovk, @east4ming, @wmcnamee-coreweave, @steeling, @sschne, @Jacob Colvin, @Richard Holmes, @Christopher Haar, @Yvan da Silva, @Uladzislau Maher, @Sergey Ryabin, @Lukáš Kubín, @Alexander Fuchs, @Divyansh Choukse 等在近段时间使用 KCL 过程中提供的宝贵建议与反馈 🙌

内容概述

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

📦️ 三方库更新

  • 新增三方库 kind 支持集群的创建与管理。
  • 三方库 kubeadm 更新部分字段。
  • 三方库 external-secrets 版本更新到 0.1.1。
  • 三方库 cilium 版本更新至 0.1.2, 去掉了 regex.match 的重复声明。
  • Konfig 大库模型添加更多资源模型的示例。
  • Konfig 添加额外的pod元数据标签示例。

🏄 语言更新

  • 赋值语句中被赋值对象支持属性访问和索引访问。
  • 修复了 KCL 嵌套多层 config 块语义检查时间过长的问题。
  • 去掉了语义解析器中的 unwrap() 语句, 减少 panic 的问题。
  • 修复了带有 list index 的字段合并运算的计算错误。

💻 IDE 更新

  • 修复了 IDE 中 schema doc 的错误补全。
  • 修复了 IDE 中 unification 块中定义的属性无法自动补全的问题。
  • KCL vim 插件更新安装文档。
  • KCL vscode 插件移除了 yaml 文件的响应。
  • KCL vscode 插件补充了 Apache 2.0 License

📬️ 工具链更新

  • 包管理工具修复了编译入口无法识别包相对路径 ${KCL_MOD} 的问题。
  • 包管理工具将 plainHttp 选项调整为可选。
  • 包管理工具修复了编译入口识别错误根目录的问题。
  • 包管理工具添加登录凭证的缓存,以降低安全风险。
  • 包管理工具修虚了由于虚拟编译入口导致的编译失败问题。
  • 包管理工具修复了默认依赖在 kcl.mod 中的缺失。
  • 包管理工具修复了 vendor path 计算错误导致的三方库重新下载的问题。
  • 包管理工具修复了 push https 协议 OCI registry 失败的问题。
  • KCL tree-sitter 新增 sequence operations, selector 支持。

⛵️ API 更新

  • 重构了 override_file API 的错误信息。

🔥 SDK 更新

  • 新增 KCL C/C++ 语言 SDK。
  • 新增了 Go, Java, Python, Rust, .NET, C/C++ 等多语言 API Spec,相关文档,测试用例和使用案例。
  • 代码结构调整,go 相关代码移动的 go 文件目录中。

📚️ 文档更新

其他资源

❤️ 查看 KCL 社区 加入我们。

更多其他资源请参考: