1-
2-
3-
4-
5-
61---
72slug : 2024-03-04-kcl-0.8.0-release
8- title: KCL v0.8.0 重磅发布 - 面向云原生场景更完善的生态模型、语言和工具链
3+ title : 链接世界,无限可能 - KCL v0.8.0 融汇社区生态
94authors :
105 name : KCL Team
116 title : KCL Team
@@ -26,12 +21,6 @@ KCL 团队很高兴地宣布 **KCL v0.8.0 新版本现在已经可用**!本次
2621
2722## 语言更新
2823
29- ### 😸 新增 Linux arm64 版本
30-
31- KCL 的 Release 产物中新增了对 Linux arm64 平台的支持。
32-
33- 可以在 [ KCL Release Page] ( https://github.com/kcl-lang/kcl/releases ) 中找到后缀为 ` linux-arm64 ` 的压缩包。
34-
3524### 🔧 诊断信息的优化
3625
3726KCL 语法在 if 块中使用的是 ` elif ` 关键字,而不是 ` else if ` 。
@@ -168,28 +157,77 @@ name = "kcl"
168157three = hello.add(1,2) # 3
169158` ` `
170159
160+ # ## 😸 新增 Linux arm64 版本
161+
162+ KCL 的 Release 产物中新增了对 Linux arm64 平台的支持。
163+
164+ 可以在 [KCL Release Page](https://github.com/kcl-lang/kcl/releases) 中找到后缀为 ` linux-arm64` 的压缩包。
165+
171166# ## 🏄 SDK & API 更新
172167
168+ # ### Rust SDK
169+
170+ KCL Rust SDK 提供了一系列的 API,可以用于 KCL 文件的编译、校验、测试和格式化代码等操作。
171+
172+ [KCL Rust SDK: https://github.com/kcl-lang/lib](https://github.com/kcl-lang/lib)
173+
174+ # ### Java SDK
175+
176+ KCL Java SDK 新增语法树、作用域、符号等语法语义结构定义及相关查询 API。
173177
174- TODO
178+ # ### Go SDL 更新
179+
180+ - KCL Doc 工具支持输出为 OpenAPI 格式。
181+ - 增加 Parse 过程相关 API。
182+
183+ # ### API 更新
184+
185+ - 新增语法和语义分析 API 用于对 KCL 代码进行分析。
186+ - 新增构建二进制产物 API 用于缓存编译结果。
187+ - 新增运行二进制产物 API 用于直接运行编译结果,避免重复编译并提升性能。
188+ - 新增代码生成 API 以编程方式实现 KCL 代码生成而不是编写复杂的模版。
175189
176190# ## 🐞 其他更新及错误修复
177191
178- TODO
192+ - 修复了 KCL CLI 使用编译参数 -S 可能会导致的编译错误
193+ - 修复了 kcl fmt 工具对 lambda 表达式进行格式化时,结尾增加一个空行的错误。
194+ - 修复 Schema Doc 补全代码片段错误
195+ - 优化非预期 token 的语法错误提示
196+ - 去除 Schema 对象内部非预期的内置类型属性通过 print 输出
197+ - 修复非预期的字典生成表达式中的 key 与循环变量相同时的变量计算
198+ - 修复 schema 内部诸如 " $if " 的字符串标识符定义找不到的错误
179199
180200# # IDE & 工具链更新
181201
182202# ## IDE 更新
183203
184- 体验改进
185- 支持增量解析和异步编译功能,提升性能
186- 错误修复
187- 修复 assert 语句中字符串插值变量不能跳转的异常
188- 修复了字符串中异常触发函数补全的异常
189- 修复 import 语句别名语义检查和补全的异常
190- 修复了 schema 中 check 表达式补全的异常
204+ # ### IDE 语义级别的高亮增强
205+
206+ KCL IDE 高亮之前仅支持 KCL 语法高亮,如下图所示:
207+
208+ ! [](/img/blog/2024-01-18-biweekly-newsletter/old-ide.png)
209+
210+ 我们今年逐步启用了新的 KCL 语义架构模型,在新语义架构的支撑下,KCL IDE 支持语义级别的高亮,在语义上有关联的代码会显示相同的高亮。
191211
192- TODO
212+ ! [](/img/blog/2024-01-18-biweekly-newsletter/new-ide.png)
213+
214+ 更多关于 KCL 语义架构模型的内容,参考:
215+ [KCL 高效语义模型技术揭秘:实现快速编译与增强 IDE 支持](https://kcl-lang.io/zh-CN/blog/2023-12-09-kcl-new-semantic-model)
216+
217+ # ### IDE 支持增量解析和异步编译功能
218+
219+ IDE 通过 KCL 新语义模型支持增量解析和异步编译功能,提升了编译速度和编写体验。
220+
221+ 更多内容详见 [https://kcl-lang.io/zh-CN/blog/2023-12-09-kcl-new-semantic-model](https://kcl-lang.io/zh-CN/blog/2023-12-09-kcl-new-semantic-model)
222+
223+ # ### IDE 问题修复
224+
225+ - 修复 assert 语句中字符串插值变量不能跳转的异常
226+ - 修复了字符串中异常触发函数补全的异常
227+ - 修复 import 语句别名语义检查和补全的异常
228+ - 修复了 schema 中 check 表达式补全的异常
229+ - 修复了嵌套 schema 定义中补全错误的问题
230+ - 修复了部分悬停信息缺失的问题
193231
194232# ## 验证工具更新
195233
@@ -251,6 +289,22 @@ kcl run <git url>
251289
252290# ## KCL 包管理工具
253291
292+ # ### KCL 包管理支持通过 commit 添加 git 依赖
293+
294+ KCL 包管理工具增加了通过 commit 来添加 git 三方库依赖的功能。以 https://github.com/KusionStack/catalog 为例,添加 commit 为 a29e3db 的版本作为依赖。可以通过编辑 kcl.mod 文件中的依赖或者命令行直接添加。
295+
296+ 编辑 kcl.mod 文件内容如下:
297+
298+ ` ` `
299+ [dependencies]
300+ catalog = { git = " https://github.com/KusionStack/catalog.git" , commit = " a29e3db" }
301+ ` ` `
302+ 或者通过命令行添加:
303+
304+ ` ` `
305+ kcl mod add -git https://github.com/KusionStack/catalog.git -commit a29e3db
306+ ` ` `
307+
254308# ### KCL 包管理工具支持三方库名称带有“-”
255309
256310KCL 包管理工具支持三方库名称中带有“-”,KCL 包管理工具会自动将 “-” 替换为 “_”。
@@ -312,6 +366,29 @@ spec:
312366
313367更多内容详见: https://github.com/kcl-lang/codeql-kcl
314368
369+ # # 模型更新
370+
371+ KCL 模型数量新增至 303 个,主要新增与 Crossplane Provider 相关的模型和与 JSON 合并操作相关的库
372+
373+ - KCL JSON Patch 库:https://artifacthub.io/packages/kcl/kcl-module/jsonpatch
374+ - KCL JSON Merge Patch 库:https://artifacthub.io/packages/kcl/kcl-module/json_merge_patch
375+ - KCL Kubernetes Strategy Merge Patch 库:https://artifacthub.io/packages/kcl/kcl-module/strategic_merge_patch
376+ - KCL Crossplane 及 Crossplane Provider 系列模型:https://artifacthub.io/packages/search? org=kcl& sort=relevance& page=1& ts_query_web=crossplane
377+
378+ - Kubenetes 1.29 版本: https://artifacthub.io/packages/kcl/kcl-module/k8s/1.29.0
379+
380+ - 新增 Podinfo 应用配置模型,支持设置外部动态参数如 replicas 等,可以直接通过一条命令渲染 Kubernetes 资源配置,并且可以在此模型的基础上修改并自定义资源模版
381+
382+ ` ` `
383+ kcl run oci://ghcr.io/kcl-lang/podinfo -D replicas=2
384+ ` ` `
385+
386+ - JSON Schema 库发布 0.0.4 版本,修复类型定义错误, 可以执行如下命令更新或添加依赖
387+
388+ ` ` `
389+ kcl mod add jsonschema:0.0.4
390+ ` ` `
391+
315392# # 其他更新
316393
317394完整更新和错误修复列表详见: https://github.com/kcl-lang/kcl/compare/v0.7.0...v0.8.0
@@ -336,10 +413,22 @@ KCL 网站新增 KCL v0.7.0 文档内容并支持版本化语义选项,目前
336413
337414感谢社区的小伙伴在 KCL v0.8.0 版本中的贡献,以下排名不分先后
338415
416+ - 感谢 @professorabhay 支持 KCL 测试 Diff 功能 🙌
417+ https://github.com/kcl-lang/kcl/issues/940
418+ - 感谢 @jakezhu9 同学对 kcl import 工具的持续贡献 🤝
419+ - 感谢 @octonawish-akcodes 对 KCL 代码清理和 FAQ 文档的持续贡献 🙌
420+ - 感谢 @satyazzz123 对 KRM KCL 支持读取环境变量功能的贡献 🙌
421+ - 感谢 @AkashKumar7902 对 KCL 包管理工具功能的贡献 🙌
422+ - 感谢 @UtkarshUmre 对 KCL linux-arm64 构建 CI 的贡献 🙌
423+ - 感谢 @octonawish-akcodes 和 @d4v1d03 对 KCL FAQ 文档和 KCL IDE 功能的持续贡献 🙌
424+ - 感谢 @octonawish-akcodes 对 Ansible KCL Module 的贡献
425+ - 感谢 @AkashKumar7902 和 @Vanshikav123 对 KCL 包管理工具功能的贡献 🙌
426+ - 感谢 @StevenLeiZhang 对 KCL 文档和 KCL 插件的贡献
427+ - 感谢 @patrycju, @Callum Lyall, @Even Solberg, @Matt Gowie, @ShiroDN, @FLAGLORD, @YiuTerran, @flyinox, @steeling, @Anoop, @Phillip Neumann 和 @Even Solberg, @AdmiralNemo,@Phillip Neumann,@Naxe, @steeling, @steeling, @rozaliev, @CloudZero357, @martingreber, @az, @Art3mK,@AdmiralNemo, @Erick, @TheChinBot, @Evgeny Shepelyuk, @yonas, @steeling, @vtomilov, @Fdall, @CloudZero357, @bozaro, @starkers, @MrGuoRanDuo 和 @FLAGLORD 等在近段时间使用 KCL 过程中提供的宝贵建议与反馈 🙌
339428
340429# # 下一步计划
341430
342- 感谢所有 KCL 用户和社区小伙伴在此次版本更新过程中提出的宝贵反馈与建议。预计 2024 年 2 月,我们将发布 KCL v0.9.0 版本,更多详情请参考 KCL 2024 路线规划 和 KCL v0.9.0 Milestone,如果您有更多的想法和需求,欢迎在 KCL Github 仓库发起 Issues 或讨论,也欢迎加入我们的社区进行交流 🙌 🙌 🙌
431+ 感谢所有 KCL 用户和社区小伙伴在此次版本更新过程中提出的宝贵反馈与建议。预计 2024 年 5 月,我们将发布 KCL v0.9.0 版本,更多详情请参考 KCL 2024 路线规划 和 KCL v0.9.0 Milestone,如果您有更多的想法和需求,欢迎在 KCL Github 仓库发起 Issues 或讨论,也欢迎加入我们的社区进行交流 🙌 🙌 🙌
343432
344433更多其他资源请参考:
345434
0 commit comments