Avoid using revolve for now
When we moved to concurrent execution of KCL modules, we begun to see an
error we never fully understood, and because it was pretty hard to
trigger, we wound up never being able to fix it. Today we were able to
track it down to the `revolve` call here.
Specifically, the problem is triggered when we're doing a "Full Revolve"
(e.g., `angle = 359.999999` passes, but *not* `angle = 360` or the
default, as it is in `main`), and concurrently executing modules will
see something weird happen with `getNextAdjacentEdge`.
From all the smoke I believe this happens only when we are doing a *full
revolve*, *AND* we're executing other modules which are calling
`getNextAdjacentEdge`.
When the `revolve` is present, we can lose the race in *either*
`talk-button.kcl` OR `case.kcl`.
If I move back to single-threaded execution OR I add imports to sequence
things carefully, I can get the tests to pass. If the revolve is an
`extrude` or not a full revolve, it works fine.
My best guess is that it seems like the world got flipped upside down or
something, such that "next edge" has a different orentation for two
calls. My even further guess is that inside `revolve` we mutate
something connection-global such that it alters the intepretation of
calls made during the revolve implementation's "critical section".
* Support paths to names rather than just raw idents
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Improve snapshot testing
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* A snapshot a day keeps the bugs away! 📷🐛
* A snapshot a day keeps the bugs away! 📷🐛
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Change to unzip
* Download kcl-samples as zip to public dir
* Fix fetch:samples, e2e electron still not working
* Change error message to be clearer
* Refactor so that input and output directories of sim tests can be different
* Add kcl samples test implementation
* Update output since adding kcl_samples tests
* Update kcl-samples branch
* Fix git-ignore pattern to only apply to the root
* Fix yarn install and yarn fetch:samples to work the first time
* Remove unneeded exists check
* Change to use kcl-samples in public directory
* Add kcl-samples
* Update output since updating kcl-samples
* Update output files
* Change to not fetch samples during yarn install
* Update output after merge
* Ignore kcl-samples in codespell
* WIP: Don't run e2e if only kcl-samples changed
* Conditionally run cargo tests
* Fix to round floating point values in program memory arrays
* Update output since merge and rounding numbers in memory
* Fix memory redaction for floating point to find more values
* Fix float redaction pattern
* Update output since rounding floating point numbers
* Add center to floating point pattern
* Fix trigger to use picomatch syntax
* Update output since rounding center
* Remove kcl-samples github workflows
* Enable Rust backtrace
* Update output after re-running
* Update output after changing order of post-extrude commands
* Fix to have deterministic order of commands
* Update output after reverting ordering changes
* Update kcl-samples
* Update output after updating samples
* Fix error messages to show the names of all samples that failed
* Change cargo test command to match current one
* Update kcl-samples
* Update output since updating kcl-samples
* Add generate manifest workflow and yarn script
* Fix error check to actually work
* Change util function to be what we actually need
* Move new files after merge
* Fix paths since directory move
* Add dependabot updates for kcl-samples
* Add GitHub workflow to make PR to kcl-samples repo
* Add GitHub workflow to check kcl-samples header comments
* Fix worfklow to change to the right directory
* Add auto-commit simulation test output changes
* Add permissions to workflows
* Fix to run git commit step
* Install just if needed
* Fix directory of justfile
* Add installation of cargo-insta
* Fix to use underscore
* Fix to allow just command failure
* Change to always install CLI tools and cache them
* Trying to fix overwrite failing
* Combine commands
* Change reviewer
* Change to PR targeting the next branch
* Change git commands to not do unnecessary fetch
* Comment out trigger for creating a PR
* Update kcl-samples from next branch
* Update outputs after kcl-samples change
* Fix to use bash pipefail
* Add rust backtrace
* Print full env from sim tests
* Change command to use long option name
* Fix to use ci profile even when calling through just
* Add INSTA_UPDATE=always
* Fix git push by using an app token on checkout
* Add comments
* Fix to use bash options
* Change to echo when no changes are found
* Fix so that kcl-samples updates don't trigger full run
* Fix paths to reflect new crate location
* Fix path detection
* Fix e2e job to ignore kcl_samples simulation test output
* Fix the fetch logic for the KCL samples after vendoring (#5661)
Fixes the last 2 E2E tests for #5460.
---------
Co-authored-by: Pierre Jacquier <pierre@zoo.dev>
Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com>
Co-authored-by: Frank Noirot <frank@zoo.dev>