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
- @priyansh-saxena1 made their first contribution in #1946
- @jfharden made their first contribution in #1996
- @aliazlan4 made their first contribution in #1994
- @vlada-dudr made their first contribution in #1987
- @turner-hemmer made their first contribution in #1997
- @Arpit529Srivastava made their first contribution in #2045
- @DCchoudhury15 made their first contribution in #2062
- @jschoone made their first contribution in #2064
- @ytsarev made their first contribution in #2066
- @f4z3r made their first contribution in #2082
- @rtainaan made their first contribution in #2088
- @31puneet made their first contribution in #2098
- @Viscous106 made their first contribution in #2105
- @56steve made their first contribution in #2131
- @neo0007777 made their first contribution in #2182
Full Changelog: v0.11.2...v0.13.0