Skip to main content

· 4 min read

KCL is an open-source configuration and policy language hosted by the Cloud Native Computing Foundation (CNCF) as a Sandbox Project. Built on a foundation of constraints and functional programming principles, KCL enhances the process of writing complex configurations, particularly in cloud-native environments. By leveraging advanced programming language techniques, KCL promotes improved modularity, scalability, and stability in configuration management. It simplifies logic writing, offers easy-to-use automation APIs, and seamlessly integrates with existing systems.

This section will update the KCL language community's latest news, including features, website updates, and the latest community news, helping everyone better understand the KCL community!

KCL Website: https://kcl-lang.io

Special Thanks

Special thanks to all community contributors over the past two weeks. The following list is in no particular order:

  • Thanks @briheet for the contribution to the formatted output of the kcl.mod file. 🙌
  • Thanks @Vishalk91-4 for the ongoing contribution to the KCL tree-sitter. 🙌
  • Thanks @liangyuanpeng for the ongoing contribution to the CI of repositories such as KCL cli, kpm, and modules. 🙌
  • Thanks @kukacz for the ongoing contribution to the KCL model repository. 🙌
  • Thanks @Moulick for the contribution to the Crossplane KCL Function. 🙌
  • Thanks @stmcginnis for the contribution to the KCL documentation. 🙌
  • Thanks @YvanDaSilva for the contribution to the KCL Nix Package. 🙌
  • Thanks @DavidChevallier for the ongoing contribution to the KCL model repository. 🙌
  • Thanks @Manoramsharma for the contribution to the alias feature and external Git dependency functionality of the KCL package management tool. 🙌
  • Thanks @NishantBansal2003, @varshith257 for the research and contribution to the checksum check of third-party dependencies in the KCL package management tool. 🙌
  • Thanks to Harsh4902, @Gmin2, @shishir-11, @RehanChalana for the research and contribution to the Intellij IDE KCL LSP plugin. 🙌
  • Thanks @Shruti78 for the contribution to the KCL documentation. 🙌
  • Thanks @jianzs for the contribution to the KCL Playground. 🙌
  • Thanks @vinayakjaas for the contribution to the error messages of KPM. 🙌
  • Thanks to @wmcnamee-coreweave, @dennybaa, @bozaro, @eshepelyuk, @liangyuanpeng, @vietanhtwdk, @hoangndst, @sschne, @patpicos, @metacoma, @YvanDaSilva, @ovk, @karlderkaefer, @kukacz, @Matthew Hodgkins, @Christopher Haar, @Gao Jun, and @Zack Zhang for their valuable suggestions and feedback while using KCL in recent times. 🙌

Overview

Thanks to all contributors for their outstanding work over the past two weeks. Here is an overview of the key content:

📦️ Modules Updates

  • cluster-api-provider-azure updated to v1.16.0
  • cluster-api updated to v1.7.4
  • konfig updated to v0.6.0
  • karmada updated to v0.1.1
  • New modules
    • fluxcd-kcl-controller
    • fluxcd-kustomize-controller
    • fluxcd-helm-controller
    • fluxcd-source-controller
    • fluxcd-image-reflector-controller
    • fluxcd-image-automation-controller
    • fluxcd-notification-controller
    • kwok

🏄 Language Updates

  • Fixed type conversion error with the as keyword in the presence of external packages.
  • Fixed type check error from config to schema in the lambda function.
  • Added file.current() function to retrieve the full path of the currently running KCL file.
  • Assignment statements support syntax such as _config["key"] = "value" or _config.key = "value" for in-place modification of configurations.

💻 IDE Updates

  • Fixed completion of attribute instantiation using : operator in Schema.
  • Fixed unexpected completion in Schema Doc
  • Fixed display issues with the kcl-language-server command-line version.
  • Support for disabling formatting on save in plugins like NeoVim, VS Code.
  • Fine-grained completion for distinguishing between property and value semantics during Schema instantiation.
  • Removal of default key bindings in KCL NeoVim plugin, support for user customization.

📬️ Toolchain Updates

  • kcl test tool supports output of print function in test cases
  • Fixed compilation error in kcl import when importing Schema from Kubernetes CRD and OpenAPI
  • Improved formatting of output for kcl mod init

⛵️ API Updates

  • Fixed unexpected data formatting error in KCL C API.
  • OverrideFile API supports automatic merging and modification of configurations using the : operator during compilation.

🔥 SDK Updates

  • KCL Go SDK supports interaction with KCL core Rust API through build tags, defaulting to CGO mode and can be switched to RPC mode with -tags rpc.
  • Alpha version v0.10.0 of KCL SDKs released
  • Initial release of KCL Kotlin and Swift language SDKs, with no official dependency package yet, contributions are welcome.

Resources

❤️ See here to join us!

For more resources, please refer to

· 4 min read

KCL is an open-source configuration and policy language hosted by the Cloud Native Computing Foundation (CNCF) as a Sandbox Project. Built on a foundation of constraints and functional programming principles, KCL enhances the process of writing complex configurations, particularly in cloud-native environments. By leveraging advanced programming language techniques, KCL promotes improved modularity, scalability, and stability in configuration management. It simplifies logic writing, offers easy-to-use automation APIs, and seamlessly integrates with existing systems.

This section will update the KCL language community's latest news, including features, website updates, and the latest community news, helping everyone better understand the KCL community!

KCL Website: https://kcl-lang.io

Special Thanks

Special thanks to all community contributors over the past two weeks. The following list is in no particular order:

  • Thanks to @Vishalk91-4 for contributing to the KCL tree-sitter. 🙌
  • Thanks to @liangyuanpeng for contributing to the KCL third-party modules kind and kubeadm. 🙌
  • Thanks to @DavidChevallier for contributing to the KCL third-party libraries cilium and others. 🙌
  • Thanks to @liangyuanpeng for contributing to the KCL CLI project. 🙌
  • Thanks to @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 and others for their invaluable suggestions and feedback during the recent period of using KCL 🙌

Overview

Thanks to all contributors for their outstanding work over the past two weeks. Here is an overview of the key content:

📦️ Modules Updates

  • Add new third-party library kind that supports creating and managing clusters.
  • Third party library kubeadm updated some fields.
  • Third party library external-secrets updated to version 0.1.1.
  • Third party library cilium updated to version 0.1.2, removing the duplicate declaration of regex.match.
  • Konfig updated the example of adding more resource models.
  • Konfig updated the example of adding additional pod metadata annotations.

🏄 Language Updates

  • Assignment statements support attribute access and index access for the assigned target.
  • Fixed KCL nested multi-level config block semantic check costing too long time.
  • Removed the unwrap() in the semantic resolver to reduce panic issues.
  • Fixed the error merge of the list index field by merge operation.

💻 IDE Updates

  • Fixed the error completion of schema doc in the IDE.
  • Fixed the issue of attributes defined in the unification not being automatically completed.
  • KCL vim plugin update installation documentation.
  • KCL vscode plugin removed the response to yaml files.
  • KCL vscode plugin added Apache 2.0 License.

📬️ Toolchain Updates

  • Package management tool fixed the issue of the compilation entry not recognizing the package relative path ${KCL_MOD}.
  • Package management tool changed the PlainHttp option to optional.
  • Package management tool fixed the compilation failure caused by the virtual compilation entry.
  • Package management tool fixed the issue of the default dependency missing in kcl.mod.
  • Package management tool fixed the vendor path calculation error that caused third-party dependencies to be re-downloaded.
  • Package management tool fixed the push https protocol OCI registry failure.
  • Package management tool added a cache for login credentials to reduce security risks.
  • Package management tool fixed the compilation entry error of the root directory.
  • KCL tree-sitter added sequence operations and selector support.

⛵️ API Updates

  • Refactored the error message of the override_file API.

🔥 SDK Updates

  • Added KCL C/C++ language SDK.
  • Added Go, Java, Python, Rust, .NET, C/C++, and other multi-language API Specs, related documents, test cases, and examples.
  • Refactored the go code structure, moving go-related code to the go file directory.

📚️ Documentation Updates

Resources

❤️ See here to join us!

For more resources, please refer to