11---
22slug : 2024-03-04-kcl-0.8.0-release
3- title : 链接世界,无限可能 - KCL v0.8.0 融汇社区生态
3+ title : KCL v0.8.0 重磅发布 - 融汇社区生态
44authors :
55 name : KCL Team
66 title : KCL Team
@@ -21,6 +21,10 @@ KCL 团队很高兴地宣布 **KCL v0.8.0 新版本现在已经可用**!本次
2121
2222## 语言更新
2323
24+ ### 🚗 语法语义更新
25+
26+ 在 KCL v0.8.0 版本中去除了 Schema 对象内部非预期的内置类型属性` __settings__ ` 通过 print 输出。
27+
2428### 🔧 诊断信息的优化
2529
2630KCL 语法在 if 块中使用的是 ` elif ` 关键字,而不是 ` else if ` 。
@@ -94,7 +98,7 @@ age = _a.age
9498
9599编译结果如下所示:
96100
97- ` ` ` shell
101+ ` ` ` yaml
98102name: John
99103age: 10
100104` ` `
@@ -165,7 +169,7 @@ KCL 的 Release 产物中新增了对 Linux arm64 平台的支持。
165169
166170# ## 🏄 SDK & API 更新
167171
168- # ### Rust SDK
172+ # ### Rust SDK
169173
170174KCL Rust SDK 提供了一系列的 API,可以用于 KCL 文件的编译、校验、测试和格式化代码等操作。
171175
@@ -182,6 +186,7 @@ KCL Java SDK 新增语法树、作用域、符号等语法语义结构定义及
182186
183187# ### API 更新
184188
189+ - 新增 json/yaml 验证 API 用来验证 json 和 yaml 文件。
185190- 新增语法和语义分析 API 用于对 KCL 代码进行分析。
186191- 新增构建二进制产物 API 用于缓存编译结果。
187192- 新增运行二进制产物 API 用于直接运行编译结果,避免重复编译并提升性能。
@@ -192,10 +197,11 @@ KCL Java SDK 新增语法树、作用域、符号等语法语义结构定义及
192197- 修复了 KCL CLI 使用编译参数 -S 可能会导致的编译错误
193198- 修复了 kcl fmt 工具对 lambda 表达式进行格式化时,结尾增加一个空行的错误。
194199- 修复 Schema Doc 补全代码片段错误
200+ - 修复 Schema 对象必选属性递归检查错误
201+ - 提升 Schema 索引签名类型检查健壮性
202+ - 修复 Schema 内部诸如 " $if " 的字符串标识符定义找不到的错误
195203- 优化非预期 token 的语法错误提示
196- - 去除 Schema 对象内部非预期的内置类型属性通过 print 输出
197204- 修复非预期的字典生成表达式中的 key 与循环变量相同时的变量计算
198- - 修复 schema 内部诸如 " $if " 的字符串标识符定义找不到的错误
199205
200206# # IDE & 工具链更新
201207
@@ -205,29 +211,47 @@ KCL Java SDK 新增语法树、作用域、符号等语法语义结构定义及
205211
206212KCL IDE 高亮之前仅支持 KCL 语法高亮,如下图所示:
207213
208- ! [](/img/blog/2024-01-18-biweekly-newsletter/old-ide.png)
214+ ! [old-ide ](/img/blog/2024-01-18-biweekly-newsletter/old-ide.png)
209215
210216我们今年逐步启用了新的 KCL 语义架构模型,在新语义架构的支撑下,KCL IDE 支持语义级别的高亮,在语义上有关联的代码会显示相同的高亮。
211217
212- ! [](/img/blog/2024-01-18-biweekly-newsletter/new-ide.png)
218+ ! [new-ide ](/img/blog/2024-01-18-biweekly-newsletter/new-ide.png)
213219
214220更多关于 KCL 语义架构模型的内容,参考:
215221[KCL 高效语义模型技术揭秘:实现快速编译与增强 IDE 支持](https://kcl-lang.io/zh-CN/blog/2023-12-09-kcl-new-semantic-model)
216222
223+ # ### 新增 builtin 方法的补全
224+
225+ KCL IDE 支持 builtin 方法的补全,如下图所示:
226+
227+ ! [builtin-completion](/img/blog/2024-03-04-kcl-0.8.0-release/builtin-ide.gif)
228+
229+ # ### 增加变量引用错误时的快速修复功能
230+
231+ KCL IDE 支持变量引用错误时的快速修复功能,如下图所示:
232+
233+ ! [quick-fix](/img/blog/2024-03-04-kcl-0.8.0-release/quick-fix.gif)
234+
217235# ### IDE 支持增量解析和异步编译功能
218236
219237IDE 通过 KCL 新语义模型支持增量解析和异步编译功能,提升了编译速度和编写体验。
220238
221239更多内容详见 [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)
222240
223- # ### IDE 问题修复
241+ # ### IDE LSP 问题修复
224242
225243- 修复 assert 语句中字符串插值变量不能跳转的异常
226244- 修复了字符串中异常触发函数补全的异常
245+ - 修复了字符串后跟注释中补全错误的问题
246+ - 修复了 schema 内部属性符号不能跳转的问题
227247- 修复 import 语句别名语义检查和补全的异常
228248- 修复了 schema 中 check 表达式补全的异常
229249- 修复了嵌套 schema 定义中补全错误的问题
230250- 修复了部分悬停信息缺失的问题
251+ - 修复不同语法补全符号类型不统一的问题
252+ - 区分 Schema 类型和实例补全符号
253+ - 统一 Schema 注释文档补全的格式
254+ - 修复了配置块内部 if 语句符号不能跳转和补全的问题
231255
232256# ## 验证工具更新
233257
@@ -291,17 +315,18 @@ kcl run <git url>
291315
292316# ### KCL 包管理支持通过 commit 添加 git 依赖
293317
294- KCL 包管理工具增加了通过 commit 来添加 git 三方库依赖的功能。以 https://github.com/KusionStack/catalog 为例,添加 commit 为 a29e3db 的版本作为依赖。可以通过编辑 kcl.mod 文件中的依赖或者命令行直接添加。
318+ KCL 包管理工具增加了通过 commit 来添加 git 三方库依赖的功能。以 < https://github.com/KusionStack/catalog> 为例,添加 commit 为 a29e3db 的版本作为依赖。可以通过编辑 kcl.mod 文件中的依赖或者命令行直接添加。
295319
296320编辑 kcl.mod 文件内容如下:
297321
298- ` ` `
322+ ` ` ` toml
299323[dependencies]
300324catalog = { git = " https://github.com/KusionStack/catalog.git" , commit = " a29e3db" }
301325` ` `
326+
302327或者通过命令行添加:
303328
304- ` ` `
329+ ` ` ` shell
305330kcl mod add -git https://github.com/KusionStack/catalog.git -commit a29e3db
306331` ` `
307332
@@ -358,40 +383,40 @@ spec:
358383 name: kcl-deployment
359384` ` `
360385
361- 更多内容详见: https://kcl-lang.io/zh-CN/blog/2024-02-01-biweekly-newsletter/
386+ 更多内容详见: < https://kcl-lang.io/zh-CN/blog/2024-02-01-biweekly-newsletter/>
362387
363388# ## CodeQL KCL 工具
364389
365390初步支持 CodeQL KCL dbschema 定义以及对 KCL 语法语义进行数据提取,并可通过 CodeQL 进行数据查询对 KCL 代码进行静态分析和扫描,提升代码安全。
366391
367- 更多内容详见: https://github.com/kcl-lang/codeql-kcl
392+ 更多内容详见: < https://github.com/kcl-lang/codeql-kcl>
368393
369394# # 模型更新
370395
371396KCL 模型数量新增至 303 个,主要新增与 Crossplane Provider 相关的模型和与 JSON 合并操作相关的库
372397
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
398+ - KCL JSON Patch 库:< https://artifacthub.io/packages/kcl/kcl-module/jsonpatch>
399+ - KCL JSON Merge Patch 库:< https://artifacthub.io/packages/kcl/kcl-module/json_merge_patch>
400+ - KCL Kubernetes Strategy Merge Patch 库:< https://artifacthub.io/packages/kcl/kcl-module/strategic_merge_patch>
401+ - KCL Crossplane 及 Crossplane Provider 系列模型:< https://artifacthub.io/packages/search? org=kcl& sort=relevance& page=1& ts_query_web=crossplane>
377402
378- - Kubenetes 1.29 版本: https://artifacthub.io/packages/kcl/kcl-module/k8s/1.29.0
403+ - Kubenetes 1.29 版本: < https://artifacthub.io/packages/kcl/kcl-module/k8s/1.29.0>
379404
380405- 新增 Podinfo 应用配置模型,支持设置外部动态参数如 replicas 等,可以直接通过一条命令渲染 Kubernetes 资源配置,并且可以在此模型的基础上修改并自定义资源模版
381406
382- ` ` `
407+ ` ` ` shell
383408kcl run oci://ghcr.io/kcl-lang/podinfo -D replicas=2
384409` ` `
385410
386411- JSON Schema 库发布 0.0.4 版本,修复类型定义错误, 可以执行如下命令更新或添加依赖
387412
388- ` ` `
413+ ` ` ` shell
389414kcl mod add jsonschema:0.0.4
390415` ` `
391416
392417# # 其他更新
393418
394- 完整更新和错误修复列表详见: https://github.com/kcl-lang/kcl/compare/v0.7.0...v0.8.0
419+ 完整更新和错误修复列表详见: < https://github.com/kcl-lang/kcl/compare/v0.7.0...v0.8.0>
395420
396421# # 文档更新
397422
@@ -407,14 +432,13 @@ KCL 网站新增 KCL v0.7.0 文档内容并支持版本化语义选项,目前
407432
408433自 Crossplane v1.14 中的组合函数 Beta 版发布以来,使用 Crossplane 构建云原生平台的可能体验范围一直在迅速扩大。KCL 团队在第一时间进行跟进并主动构建了一个可重用的函数,整个 Crossplane 生态系统现在可以利用 KCL 提供的高水平经验和能力来构建自己的云原生平台。
409434
410- 更多内容详见: https://blog.crossplane.io/function-kcl/
435+ 更多内容详见: < https://blog.crossplane.io/function-kcl/>
411436
412437# ## 特别鸣谢
413438
414439感谢社区的小伙伴在 KCL v0.8.0 版本中的贡献,以下排名不分先后
415440
416441- 感谢 @professorabhay 支持 KCL 测试 Diff 功能 🙌
417- https://github.com/kcl-lang/kcl/issues/940
418442- 感谢 @jakezhu9 同学对 kcl import 工具的持续贡献 🤝
419443- 感谢 @octonawish-akcodes 对 KCL 代码清理和 FAQ 文档的持续贡献 🙌
420444- 感谢 @satyazzz123 对 KRM KCL 支持读取环境变量功能的贡献 🙌
@@ -432,12 +456,11 @@ https://github.com/kcl-lang/kcl/issues/940
432456
433457更多其他资源请参考:
434458
435- - KCL 网站: https://kcl-lang.io/
436- - Kusion 网站: https://kusionstack.io/
437- - KCL GitHub 仓库: https://github.com/kcl-lang/kcl
438- - Kusion GitHub 仓库: https://github.com/KusionStack/kusion
439-
440- - KCL v0.9.0 Milestone: https://github.com/kcl-lang/kcl/milestone/9
441- - KCL 2024 路线规划: https://github.com/kcl-lang/kcl/issues/882
442- - KCL 社区: https://github.com/kcl-lang/community
459+ - KCL 网站: < https://kcl-lang.io/>
460+ - Kusion 网站: < https://kusionstack.io/>
461+ - KCL GitHub 仓库: < https://github.com/kcl-lang/kcl>
462+ - Kusion GitHub 仓库: < https://github.com/KusionStack/kusion>
443463
464+ - KCL v0.9.0 Milestone: < https://github.com/kcl-lang/kcl/milestone/9>
465+ - KCL 2024 路线规划: < https://github.com/kcl-lang/kcl/issues/882>
466+ - KCL 社区: < https://github.com/kcl-lang/community>
0 commit comments