github kcl-lang/kcl v0.13.0

4 hours ago

What's Changed

  • fix: the release of linux arm64 artifact is missing by @zong-zhe in #1923
  • fix: correct IP address type tests by @johngmyers in #1925
  • chore: let ci for macos arm not failfast by @liangyuanpeng in #1931
  • chore: change oci-distribution to new crate name:oci-client by @liangyuanpeng in #1932
  • feat: add a deepwiki doc reference by @zong-zhe in #1933
  • chore: bump wasm32-wasi to wasm32-wasip1 by @zong-zhe in #1934
  • add some tests for net by @liangyuanpeng in #1936
  • chore: add some unit tests for net by @liangyuanpeng in #1942
  • Fix: Ensure math.floor Returns an Integer Instead of a Float by @priyansh-saxena1 in #1946
  • fix: enforce type checking for list of schema elements by @priyansh-saxena1 in #1949
  • fix: invalid override spec error message by @Peefy in #1951
  • perf: use rustc hash for the indexmap in the whole proj by @Peefy in #1952
  • fix net to_ip4 and to_ip6 by @liangyuanpeng in #1937
  • fix: rename ip16 to ip6 by @liangyuanpeng in #1962
  • Docs: Be specific about UUID version by @jfharden in #1996
  • Fix typos in language server documentation by @aliazlan4 in #1994
  • fix: (lsp formatter) preserve trailing comments within collection exp… by @aliazlan4 in #1993
  • fix: replace serde_yaml with serde_yaml_ng by @vlada-dudr in #1987
  • chore: update Rust dependencies to latest compatible versions by @turner-hemmer in #1997
  • chore: remove un-used vars and flags by @Peefy in #1998
  • refactor: kcl api protobuf build by @Peefy in #2001
  • chore(deps): bump quinn-proto from 0.11.3 to 0.11.13 in /kclvm/tools by @dependabot[bot] in #2002
  • refactor: doc badges by @Peefy in #2003
  • refactor: cargo workspace for the entire project by @Peefy in #2004
  • chore: remove un-used compiler crate by @Peefy in #2005
  • ci: kcl lib linux glibc 2.17 release by @Peefy in #2006
  • refactor: rename kcl api function args and result by @Peefy in #2007
  • chore: bump rust 1.91 and edition 2024 & fix all lint issues in compiler_base by @Peefy in #2008
  • refactor: remove un-used runtime components by @Peefy in #2009
  • fix: kcl code lint errors by @Peefy in #2010
  • fix: wasm build issues by @Peefy in #2011
  • fix: serde yaml 1.1 on and yes string value by @Peefy in #2012
  • chore: use kcl cli downloads badge by @Peefy in #2015
  • fix: kcl linux release in CI by @Peefy in #2014
  • feat: add index signature for the KCL schema type API by @Peefy in #2016
  • feat: add function type for the KCL schema type API by @Peefy in #2017
  • fix: musl lib release by @Peefy in #2019
  • fix: vet failed on lambda calling by @Peefy in #2025
  • fix: lambda para wrong scope by @Peefy in #2028
  • fix: lazy eval for the if stmt by @Peefy in #2029
  • feat: parse file preserve symlink path by @Peefy in #2030
  • fix: template exec yaml encode obj by @Peefy in #2031
  • fix: json array literal stream output by @Peefy in #2032
  • fix: schema parameters config set val eval by @Peefy in #2033
  • fix: schema parameter validation by @Peefy in #2035
  • fix: schema dup instances by @Peefy in #2036
  • fix: option builtin func parameter types by @Peefy in #2037
  • feat: lambda lazy eval in the schema internal scope by @Peefy in #2038
  • fix: eval lambda forward reference by @Peefy in #2039
  • fix: format style on 2 empty lines at EOF by @Peefy in #2040
  • fix: config list parse by @Peefy in #2044
  • feat(json): add merge function for RFC 7396 JSON Merge Patch by @Arpit529Srivastava in #2045
  • fix: runtime int parse error by @Peefy in #2055
  • feat: add selector expr parse in the quant expr target by @Peefy in #2058
  • perf: sema resolver for source map and homogeneous schema array by @Peefy in #2060
  • docs: add building and testing chapters (fixes #1935) by @DCchoudhury15 in #2062
  • refactor: remove unwrap() calls in advanced resolver (#1166) by @jschoone in #2064
  • Add Upbound to ADOPTERS.md by @ytsarev in #2066
  • chore: fix compiler warnings by @johngmyers in #2071
  • feat(builtin): add reduce function by @johngmyers in #2070
  • fix(evaluator): update lazy scope cache when variable is reassigned by @johngmyers in #2075
  • fix(evaluator): update lazy scope cache for += list assignment by @johngmyers in #2077
  • fix(evaluator): ensure assign-by-value semantics for schema assignment by @Peefy in #2081
  • feat(parser): support braces for lambda arguments and multiline support by @f4z3r in #2082
  • feat(format): format lambda signatures based on line length by @f4z3r in #2085
  • Update Cargo.toml for performance by @rtainaan in #2088
  • perf(ast): use monotonic counter for AstIndex instead of Uuid::new_v4 by @rtainaan in #2091
  • perf(runtime,evaluator): use SmolStr for dict and schema config keys by @rtainaan in #2093
  • perf(runtime,sema): avoid per-call regex compile and quadratic scans in type-string helpers by @rtainaan in #2092
  • perf(parser): cache path canonicalization and package resolution during load by @rtainaan in #2094
  • perf(sema): cache parsed schema and rule doc strings during resolver run by @rtainaan in #2095
  • fix(evaluator): keep reassigned globals order-independent in lazy scope by @rtainaan in #2097
  • fix(evaluator): keep config keys literal when shadowed by a lambda param by @rtainaan in #2096
  • Add is_IPv6 to net and validations to datetime by @31puneet in #2098
  • fix(sema): prevent swallowed errors for unresolved schema expressions… by @DCchoudhury15 in #2099
  • Adding multi-line string dedenting by @31puneet in #2100
  • fix(evaluator): avoid recursive global aliases in evaluation by @f4z3r in #2103
  • fix(driver): guard current_dir() panic on wasm32 (#2104) by @Viscous106 in #2105
  • fix(runtime): release plugin dispatch lock before invoking handler to… by @Viscous106 in #2106
  • Core implementation for dry-run formatting by @f4z3r in #2108
  • chore: bump workspace version to 0.12.4 by @Peefy in #2110
  • fix(lsp): perform inherited attribute lookup on schema resolution by @f4z3r in #2111
  • fix(resolver): allow != operator on dicts, schemas, and lists by @f4z3r in #2112
  • fix(runtime): avoid 2^d exponential walk in schema_check_attr_optional by @Peefy in #2114
  • test(error-format): add C-API and stderr coverage for ExecProgramArgs.error_format by @Peefy in #2115
  • test(evaluator): add regression tests for issue 1918 by @Peefy in #2116
  • fix(evaluator): avoid usize underflow in lazy scope backtrack by @Peefy in #2117
  • chore(evaluator): apply cargo fmt by @Peefy in #2122
  • fix(vet): load sibling .k files when validating inside a kcl.mod package by @Peefy in #2121
  • feat(fmt): honor .editorconfig for indentation (#1930) by @Peefy in #2119
  • fix(lsp): respect .gitignore in workspace file watcher and surface MaxFilesWatch by @Peefy in #2118
  • fix(evaluator): skip eager mixin application duplicated by lazy replay (#1772) by @Peefy in #2120
  • fix(resolver): pre-scan top-level lambdas for forward reference type checking by @Peefy in #2125
  • fix(evaluator, runtime): improve schema error locations (fixes #1898, #1845) by @Peefy in #2128
  • fix(api): call malloc_trim(0) after exec_program on Linux glibc by @Peefy in #2129
  • fix(evaluator): avoid double evaluation of forward-referenced top-level fields (fixes #1759) by @56steve in #2131
  • fix(resolver): type-check config literals in list/dict schema attribute defaults (fixes #1737) by @56steve in #2132
  • fix(parser): surface both pkg paths in duplicate-package diagnostic (#1620) by @Peefy in #2133
  • fix(lsp): react to kcl.mod/kcl.yaml modify events (#1623) by @Peefy in #2134
  • fix(lsp): recover from missing schema_ty + drop wrong .k-file import completions (fixes #1736) by @Peefy in #2135
  • fix(evaluator): let config entries shadow enclosing schema attrs (fixes #1769) by @Peefy in #2136
  • fix(lsp): recover from VFS Create event for files outside opened_files (fixes #1830) by @Peefy in #2137
  • fix(evaluator): don't replay setter statements whose effect already applied (fixes #1833) by @Peefy in #2139
  • feat(runtime): allow datetime.now to format an explicit epoch via optional ticks (fixes #2057) by @56steve in #2141
  • fix(format): leave source unchanged when parsing fails (fixes #1882) by @Peefy in #2140
  • fix(evaluator): handle no-op setter replay for if/elif mixin branches (fixes #1835) by @Peefy in #2142
  • fix(evaluator): don't run nested schema check on default value (fixes #1979) by @Peefy in #2144
  • test(grammar): end-to-end test for empty schema-typed default merge (#1979) by @56steve in #2145
  • feat(api): honour error_format on the C API error envelope by @Peefy in #2146
  • feat(yaml): opt into multi-line block-scalar strings via new multiline_string flag (fixes #1954) by @Peefy in #2149
  • fix(sema): collapse single-file import to its containing directory when they refer to the same files (fixes #1970) by @Peefy in #2150
  • fix(runtime): honour JSON/YAML null as override when merging into schema (fixes #1763) by @Peefy in #2151
  • fix(runtime): preserve YAML block-scalar trailing newline (fixes #1894) by @Peefy in #2152
  • feat(runtime): add file.readbase64 for binary-safe file reads (fixes #1874) by @Peefy in #2155
  • fix(format): keep inline trailing comments on the same line as their node (fixes #1756) by @Peefy in #2154
  • fix(parser): allow exec_program with only k_code_list (fixes lib#217) by @Peefy in #2157
  • test(lsp): give rename_test enough wall time for the LSP to compile the file by @Peefy in #2158
  • fix(query): list_variables handles Binary (union) expressions (fixes #2026) by @Peefy in #2159
  • feat(api): skip un-requested format encoder when --format is set (fixes #2051) by @Peefy in #2160
  • fix(evaluator): honour child schema attribute overrides (fixes #1707) by @Peefy in #2164
  • feat(sourcemap): emit Source Map v3 for generated YAML (#1630) by @Peefy in #2165
  • perf(sema): memoize get_fully_qualified_name and skip rebuild on no-op compiles (fixes #1545) by @Peefy in #2161
  • feat(runtime): emit kcl_info_meta marker for @info(type="attr") (fixes #2047) by @Peefy in #2168
  • refactor(sema): add file-scope infrastructure for issue #1740 by @Peefy in #2171
  • feat(test): add line-level coverage for kcl test (fixes #1481) by @Peefy in #2162
  • perf(sema): incremental FQN map updates + lookup memoization (fixes #1237) by @Peefy in #2167
  • feat(parser): support ES6-style shorthand entries in config/schema literals (fixes #1275) by @Peefy in #2163
  • perf(evaluator): skip pass-3 for unused package bodies (fixes #1758) by @Peefy in #2169
  • feat(lsp): run KCL unit tests by clicking a CodeLens (fixes #1482) by @Peefy in #2170
  • fix(sema): wire file scope into check() and resolve_var for #1740 by @Peefy in #2172
  • feat(lint): support ./... to lint all packages by @Peefy in #2173
  • feat(tools): bundle a program into a single file by @Peefy in #2174
  • perf(lsp): speed up import completion by @Peefy in #2175
  • fix(runtime): apply width, alignment and fill when formatting string values (fixes #2176) by @56steve in #2177
  • refactor(compiler): unify pkgpath to filesystem path conversion by @Peefy in #2178
  • fix(driver): restore get_pkg_list match binding + dedupe LSP path conversion by @Peefy in #2179
  • test(lsp): add Server helpers for e2e tests (part of #1374) by @56steve in #2181
  • test(lsp): move hover tests to insta snapshots (part of #1374) by @56steve in #2180
  • docs: add KubeStellar Console guided install reference (#2073) by @neo0007777 in #2182
  • feat(lsp): auto-update dependencies through the kcl mod toolchain (fixes #1428) by @Peefy in #2183
  • feat(api): declare the GetSchemaTypeMappingUnderPath rpc in spec.proto by @Peefy in #2184
  • feat(lsp): walk up to find kcl.mod/kcl.yaml/kcl.work workspace (fixes #1510) by @Peefy in #2185
  • chore(release): bump workspace version to 0.13.0 by @Peefy in #2186
  • ci: add tag-triggered release workflow for kcl-lib and kcl-language-server by @Peefy in #2187

New Contributors

Full Changelog: v0.11.2...v0.13.0

Don't miss a new kcl release

NewReleases is sending notifications on new releases.