Preparing for the removal of positional functions from the language. The first big step is to change all our KCL code examples, test code, public samples etc to all use keyword functions.
Apologies for how large this PR is. Most of it is:
- Changing example KCL that defined its own functions, so the functions now use keyword arguments rather than positional arguments. E.g. change `cube([20, 20])` to be `cube(center = [20, 20])`.
- Some parts of the code assumed positional code and didn't handle keyword calls, e.g. the linter would only check for positional calls to startSketchOn. Now they should work with either positional or keyword.
- Update all the artifacts
This does _not_ remove support for positional calls. That will be in a follow-up PR.
Make sure your working directory is this directory.
Bump the versions of the crates:
just bump-kcl-crate-versions
Commit the changes:
git add .
git commit -m "Bump versions"
Push the changes and get your PR approved.
Publish the crates:
just publish-kcl {version}
This will publish the relevant crates and push a new tag with the prefix
kcl-. DO NOT SET THE PREFIX TO kcl- when you run the command. The just
command will do that for you.
The tag will then trigger the release of kcl-python-bindings and
kcl-language-server.