Skip to main content

· 3 min read

KCL is a constraint-based record and functional language hosted by Cloud Native Computing Foundation (CNCF) that enhances the writing of complex configurations, including those for cloud-native scenarios. With its advanced programming language technology and practices, KCL is dedicated to promoting better modularity, scalability, and stability for configurations. It enables simpler logic writing and offers ease of automation APIs and integration with homegrown systems.

For those interested in cloud-native, platform engineering,compiler, package management tools, and IDEs, we invite you to apply for the 2024 Linux Foundation LFX Mentorship project. You can earn a minimum of $3000 for completing the project! Apply now!

LFX Mentorship Project

We have three Mentorship projects, covering package management tools, compiler, and IDEs.

1. KCL Package Management Dependencies Sparse Checkout

When the scale of KCL project becomes larger and larger, and the external packages that KCL project relies on become more and more, the KCL package manager will become slow due to the need to download a large number of third-party dependencies. It needs to support Sparse-Checkout, which means downloading specific dependencies as needed rather than all of them, to improve the performance.

2. Optimization of KCL LSP prompt information

Optimize KCL LSP(language server protocol) prompt information, including the implementation of type inlayhint and optimization of hover content rendering. Currently, KCL’s hover content is in plain text format and needs to be rendered into a more beautiful style.

3. Supports tree-sitter for KCL

Tree-sitter is a parser generator tool and an incremental parsing library. In order to support more features of the IDE, we need a more complete syntax tree, and for easy integration with the community, we intend to use tree-sitter to build a more complete parser system for KCL.

4. How to Apply

Apply for your favorite project on the LFX mentorship platform. You can visit the LFX mentorship platform through the following link. The application starts on Monday May 13, and ends on Tues May 28, 5:00 PM PDT.

If you have any questions, please feel free to get more information directly from the corresponding issue or discuss with us:

5. Project Timeline

activitydate
Mentee applications openMonday May 13 - Tues May 28, 5:00 PM PDT
Application review/admission decisionsWed May 29 - Tues June 11, 5:00 PM PDT
Selection notificationsTues June 12, 5:00 PM PDT
Mentorship program begins with the initial work assignmentsMonday June 17 (Week 1)
Midterm mentee evaluations and first stipend paymentsWednesday July 24 (Week 6)
Final mentee evaluations and mentee feedback/blog submission due, second and final stipend payment approvalsWed Aug 28, 5:00 PM PST (Week 12)
Last day of termFriday Aug 30

· 4 min read

KCL is a constraint-based record and functional language hosted by Cloud Native Computing Foundation (CNCF) that enhances the writing of complex configurations and polices, including those for cloud-native scenarios. With its advanced programming language technology and practices, KCL is dedicated to promoting better modularity, scalability, and stability for configurations. It enables simpler logic writing and offers ease of automation APIs and integration with homegrown 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

Overview

Thanks to to all contributors for their outstanding work over the past twenty days (2024.04.04 - 2024.04.17). Here is an overview of the key content.

🏄 Language Update

  • KCL has added support for the Alpine Linux and Fedora Linux platforms.
  • Support for the evaluation of lambda closures.
  • Fixed a bug of the union of schema instances failed within list comprehensions.
  • Fixed the calling process error of lambda methods within schemas.
  • Fixed a bug that APIs could not be found on the Windows system.
  • Fixed a parallel compilation error caused by lock file failures.

⛵️ API Update

  • OverrideFile API supports insertion of non-exist variables.

  • Override API supports taking the variable name as one assignment value.

  • Override API fixes configuration merge failure due to whitespace.

🚪 CLI Update

  • Optimized the format of the output json.

🔥 SDK Update

💻 IDE Update

  • KCL VScode supports the highlight of kcl.mod and kcl.mod.lock.

kclmod kclmodlock

📬️ KCL Package Management Tool Update

  • downloader is added for api to support custom three-party dependencies download process.

  • Fixed an issue where the repository specified in the url was invalid when adding dependencies using the oci url.

  • Fixed an issue where calling api output logs failed

📦️ KCL Modules Update

  • Provide Argo-cd-order which is a module for ordering argocd sync operations.

  • Provide crossplane-provider-gcp-upjet which is spec definition for crossplane-provider-upjet-gcp.

  • crossplane is updated to version 1.15.2.

📘 Doc Update

  • Added SDK related documents.

  • Added rust api documentation.

  • Added node-js api documentation.

  • Updated the OverrideFile API spec specification.

  • Added KCL Nix installation document.

  • Add package management tool supports Registry list.

  • Added more Q&A.

🎈 Community

  • Viktor Farcic, a well-known KOL, YouTuber, and DevOpsToolkit channel manager, reviewed KCL and introduced KCL as a solution for how to better manage Kubernetes configuration lists and handle data structures.

youtuber

The video link: https://www.youtube.com/watch?v=Gn6btuH3ULw

Special Thanks

We'd like to thank all the community participants from the past two weeks.

The following are listed in no particular order:

  • Thanks to @bozaro for the contribution to the KCL Go SDK 🙌
  • Thanks to @jheyduk for the contribution to the Kubectl KCL plugin 🙌
  • Thanks to @shruti2522,@metacoma contribution to the KCL 🙌
  • Thanks to @metacoma,@aleeriz contribution to the KCL modules 🙌
  • Thanks to @XiaoK29 contribution to the KCL go SDK 🙌
  • Thanks to @d4v1d03 contribution to the KCL Website Docs 🙌
  • Thanks to @shruti2522 contribution to the KCL IDE 🙌
  • Thanks to @Tom van Dinther contributions to Nix support for KCL Cli 🙌
  • Thanks to @steeling, @Stephen C, @Henri Williams, @Hai Wu, @Even Solberg, @Sergey Ryabin, @Shashank Mittal @Abhishek and others for their valuable suggestions and feedback while using KCL recently 🙌

Resources

❤️ See here to join us!

For more resources, please refer to