PageSourceSearch

https://www.kcl-lang.io/assets/js/8dc4538d.9f8cf631.js

js kcl-lang.io collected 2026-10-03 22:45:02 UTC 13,323 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkkcl_website=self.webpackChunkkcl_website||[]).push([[15814],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>k});var n=a(67294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),d=i,k=m["".concat(s,".").concat(d)]||m[d]||c[d]||r;return a?n.createElement(k,l(l({ref:t},p),{},{components:a})):n.createElement(k,l({ref:t},p))}));function k(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,l=new Array(r);l[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:i,l[1]=o;for(var u=2;u<r;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},24533:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var n=a(87462),i=(a(67294),a(3905));const r={slug:"2024-09-05-newsletter",title:"KCL Newsletter (2024.08.21 - 2024.09-05)",authors:{name:"KCL Team",title:"KCL Team"},tags:["KCL","Newsletter"],image:"/img/biweekly-newsletter.png"},l=void 0,o={permalink:"/blog/2024-09-05-newsletter",editUrl:"https://github.com/kcl-lang/kcl-lang.io/tree/main/blog/2024-09-05-newsletter/index.md",source:"@site/blog/2024-09-05-newsletter/index.md",title:"KCL Newsletter (2024.08.21 - 2024.09-05)",description:"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.",date:"2024-09-05T00:00:00.000Z",formattedDate:"September 5, 2024",tags:[{label:"KCL",permalink:"/blog/tags/kcl"},{label:"Newsletter",permalink:"/blog/tags/newsletter"}],readingTime:3.91,hasTruncateMarker:!1,authors:[{name:"KCL Team",title:"KCL Team"}],frontMatter:{slug:"2024-09-05-newsletter",title:"KCL Newsletter (2024.08.21 - 2024.09-05)",authors:{name:"KCL Team",title:"KCL Team"},tags:["KCL","Newsletter"],image:"/img/biweekly-newsletter.png"},prevItem:{title:"KCL v0.10.0 Release Blog",permalink:"/blog/2024-09-18-kcl-0.10.0-release"},nextItem:{title:"KCL at KubeCon China 2024",permalink:"/blog/2024-08-29-kubecon2024"}},s={authorsImageUrls:[void 0]},u=[{value:"Special Thanks",id:"special-thanks",level:2},{value:"Overview",id:"overview",level:2},{value:"Resources",id:"resources",level:2}],p={toc:u},m="wrapper";
1function c(e){let{components:t,...r}=e;return(0,i.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(91626).Z,width:"1141",height:"435"})),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/kcl-lang/kcl"},"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."),(0,i.kt)("p",null,"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!"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"KCL Website: ",(0,i.kt)("a",{parentName:"em",href:"https://kcl-lang.io"},"https://kcl-lang.io")))),(0,i.kt)("h2",{id:"special-thanks"},"Special Thanks"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Thanks to @prakhar479 for contributing to the KCL built-api support for blake3 \ud83d\ude4c")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Thanks to @shruti2522 for contributing to the IDE hints feature enhancement \ud83d\ude4c")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Thanks to @liangyuanpeng for continuous contributions to the kcl-openapi tool \ud83d\ude4c")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Thanks to @trogowski for contributing to the KCL documentation \ud83d\ude4c")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Thanks to @yonas for contributing to the KCL documentation \ud83d\ude4c")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Thanks to @NishantBansal2003 for continuous contributions to the KCL package management tool sum check feature \ud83d\ude4c")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Thanks to @officialasishkumar for contributing to the KCL package management tool download Git subpackage feature \ud83d\ude4c")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Thanks to @cx2c, @yonas, @NishantBansal2003, @shruti2522, @nwmcsween, @trogowski, @suin, @johnallen3d, @liangyuanpeng, @riven-blade, @officialasishkumar, @gesmit74, @prakhar479, @Luk\xe1\u0161 Kub\xedn, @Christopher Haar, @Alexander Fuchs, @Peter Boat, @St\xe9phane Este-Gracias, @Yvan da Silva, @Rehan Chalana, @Zack Zhang, @Josh West, @Brandon Nason, @suin, @Anany, and others for their valuable suggestions and feedback while using KCL in the past two weeks \ud83d\ude4c"))),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\ud83c\udfc4 Language Updates")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"KCL v0.10.0-rc.1 has been released."),(0,i.kt)("li",{parentName:"ul"},"KCL added some built-in APIs parameters to support the encoding parameter.")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-kcl"},'sha512(value: str, encoding: str = "utf-8") -> str\n')),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"KCL has added a new built-in API, ",(0,i.kt)("inlineCode",{parentName:"li"},"crypto.blake3"),", to support the use of the Blake algorithm for hashing.")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-kcl"},'import crypto\nblake3 = crypto.blake3("ABCDEF")\n')),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"KCL has added a new built-in API, ",(0,i.kt)("inlineCode",{parentName:"li"},"isnullish"),", to support determining whether a field is empty.")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-kcl"},"a = [100, 10, 100]\nA = isnullish(a)\ne = None\nE = isnullish(e)\n")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"KCL has added a new built-in API, ",(0,i.kt)("inlineCode",{parentName:"li"}
1,"datetime.validate"),", to support validating date content.")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-kcl"},'import datetime\nassert datetime.validate("2024-08-26", "%Y-%m-%d")\n')),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"KCL has fixed the date format issue in the built-in API ",(0,i.kt)("inlineCode",{parentName:"li"},"datetime"),"."),(0,i.kt)("li",{parentName:"ul"},"KCL Plugin now supports development through Rust."),(0,i.kt)("li",{parentName:"ul"},"Fix the issue that the unification of the schema configuration arguments is parsed incorrectly."),(0,i.kt)("li",{parentName:"ul"},"KCL Plugin has added some tests.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\ud83d\udcbb IDE Updates")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Fixed the issue of the first line and first column code highlighting failure."),(0,i.kt)("li",{parentName:"ul"},"Fixed the issue of IDE occasional deadlock."),(0,i.kt)("li",{parentName:"ul"},"IDE has added more output logs."),(0,i.kt)("li",{parentName:"ul"},"Optimized the semantic highlighting of the scehma index signature key."),(0,i.kt)("li",{parentName:"ul"},"IDE has optimized the IDE find ref function."),(0,i.kt)("li",{parentName:"ul"},"Fixed the issue of IDE failing to highlight code when opening a file."),(0,i.kt)("li",{parentName:"ul"},"Fixed the issue that find ref failed."),(0,i.kt)("li",{parentName:"ul"},"Fixed the issue that the code highlight failed when opening a file."),(0,i.kt)("li",{parentName:"ul"},"Refactored the code structure of the LSP part and adjusted the scope of some APIs."),(0,i.kt)("li",{parentName:"ul"},"Fixed the issue that the IDE failed to update after kpm updated dependencies."),(0,i.kt)("li",{parentName:"ul"},"IDE has added hints for the schema arguments.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\ud83d\udcd6 Documentation")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Added a review article on KCL at kubecon 2024."),(0,i.kt)("li",{parentName:"ul"},"Added a new built-in API section to the documentation."),(0,i.kt)("li",{parentName:"ul"},"Adjusted the documentation to integrate with OCI registry and Git Repo in the package management tool section."),(0,i.kt)("li",{parentName:"ul"},"Added a new section about the kcl.mod include and exclude fields in the documentation."),(0,i.kt)("li",{parentName:"ul"},"Fixed some documentation errors.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"}
1,"\ud83d\udce6\ufe0f SDK Updates")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Added support for the KCL wasm lib to integrate with node.js and browsers."),(0,i.kt)("li",{parentName:"ul"},"Refactored the KCL python code examples.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\ud83d\udcec\ufe0f Toolchain Updates")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"kcl-openapi has been optimized and adjusted for code and document structure."),(0,i.kt)("li",{parentName:"ul"},"kcl-openapi has added more test cases and optimized the code structure."),(0,i.kt)("li",{parentName:"ul"},"Package management tools have fixed the bug that compiling multiple ","*",".k files failed."),(0,i.kt)("li",{parentName:"ul"},"Package management tools supported adding sub-packages in Git repositories as third-party libraries."),(0,i.kt)("li",{parentName:"ul"},"Package management tools have added some test cases."),(0,i.kt)("li",{parentName:"ul"},"krm-kcl function fixed some errors in some tests and documents."),(0,i.kt)("li",{parentName:"ul"},"kcl-operator has been updated and fixed some documentation content, optimized some code structures."),(0,i.kt)("li",{parentName:"ul"},"kcl-operator has added some test cases and optimized the release process."),(0,i.kt)("li",{parentName:"ul"},"kcl-operator added automatic authentication when initializing containers."),(0,i.kt)("li",{parentName:"ul"},"KCL fmt tool provides C API.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\u26f5\ufe0f API Updates")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"kcl-go API supports importing jsonschema.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\ud83d\udd25 Integration Updates")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"kcl-flux-controller parameter optimization, added more test cases, and a more complete release and test process.")),(0,i.kt)("h2",{id:"resources"},"Resources"),(0,i.kt)("p",null,"\u2764\ufe0f See ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/kcl-lang/community"},"here")," to join us!"),(0,i.kt)("p",null,"For more resources, please refer to the ",(0,i.kt)("a",{parentName:"p",href:"https://kcl-lang.io/"},"KCL Website"),"."))}c.isMDXComponent=!0},91626:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/biweekly-newsletter-fbbce78fb9c12bfc7ceee05a0a5f8870.png"}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.