* fix selection bugs found by QA-wolf
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores)
* trigger ci
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* AST: Factor shebangs out of non-code metadata and into Progam
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Empty commit to try to unstick CI
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
Right now our KCL tests output a debug representation of the KCLError
value. This works OK, but it's difficult to read an error like
"runtime error: SourceRange([44, 48])" because I don't fucking know what
the 44th character in my KCL program is.
In the modeling app, source ranges are turned into nice red squiggly
underlines in the editor. I want nice squiggly underline when I run the
Rust unit tests too, damnit. The JS world should NEVER have fancy toys
that I, a Rust programmer, cannot access. I deserve this. I need this.
So anyway instead of snapshotting debug repr, snapshot a fancy error
via the miette library.
Some clients (e.g. the simulation tests) want to know why a KCL program failed. Was it because of a network error? Or because the client wasn't authorized properly? Or was it a KCL runtime type error?
It's difficult for clients to ask these questions, because the interpreter just returns Anyhow error, basically just a string.
Instead, we should return different variants of an Error enum for different kinds of errors.
This lets us render nice Cargo-style error messages that show the exact KCL line where an error occurred, instead of just printing off a source range. We have that in the CLI, but I'd like it for running normal KCL unit tests.
# Testing
This is a pure refactor, it doesn't change any behaviour, it just stops hiding the specific error types via anyhow. No testing needed. If it compiles, it works.
* Add nightly link in about sectoin
* Add nightly detection
* Lint
* Change APP_NAME to PACKAGE_NAME
* To be improved: working implementation on mac for click to download
* Revert "To be improved: working implementation on mac for click to download"
This reverts commit 7ced32a533.
* Nevermind, will process on the website
* Release KCL, KCL test server and derive-docs
derive-docs 0.1.31
kcl-test-server 0.1.17
kcl-lib 0.2.25
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
KCL stdlib has a function `patternTransform` which works for 3D solids. This adds a similar function `patternTransform2d` which, as you might have guessed, is like `patternTransform` but for 2D. I know. I'm really, really really good at naming things.
This shares almost all of its implementation with 3D patterns via 💖the power of traits💖
This will assist with https://github.com/KittyCAD/modeling-app/issues/4543
* WIP: Improve current nightly implementation
* Add nightly icons
* Clean up script
* Clean up
* Clean up
* Clean up2
* Clean up3
* WIP: Make the release process non-blocking
First commit to fix#4522
* Quick fix
* Test release and updater-test
* Try nightly build
* WIP nightly tag creation
* Change of direction
* Quick fix
* Test nightly
* Better release notes for nightly
* Migrate to artifact@v4 and prepare publish release
* Fix out-yml for artifact@v4
* Progress towards publish-release
* merge-multiple: true
* Add dependency
* Clean up. Change direction again on updater-test (now with RELEASE workflow)
* Clean up and test release builds
* Fix name
* Clean up, add README
* Add release notes override, another release test
* Fake release version & better draft release
* Test nightly
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores)
* Clean up and first attempt at publish-release-apps
* Add GH_TOKEN
* Add github-token to download-artifact step
* Add github-token to all download-artifact steps
* Add checkout and node steps
* Clean up
* Remove whitespace
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores)
* Quick typo
* Add Kevin's semantic-release.sh script to replace make-release.sh
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix argument error to point to the arg at the call site
* Change MemoryFunction to accept Vec<Arg> instead of Vec<KclValue>
* Rename variable to be clearer
* Fix one more argument error message
* Clean up from PR feedback
* selection stuff
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* trigger CI
* fix bugs
* some edge cut stuff
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores)
* trigger CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores)
* fix sketch mode issues
* fix more tests, selection in sketch related
* more test fixing
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores)
* Trigger ci
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores)
* Trigger ci
* more sketch mode selection fixes
* fix unit tests
* rename function
* remove .only
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* lint
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* fix bad pathToNode issue
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores)
* fix sketch on face
* migrate a more selections types
* migrate a more selections types
* fix code selection of fillets
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* migrate a more selections types
* fix bad path to node, looks like a race
* migrate a more selections types
* migrate a more selections types
* fix cmd bar selections
* fix cmd bar selections
* fix display issues
* migrate a more selections types
* Revert "migrate a more selections types"
This reverts commit 0d0e453bbb.
* migrate a more selections types
* clean up1
* clean up 2
* fix types after main merge
* review tweaks
* fix wall selection bug
* Update src/lang/std/engineConnection.ts
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* add franks TODO comment
* fix type after main merge, plus a touch of clean up
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
If the key and value in an object literal use the same identifier, allow abbreviating it.
Basically these two are now equivalent:
```
x = 2
obj = { x: x, y: 3}
```
```diff
x = 2
- obj = { x: x, y: 3}
+ obj = { x, y: 3}
```
This syntax is used in JS, Rust and probably elsewhere too.
Here's a more realistic example. Before:
```
radius = 10
startSketchAt([0, 0])
|> circle({center: [0, 0], radius: radius}, %)
```
After:
```diff
radius = 10
startSketchAt([0, 0])
- |> circle({center: [0, 0], radius: radius}, %)
+ |> circle({center: [0, 0], radius}, %)
```
Previously, this was the output of the formatter:
```
fn f = () => {
return () => {
return 1
}
}
```
Now the above will be reformatted as
```
fn f = () => {
return () => {
return 1
}
}
```
Much better!
* Make ast module private
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Make most other modules private
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Expand API to support CLI, Python bindings, and LSP crate
Signed-off-by: Nick Cameron <nrc@ncameron.org>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Pass current file name through to export command
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores)
* Oops I needed a couple other things, not just that one line change
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores)
* Undo overriding of internal zipped file names
That was liable to cause conflicts and whatnot per @jessfraz feedback
* Update E2E test that was still looking for `output.gltf`
* Missed one other test my bad
* Should've just grepped for output.gltf to begin with
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Paul Tagliamonte <paul@zoo.dev>
* feat: implementing arcTo in standard library, first pass
* feat: computing center and radius for arcto
* fix: updating comment for arcTo
* fix: cargo fmt fix
* fix: bug, the x was used twice!
* fix: Cleaning up some code and adding more comments
* fix: this has to be removed
* fix: resolved merge conflicts with main and updated the codebase to remove the JSON stuff
* fix: addressing cargo clippy issues
* fix: typos
* fix: adding generated docs
* Update doc test snapshots
---------
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* Update offset_plane to actually create and show the plane in-engine
* Fix broken ability to use offsetPlanes in startSketchOn
* Make the newly-visible offset planes usable for sketching via UI
* Add a playwright test for sketching on an offset plane via point-and-click
* cargo clippy & cargo fmt
* Make `PlaneData` the first item of `SketchData` so autocomplete continues to work well for `startSketchOn`
* @nadr0 feedback re: `offsetIndex`
* From @jtran: "Need to call the ID generator so that IDs are stable."
* More feedback from @jtran and fix incomplete use of `id_generator` in last commit
* Oops I missed saving `isPathToNodeNumber` earlier 🤦🏻
* Make the distinction between `Plane` and `PlaneOrientationData` more clear per @nadr0 and @lf94's feedback
* Make `newPathToNode` less hardcoded, per @lf94's feedback
* Don't need to unbox and rebox `plane`
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores)
* Rearranging of enums and structs, but the offsetPlanes are still not used by their sketches
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores)
* Revert all my little newtype fiddling it's a waste of time.
* Update docs
* cargo fmt
* Remove log
* Print the unexpected diagnostics
* Undo renaming of `PlaneData`
* Remove generated PlaneRientationData docs page
* Redo doc generation after undoing `PlaneData` rename
* Impl FromKclValue for the new plane datatypes
* Clippy lint
* When starting a sketch, only hide the plane if it's a custom plane
* Fix FromKclValue and macro use since merge
* Fix to not convert Plane to PlaneData
* Make sure offset planes are `Custom` type
* SketchData actually doesn't need to be in a certain order
This avoids the autocompletion issue I was having.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* WIP: Fix linux updater 'mv' error
First commit to test the updater-test builds
* Downgrade electron-updater to 6.3.0
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores)
* Trigger CI
* Pin to 6.3.0
* Clean up
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>